CS Senior Spotlight: Rachel Yao

After graduation, Yao plans to join Amazon as a full-time software developer in Seattle

Rachel Yao is passionate about building software that drives real-world impact, especially in ways that promote social good. She is drawn to projects that are not only technically challenging, but also meaningful in the problems they aim to solve.

Rachel Yao
Rachel Yao

For the past two years, Yao has served as president of Develop and Innovate for Social Change (DISC), a student organization that partners student teams with local nonprofits and startups, developing software solutions that address community needs.

Yao has been active with DISC during her four years at Northwestern, starting as a project team member, then serving as a tech lead before stepping into the leadership position. As DISC president, she mentors students, oversees community partnerships, and helps shape the long-term direction of the organization.

Yao graduates this month with a bachelor’s degree in computer science with a minor in machine learning and data science from Northwestern Engineering.

We asked her about her experience at Northwestern Engineering, impactful collaborative experiences, and her advice for current students.

Why did you decide to pursue the CS major at McCormick?

I started coding my freshman year of high school and was immediately drawn to how creative it felt, like solving a puzzle. As someone who also loves painting, I saw parallels between the two: both require imagination, structure, and attention to detail. I chose CS at McCormick because I wanted to keep exploring that intersection of logic and creativity.

How did the McCormick curriculum help build a balanced, whole-brain ecosystem around your studies in CS?

The McCormick curriculum pushed me to grow not only as a computer scientist, but also as a communicator and problem-solver. It gave me a strong STEM foundation through courses like Engineering Analysis, while also encouraging exploration across disciplines through unrestricted electives. In Design Thinking and Communication, it was fun to work with a client to prototype and iterate on a physical solution, solving a real-world problem beyond software. I also really enjoyed COMM_ST 102-0 Public Speaking, which challenged me to present ideas clearly and confidently — skills I find myself using in a professional setting.

How did interdisciplinary collaboration and teamwork shape your experience in the program?

I really enjoyed the flexibility to take classes outside of engineering. I took ART 210-0: Introduction to Drawing and ART 220-0: Introduction to Painting, allowing me to reconnect with passions I’d had before college. I also took linguistics and psychology courses, which was a refreshing contrast to the core engineering curriculum. Many of my classes involved collaborative, project-based work, which taught me a lot about communication and adaptability.

What project or assignment are you most proud of from your time in the program?

In COMP_SCI 376: Game Design and Development, my team and I built a 3D game in Unity where players battle sentient trees. Designing and developing our own game from the ground up was both challenging and exciting, and it taught me a lot about game mechanics.

How has your approach to problem-solving evolved during your studies?

When I first started learning CS, I thought problem-solving was mostly about finding the “right” solution as quickly as possible. Over time, I’ve learned to slow down and spend more time understanding the problem before jumping into code. I’ve become more comfortable with ambiguity, and I’ve learned that good solutions often come from asking better questions, breaking big problems into manageable parts, and collaborating with others to test and refine ideas.

What role do creativity and design play in your approach to coding or building systems?

A big one! When I’m designing a user interface, I try to think about what will make something both useful and intuitive. I’ve found that the best technical solutions also tend to be the most elegant ones. My background in painting helps me pay attention to things like flow, balance, and visual clarity — ideas that translate surprisingly well to writing clean, maintainable code with the user in mind.

How did you stay motivated during difficult times in your academic career?

What kept me grounded was the support from people who understood what I was going through. My friends were often in the same boat — struggling with the same deadlines or late-night bugs — so we leaned on each other and that made things feel a little less overwhelming. My family always reminded me of the bigger picture and believed in me, even when I doubted myself. My cat also kept me company during long debugging sessions.

What skills or knowledge did you learn in the undergraduate program that you think will stay with you for a lifetime?

One of the biggest things I’ll take with me is how to learn. CS changes fast, and you’re constantly running into things you’ve never seen before. Over the past four years, I’ve gotten a lot more confident at learning by doing. That mindset has been way more important than memorizing syntax or mastering a specific tool. I’ve also learned how to work with people — how to listen, give helpful feedback, and be someone others can rely on. Those skills will stick with me no matter what I’m building or who I’m building it with.

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

I’ll be moving to Seattle to join Amazon as a full-time software developer.

What advice would you give to current or incoming CS students?

Ask questions, even when you think they’re dumb (they’re not). One of the biggest things I’ve learned is that struggling in silence slows you down way more than just asking. People want to help — you just have to be willing to reach out. And don’t forget to make time for things you love outside of CS.

McCormick News Article