Hi, I'm Zach. I love learning how things works and using that knowledge to build new things. When I'm not reading about software you can find me on a disc golf course, rolling dice with a Dungeons & Dragons group, or playing around with generative art. I also love whiskey, but in a "there's so many different kinds with different nuances!" way, not in a "I have a problem" way.
I'm currently building autonomous checkout systems in Rust, allowing you to walk into a store, grab what you want, and walk out without touching a cash register. It's super cool!
I recently completed a physics PhD at Purdue University where I studied the details of photosynthesis using ultrafast spectroscopy. I built state of the art time resolved laser systems and did computational modeling of quantum-biological systems both on small computers (laptops) and big computers (supercomputing clusters). I also wrote all of the software currently running in the lab ranging from data acquisition and hardware control to numerical analysis. Have you burned holes in your business cards with 100 femotosecond laser pulses? I have! Have you held parts of a laser together with a wadded up tissue? I have!
My first interaction with programming was a numerical techniques class using Matlab that was required for my physics degree. I didn't do much programming after that until I spent a summer on a research project that required more analysis than was comfortable to do in Excel. I wrote this analysis program in Matlab since that was what I knew. I only discovered afterwards that no one else in that lab had a Matlab license.
I didn't want to make that mistake again so I picked up Python. Once I had a full programming language at my disposal I started learning all of the other things I could do with it. I started writing more and more programs, listening to podcasts, reading blogs and forums, attending meetups, and going to conferences. I had the programming itch.
That was 10 years ago.
At some point in my journey I developed an interest in systems programming, but picking up C or C++ felt like a big undertaking so instead I picked up Rust. I became very interested in correctness, robustness, and performance. That was about 4 years ago. I've been turning to Rust ever since.
A few years later I stumbled upon generative art, and decided to learn Clojure as a means of trying my hand at it. As I learned about Clojure I realized that
fear complexity is the mind-killer, and became more interestd in Clojure as a general purpose language. I'm still a baby when it comes to Clojure, but I'm eager to find excuses to use it.
Now I'm learning Nix so I can bootstrap development environments and make builds reproducible and that's leading me down a completely new rabbit hole!
If you need to reach me, you can find me in the following places: