About
Today (January 2025), I'm a software engineer in the Boston area. I got my Master's in Electrical and Computer Engineering from the University of Pittsburgh in April 2024. My Bachelor's was in Physics and Math, also from Pitt, 2021.
My path to programming was a little convoluted. As a freshman, the only careers I knew existed were doctor and lawyer. Opting for the former, I was initially going to major in chemistry. It's cliche for a premed, but I wanted and still want to help people with my job. I took intro biology and up through organic chemistry, but whenever electrodynamics and quantum mechanics were mentioned in the chem courses, I knew I wanted to go and truly understand that. I declared my physics major junior year, and math naturally came along for the ride.
I got good grades, took graduate level quantum mechanics and differential geometry, and got research experience, but after getting my BS and realizing I didn't really want to be an academic, I went back to school for ECE. I figured I could either find a way to apply some physics, or learn about programming. I had done plenty of scientific computing in Numpy and Scipy, but had never done "real" programming, and had long been curious to see what that was really about.
I was funded to do optics research during my degree, but my interests were definitely moving towards computers and programming; I think the same part of me that likes fundamental physics likes fundamental computer science - I like understanding how classical mechanics emerges from quantum mechanics, and I like knowing exactly where my memory comes from when I call malloc.
My department didn't offer any programming courses, so I asked to TA for the sophomore C++ class, as well as the two Data Structures and Algorithms courses that were offered. I had to teach myself both C++ and DSA to prepare, but the fear of looking stupid in front of the kids kept me diligent in my studies.
Learning C++ was fun (as much as you can say you "learned" C++), but in my last semester of school, I took a computer architecture class, and that was when I really got hooked on CS and programming. The actual CPU and GPU architecture we learned elucidated a ton of what a computer actually does, but even beyond that, the professor would mention what the compiler could do before it emitted assembly and I would always think "the compiler can do what?" For our final project, we wrote an architecture simulator, which only in hindsight I realize was a simple assembly interpreter with extra bookkeeping. This was the first project I had been tasked with that wasn't numerical physics or machine learning, which tend to be pretty straightforward in translating from theory to code. I was pretty proud of being able to take those more vague requirements and turn them into functioning C++.
Now, having graduated, I spend a lot of time continuing to study what I sort of feel like I missed in school - even though I know that a CS degree isn't necessarily a programming degree. I couldn't imagine myself doing much other than coding for a day job, but I really loved (and still do) math and physics, and we all need to find our own ways. While "software engineering" doesn't necessarily mean putting math on the computer, I still would love and to be able to do that. Even harkening back to my premed phase, being able to work on medical devices would be fulfilling as well. Part of the motivation for making this site is to show my enthusiasm and what I've studied outside of school. I'm also hoping that my projects will end up complete and well documented enough that someone else can learn from them one day.
It's fun to continue to have something to learn though. I find a whole host of topics interesting: compilers and graphics come to mind immediately. I think I like that both those topics allow the user to get what they're thinking onto the computer, and they're both deep in the mathematics and computer science they use. Maybe I won't be simultaneously diagonalizing Hamiltonian matrices again for a while, but it's reassuring knowing that I can at least but some dot products in a shader to get lighting.
Those have become self study topics since finishing school. At times all the things I don't yet know get a little daunting to think about, but I taught myself General Relativity as an undergrad so I could do physics research - I'm sure I can handle some graph algorithms (or whatever you might be hiring for). See my projects for some of the things I've been studying.
More than anything else, I want my code to make the world a better place. I've had moments where I'm on YouTube, watching people play a video game, using GPU accelerated graphics, together over a network, in a foreign language that I learned by looking up words with a Chrome extension, which looks up words in a database, that was at one point compressed with some algorithm. I want to know that I'm doing something at some point along a chain like that.
Aside from coding, I like to draw, run, do muay thai, and I absolutely love learning languages. Japanese is my best, and I dabble in Korean as well.
I use vim, btw.