PhD Student Spotlight: Tommy McMichen

McMichen is pursuing a PhD in computer science with the ultimate goal of becoming a systems research professor

Building community is important to Tommy McMichen. He organizes barbecues and other events for the Computer Science Social Initiative (CSSI).

Tommy McMichen“Growing up in a smaller rural community, those big shindigs were a valuable time to share the joys and struggles of your neighbors,” McMichen said. “I always found that someone you least expected had the right words or expertise to help you in a situation.”

While earning a bachelor’s degree in computer engineering from the Rose-Hulman Institute of Technology, McMichen found fulfillment in tutoring and teaching. In 2020, he decided to join Northwestern Engineering to pursue a PhD in computer science with the goal of becoming a professor.

Advised by Simone Campanoni, associate professor of computer science at the McCormick School of Engineering, McMichen is a member of the Rethinking Compiler Abstractions for New Applications (ARCANA) Lab. He studies compilers, which are tools that translate a program into a list of instructions for a computer to run. Through new intermediate representations and abstractions, he aims to design languages and compilers to make writing programs easier, while producing programs that run faster and consume less energy.

We asked McMichen about his experience earning a PhD at Northwestern, important lessons learned, and his advice for prospective PhD students.

What are three things you wish you had known before you started your PhD program?

Trust yourself. You're coming in with a lot of knowledge and expertise and shouldn't be too quick to dismiss it.

Proactively test your ideas. This may not always be practical in some domains, but running a small experiment or having a back-of-the-envelope calculation can really help you communicate your point and drive home the value. It took me a while to learn that I should come to every meeting with some kind of data to back up what I was discussing.

Make it clear what topics you want to discuss in meetings. Time with your adviser and colleagues is precious — if you are upfront about what you need out of the meeting and prepared for the discussion, they can offer meaningful questions and advice instead of being left to operate at a surface level.

Tell us about something you were excited to learn while you worked on a research project.

The compiler research community is relatively small, and while I was working on my research, I found that there was a wealth of knowledge that I could apply from the programming languages (PL) community. However, there is a sort of language barrier between the two fields as they have different terminology, models, and evaluation criteria. I have been slowly learning to communicate across these fields and have gotten a lot of great advice, ideas, and questions from folks in the PL community that have been invaluable for my research.

What are some examples of collaborative or interdisciplinary experiences at Northwestern that have been notably impactful to your research?

I worked on a compiler-architecture project with Professor Russ Joseph's group in the Department of Electrical and Computer Engineering. I learned a lot about how to communicate ideas across these domains and how to identify pitfalls in larger research projects (because I fell into most of them).

What's next? What are your short- and long-term plans/goals in terms of your career path?

I recently finished my thesis prospectus, so in the short-term I'm working on the final research for my thesis. In the long-term, my goal is to find a position as a research professor.

What hobbies/activities do you enjoy? What’s your favorite part about living in Evanston/Chicago?

I love biking up to the Chicago Botanic Gardens and Fort Sheridan — they are just a few of the great escapes we have in Evanston/Chicago for whenever I need to get out and see nature.

I've also rediscovered my love for reading. Evanston has an amazing public library that is open to Northwestern students.

What’s your favorite restaurant in Evanston/Chicago and why?

I'm not much of a restaurant guy, so I would recommend Brother's K Coffeehouse instead. They have a great group of patrons and baristas there that are active in the community and a joy to be around. I'm there every weekend to read and eavesdrop.

What advice do you have for prospective Northwestern Computer Science PhD students?

Disconnect yourself from your research product. I see a lot of students struggle to take criticism because they attach their sense of self to their research, and this can be a source of imposter syndrome. You're here to learn how to do good research. You will do a lot of bad research along the way, and it's important to recognize when that's happened so you can learn from it.

There's no clear path from the beginning to the end of your PhD — you find it along the way. If you overfit your actions to your expectations, you will miss out.

McCormick News Article