ACKNOWLEDGEMENTSWhen you have been given the opportunity to spend four years continually improving upon and repurposing prior work, your work becomes prior work and it is difficult to truly deem your role as finished -perhaps more so when you are passing along the torch to someone else. Yet that is what is about to happen here. The work was exciting and challenging, with enough that remains to be done to take decades, but it would appear that my time spent contributing to it is at an end.I first came to the University of Iowa reasonably sure that I wanted to contribute to the field of quantum or optic computation. This ambition was based not on the obvious practical applications, but on the simple fact that the topic seemed mysterious and challenging with relatively few people working on it. However, one of the first lessons I learned when looking for a research advisor to work with was that pretty much all research topics are going to be mysterious and challenging -that is why they need to be researched.On the other hand, one of my favorite things to do is write code. It is so natural and satisfying that I assumed pretty much everyone likes to code, and so any field that requires coding is likely to be more competitive than I wanted to deal with, but it turns out I was wrong about that. When I first met with Professor Garvin to discuss what opportunities she might have available, I was almost expecting a queue. When I explained some version of these assumptions to her, I was expecting confirmation of my suspicions. That is when I learned I was completely wrong about how most of the world felt about coding, and Prof. Garvin became my research advisor.