Rice University alumna Carolyn Shuford (BSCS ’15) loves feeling a sense of having accomplished something at the end of the day. “I like days where I get a lot done,” she said, “but I don’t get to check in code every day.”
The software development engineer at Microsoft said she has to break big projects into smaller steps, even if it’s gaining consensus on how something should be done by the end of a meeting.
“Nailing down a decision counts as accomplishment. Usually I’ll talk to area owners about what trade offs we have to make, what’s the right thing to do. Then when we come to a conclusion, I document what we decided and why. A bad day is when people say, ‘I’ll get back to you.’”
That drive to accomplish useful milestones may be one of the reasons Shuford thrives on code reviews. Microsoft requires a complete review process before any code can be checked in, and they use a tool that shows every change the developer makes so the reviewers can highlight lines of code, make comments and point exactly where their suggestion fits. Iterating, the process of publishing the next version, provides an opportunity for the developer to mark all the reviewer comments addressed in the new version and start up a new round.
“I like iteration in my code reviews,” said Shuford. “I feel like I’m saying, ‘Come at me. Here’s the best I have right now, so tell me everything that’s wrong with it.’ I’d rather them tell me than just be annoyed about something.
“Be forthcoming. The cool people on my team will say what’s wrong and what rule to follow to make it work the way we do it, to be consistent. That explanation means I don’t mess it up again and I feel like I’ve learned how to do something correctly. And eventually, you get to the point where the reviewers say, ‘that’s all I’ve got, go ahead and check it in.’”
Shuford hasn’t always been this goal-focused. She attended a small school in Florida with limited opportunities. Her counselor suggested she try AP CS because she liked math.
“AP CS was really fun, and I had no other plans for college, so I figured I just do that. I wasn’t really ready to look at colleges in my junior year, but my parents said I needed to think about it and they essentially forced me to go to some college nights. Then they drove me to Texas.”
She said the trip to Rice was pretty much a blur, but she distinctly remembered touring the campus in summer. “It was like 100 degrees,” said Shuford, “and I thought it was miserable. But we went back to Rice in the evening and it was better. I also liked the idea of a small school because University of Central Florida had already told me I probably wouldn’t even be able to get all the classes I needed to graduate in four years.
“Being on a first name basis with the people in the CS department at Rice was great. I didn’t have to re-introduce myself every time. Plus the more research about Rice I did, the more it felt right. But I definitely didn’t fall in love with it at 100 degrees.”
In her first year at Rice, Shuford listened to upperclassmen in CS talk about their internship interviews and she began searching for freshmen opportunities. She said she found a post on Reddit about Google internships for freshmen and sophomores and applied online.
“Then I went into phone interviews, and the next thing I know, I’m in Mountain View working as an intern on the Google Earth team.”
She said the internship was geared to students with limited programming experience and they assigned her tasks she could complete in Python. Although Shuford didn’t feel she had accomplished much, she received a return offer for a second summer internship.
“But I wanted to try something different,” she said. “I turned down Google and went to Microsoft after my sophomore year. Microsoft also had internships for students with only one or two years of experience, and I liked the idea of trying out a different city.
“That summer probably spoiled me on Microsoft and Seattle. We had the choice of finding our own housing or letting Microsoft find housing for us. I let them find me an apartment and got lucky. That summer, my apartment was actually next to the building I worked in. It wasn’t planned that way, but it was super convenient and I literally walked a nature trail to my office each day.”
Shuford was placed on a self-contained team of three interns, with the goal of trying different disciplines through the summer. They took turns in roles like project manager and developer. In one trial, the PM in the team wrote up documentation for an Outlook add-in app and then had to hand it off to another team member to code.
“That internship was so interesting for me, because we all got to try the different roles. Back at Rice, as a college student, I was the team. You do it all, and don’t have to think about how you communicate with yourself.
“The other thing that summer revealed to me is that I wanted to develop software. I get frustrated with the kind of minutiae a PM deals with. I’m like ‘just pick a color and get on with it.’”
Shuford returned to Microsoft for a second summer internship and as a new hire after graduation. She said even though she’s very goal conscious, she also incorporates some of the community-building lessons she learned at Rice.
“I think it is really important to get to know other people in CS, whether they are one year ahead of you or three years or Ph.D. students. Get other people’s viewpoints on the right thing to do. In addition to teaching you different strategies, it sets you up for the kinds of code reviews you’ll have in industry.
“I also loved the CS Club,” she said. “I don’t think I would have successfully finished the CS program if I hadn’t had friends in my classes. Especially on those really late nights when you need to bounce things off someone else. The night before the project is due and you ask, ‘Am I totally crazy or is it supposed to work like this?’ Sometimes just starting to talk to someone else is all you need. That’s when I’d go, ‘Wait, never mind.’ I just needed to say it out loud.”