Aaron Gorenstein ’07

Aaron Gorenstein ’07 graduated from the University of Rochester in 2011 with a BS/MS in Computer Science. In 2013, he earned a master’s in Computer Science from the University of Wisconsin, where he studied under Prof. Jin-Yi Cai, contributing to one paper in addition to serving as a teaching assistant and research assistant. Since graduate school, Aaron has worked as a software developer at Microsoft. He joined Microsoft’s C++ Compiler Team in the spring of 2014, and moved to Seattle, WA, where he met his now-wife Lenore, also an expat East-coaster. In 2017, Aaron and Lenore returned to the East coast, moving to Queens, NY. Aaron continues to work for the same team at Microsoft. In his free time, Aaron volunteers to help underrepresented minorities break into the tech industry by helping them with interview practice. He also enjoys reading books on history and ethics, as well as exploring creative hobbies like calligraphy.

Can you tell us about what drew you to Microsoft and what some of your primary responsibilities are?

Certainly the applications of computers captured a lot of my interest in school, but as time went on I found myself drawn to the more fundamental questions in computer science. That suggested I should stay in academia, and indeed by the time I got to grad school I was essentially studying mathematics (computational complexity theory). When I burned out of my PhD program at Wisconsin – applying my new Masters as a salve – I knew I wanted to transition to industry but hoped I could find a way to keep some toehold in the theoretical world. Among the big tech companies (lacking creativity, I applied only to those companies I had already heard of), Microsoft’s offer that had such a toehold: it was for a position on one of their compiler teams. Compilers are a wonderful branch of computer science that sit at the intersection of theory and practice, and I knew that was the job I wanted to take. For the past five years, I’ve been a member of the Microsoft Visual C++ compiler team.

The sub-team I’m on has a few goals. My focus is on the implementation of optimization algorithms, which draw on some deep technical analysis and present interesting theoretical questions. I find them quite satisfying. Among other optimizations, I’ve implemented a limited variation of partial-dead-code elimination, and a control-flow-graph optimization. Of course the day-to-day is not always as engaging: there are plenty of times where we fix bugs, or extend our testing infrastructure, and so on, but helping keep the business running is quite satisfying in its own right. I’ve also developed the reputation of being one of the more outgoing members of the broader C++ team – that’s rather horrifying – so for the past couple of years I’ve also had the responsibility of driving our customer-outreach efforts. This includes things like making sure teammates are writing blog posts advertising our current advancements to the product.

You took as many computer science courses as you could as an undergrad – how did this interest develop over your time at Boston University Academy? Were there certain courses or experiences that helped shape your interest in computer science?

I was always the sort of math-y, computer-y nerd even as a little kid, and had intermittent encounters with programming growing up. I don’t recall what started it, but sophomore year I really committed to learning to program and I found it appealed to me. I think I wanted to make a video game. That never happened. What did happen was that summer I spent a few weeks at a sketchy learn-to-code sleepaway camp in Connecticut. Really after that it was off to the races: I was obsessed and wanted to learn as much about computers as possible.

That summer set me up to get a lot out of BUA and BU: I was able to take many computer science and related courses. Within BUA, the encouragement and excitement from so many people – Nick Dent, Gary Garber, Danielle Passno, Jim Davis, Dan Heller, Rich Horn, and many more – helped keep me motivated. I also found encouragement and friendship in the science and robotics teams. It’s weird and intimidating, in some ways, to be a high school student in a college course, but this enormous support network made it easy. Lastly, I’d be remiss not to mention Hongwei Xi, my ludicrously patient senior thesis advisor and CS112 instructor. His lecture on quicksort is burned into my mind as the moment when I first realized that algorithms were the most fascinating thing in the world.

The availability of college courses allowed me to pursue my burgeoning interest in computer science, but it’s fair to say the BUA community and connections enabled me to actually do it. By the time I got to Rochester, I had the experience and confidence to be able to hit the ground running and keep up the momentum from all the people pushing me earlier.

How has BUA’s integrated humanities curriculum influenced your academic studies and/or career even though you’ve pursued a STEM track?

On the surface, my STEM education and career seem largely divorced from the humanities. Scratching the surface, I can say that my ability to communicate – very much honed by BUA and my teachers there – has set me apart from almost all of my academic and professional peers. My career has advanced because of it.

Going a bit deeper, the experiences of grappling with fundamental questions at BUA likely oriented my college interests away from the more immediate aspects of computer science and towards the root questions raised by automated reasoning. Computational complexity is, from one viewpoint, the study of the limits of what we can compute, which does not sound altogether different from the limits of what we can understand. I’ve found the questions and hints that arose from this course of study fascinating, and something that enriched my understanding of and participation in the world. I can’t pretend that I spend my free time in deep meditation or something, but I am immensely glad to be able to articulate my professional and academic interests in human terms instead of as some interesting, but disconnected, riddles.

That said, it is in my life outside of the classroom and office that I feel most grateful for the humanities. When I make the mistake of looking up from my computer screen I see a world with a lot of hard questions. The tools, vocabulary, and perspectives to even begin to understand the world and its challenges are not Google-Bing-able. I have to confront my own decisions about how to live life, and how to justify those decisions. Without getting into it, I’ll say that Seneca’s enjoying quite a lot of popularity in the tech world. Within my social circles, there are rare but valued times when we’ll discuss important things, and I need the tools to both understand my friends’ perspective and articulate mine effectively. Considering national and international events, I would feel entirely adrift but for the grounding in history and some nascent understanding of how other nations view the world. In these and so many other situations that matter, I’ve found it is only my foundation in the humanities that helps me here, rather than my expertise in C++ or Turing Machines. For me, that foundation was laid at BUA.

So much more than books, it was the teachers that made it all possible. Few people, I’ve found, have the patience to really engage on these meaningful problems with others – and our teachers do so with high school students.

If you could turn back the clock and give your high school self one piece of advice, what would it be?

At BUA, I participated in a lot of “lively” debates among classmates. I think that I would have benefited more from those had I focused more understanding the other person’s perspective and less on trying to convince them of my own. The more I’ve been able to listen to others, the more valuable my experience has been.

View all posts