In April 2013, high school senior Patrick Granahan had a hard decision to make. He’d grown up attending scholastic events and robotics competitions at Rice University, but the University of Texas was aggressively recruiting him for their Turing Scholars Computer Science program.
“I visited Rice and decided to talk to a Computer Science professor,” he said. “I found Duncan Hall and essentially waltzed into a professor’s office and asked why I should choose Rice. Luckily, it was Stephen Wong and he gave me a really good answer.”
Wong told Granahan that other schools would teach him the skills he needed to be a successful software engineer, but Rice would teach him to think like a computer scientist. Granahan said, “He told me that the fundamental knowledge was deeper than the skillset, and he was right.”
After accepting Rice’s admission offer, he set out to find a summer job. “My resume got bounced around and ended up at Onit, a local startup providing software solutions for attorneys. Onit is run by a Rice alumnus from the Jones School and quite a few Rice alumni work there. They brought me in for an interview that was great for the level I was at then.
“Instead of a hard technical interview like you might expect in a larger company, they just asked me to talk them through a flaw in Asimov’s Three Laws of Robotics. I had to come up with a case where something could go wrong if the robot strictly followed its programmed instructions. They wanted to hear how I thought about and approached problems.”
Granahan arrived at Rice having a software development internship as well as an AP Computer Science and a university-level introductory computer science class offered through his high school. But like everyone else in Scott Rixner’s COMP 140, he was starting at ground zero.
He said, “One of the first things Rixner tells you, to level the playing field, is that whether we’ve been programming since we were kids or have never taken a CS course, none of us know the foundations or have the skills to take it to the next level. I thought of that as a challenge and tried hard to approach the class as if I didn’t know anything, and that was very valuable in hindsight.”
While he tackled fundamentals in COMP 140 and 182, Granahan continued developing his programming skills with side projects. He said, “One of my friends from high school was also in CS at Rice and we entered HackRice to build a Python project that would translate foreign text in a live video stream into English. Even though that type of program is now a full-fledged feature in Google Translate, it was still a new concept then. The project was a lot harder than we expected but at the end of the hackathon, we had a really bad, working prototype.”
At the end of his freshman year, Granahan returned to a second internship at Onit. “My first summer, I built a plug-in for one of their data migration tools. My second summer, they needed an internal software testing tool. Looking back, I made so many mistakes. But that was a good thing, because I Iearned from those mistakes, and I grew a lot through the process.”
Granahan completed a third internship with Onit before looking for another opportunity. He said he’d gotten a good idea of working for a small company and wanted to explore roles in companies at the opposite end of the spectrum.
“At Onit, I actually had access to the C-suite if I had a question,” he said, “and I wanted a different perspective. But I started the search process really late in my junior year. When I interviewed with Amazon, it was a quick process in the beginning, then I heard nothing for a long time. About the time I’d given up on it, they made me an offer.”
The leap from a small local startup to a global giant challenged Granahan to work differently. At Onit, he had been able to work independently, and build tools that solved an internal problem without worrying about scale. “At a large company, all the little things you don’t have to think about in a smaller organization really come into play. Your approach to architecture may be wrong, resulting in slow performance when you have to build on the global scale.
“One of the programs I built for Onit was only used by a few dozen people in the company and it ran on my laptop just fine. If it crashed, I could just restart my laptop and we’d move on. Obviously, there is a different level of expectation at Amazon. What we work on has the potential for a much larger impact. You have to start thinking differently about the simple things, like how to recover if your program crashes.”
After joking about the image of him running around restarting thousands of servers, Granahan got serious again. He is passionate about the service Amazon provides as well as his role in the organization.
“My work is meaningful to me because I enjoy it when people use what I’ve built. How many people are using it? Are they enjoying it? Is it accomplishing what they wanted it to do for them?
“One of the reasons I picked Amazon – and Onit – is because I am able to interact with the people using my projects. At Onit, my users were internal. At Amazon, indirectly, my users are our customers. At the end of the day, I derive satisfaction knowing people are enjoying their packages on time at least in part because of what I’m working on.”