You studied Civil Engineering in college, what made you decide to earn a Masters in CS?

I missed my true calling. I taught myself some programming after college and found that I really loved it, but it’s hard to build a strong foundation without a structured academic environment.

I appreciate the MPCS and similar programs because it’s great to be given a second chance. I think it’s very important that people are given the opportunity to change careers and still receive a top quality education.

Why did you choose to attend the MPCS at UChicago?

I looked at a few online master’s programs, but I prefer in-person instruction. UChicago has a great reputation and the traditional approach works very well for me. I also liked the flexibility of being able to start during any quarter – one program I got into would have made me wait until the subsequent fall.

What was your favorite MPCS course? Why?

I’d have to say MPCS 50005 – Advanced Algorithms taught by Gerry Brady. It’s a deep dive into advanced data structures, NP-complete problems, approximation algorithms, and optimization techniques like linear programming and local search. It’s also an elective, so it’s a smaller class and the students and instructors are all passionate about the course.

Another great feature of the MPCS is that you have the opportunity to explore classes in the College and over at Toyota Technical Institute at Chicago (TTIC). I was able to take some excellent classes like Machine Learning with Rebecca Willett and Math Toolkit with Madhur Tulsiani, who are both awesome educators.

You also completed an internship here at UChicago. What was that like?

The MPCS connected me with an internship at the MANIAC Lab, which builds cyberinfrastructure for data-intensive scientific experiments. I worked on ServiceX, which helps high-energy physicists analyze data from the Large Hadron Collider (LHC) at CERN. These experiments generate many petabytes of data, so you can’t fit these datasets on your laptop. ServiceX will slice and dice the data to give you just the piece you need to analyze.

I got full-stack experience with a REST API server, web frontend, and PostgreSQL database. It was my first exposure to microservices, Docker, and Kubernetes, as well as mentorship from seasoned software engineers. I even wrote a Slack integration. The whole experience made me a much better developer.

After graduation, you stayed involved in the MPCS by becoming a TA. How did you find that experience?

Yes, I’ve been a TA for Discrete Math, Algorithms, and Advanced Algorithms, all with Gerry Brady.

I love being a TA because you get to rediscover the material with new students every quarter. You gain a deeper understanding versus learning it just once, and it keeps you engaged with it so that knowledge doesn’t atrophy.

It’s really fun to come up with new assignments. I like to draw from problems I’ve had to solve or other ways I’ve seen algorithms applied in the real world. One of my favorite assignments was adapted from a blog post on load balancing algorithms for the NGINX web server.

It’s also great working with Gerry. She’s been an excellent friend and mentor to me. I think anyone who’s taken her classes will tell you that she’s one of a kind.

Can you tell us a bit about your post- MPCS professional journey? I see you are currently a Software Engineer at SpaceX- did the MPCS help prepare you for this role?

Towards the end of my time in the MPCS, I was able to find a full-time software job with a trading firm in Chicago. Since MPCS courses are mostly at night, I was able to gain work experience while finishing my degree. I worked there for a little over a year.

For the last 6 months, I’ve been working at SpaceX in Seattle on the Starlink satellite internet program. My team is responsible for software that ingests network telemetry data from simulations and in real-time and generates metrics and visualizations to help drive decision-making. I’m also doing some work with production network software, which has been interesting because you have to be careful to deploy your changes to the network without disrupting service for users.

The MPCS actually directly helped me to land my job because I was contacted by a SpaceX recruiter via Piazza, the university’s old Q&A platform. Beyond that, I rely on my CS education every day to solve problems efficiently and write reliable, scalable, maintainable code.

How has your MPCS education helped you discover and achieve your professional goals?

The MPCS gave me all of the right tools: math and computer science fundamentals, programming knowledge, software engineering principles.

But besides the education, the MPCS gave me a strong sense of community. In addition to Gerry, I learned so much from Matt McPartlon and Chris Jones, who were my TAs for Algorithms and now completing their PhDs. I’m still touch with my study group from when I was in the program, and current students via my own TA work.

Those people inspire me and give me confidence that I can do things that are difficult, even when I’m feeling imposter syndrome. They encouraged me, helped me practice for interviews, wrote references, and more.

Would you recommend the MPCS to others? If so, why?

Yes, I would recommend the MPCS to anyone who is motivated to get a strong computer science education. UChicago has a great CS community and there are so many opportunities to get involved, wherever your interests lie.