Alper Özöner
University of Groningen
Groningen (53.2° N, 6.5° E)
featuring Roger Chen, Site Reliability Engineer, Google, San Francisco (37.7° N, 122.4° W)
Roger Chen, an avid blogger and programmer, currently works at Google as a site reliability engineer. Programming since his teenage years, Roger graduated from UC Berkeley with a degree in computer science and worked in many different positions while there, such as an online manager for his campus newspaper and a teaching assistant.
During my interview with Roger, we talked about his interests growing up, the importance of a college education, and some aspects of his career. Roger described growing up in a small town as a far cry from the spirit of Silicon Valley; he “didn’t know a single computer programmer.” Despite this, Roger had a hobby of creating websites for the games he played. He created his personal website, www.rogerhub.com, while he was still in high school, and he still posts his outlook about technology and society there.
Once he started college, he experienced “a change because suddenly I could talk about all these things that I couldn’t talk about before in person.” Roger thinks that he fully understood the value of his time in college after taking his first step into his career by doing an internship. There, he decided that working was “quite boring,” so he made a change of plans and stayed in college one year more, focusing on his teaching assistant work. Interestingly enough, staying one more extra year in college mostly focusing on his self-development felt more worthwhile for Roger than “just going to a job early and making money.” His experience in college was very valuable for him on many different levels and he considers staying in school “a great decision and something that I should have realized earlier.” As a teaching assistant, Roger wrote design documents and proposals, honing his skills in technical writing. Having experience “trying to write very concise, short, and very clear explanations of how something works,” is indeed a crucial skill Roger still uses to this day at his job at Google.
When I asked about his position in Google, Roger stated that he is expected to have a broader grasp that other software developers might not have. Roger thinks he is suited for his position because he likes to look at the parts of the company that are not related to his project. This goes hand in hand with his proficiency reading design documents from other teams. He noted a very interesting part of his profession is that he spends most of his time “reading code instead of writing code, probably about ninety percent reading and ten percent writing.” He added that writing “readable code” holds a very important place in the professional realm.
I believe that the most notable insight of this interview with Roger was his informed ideas about the value of a college education in comparison with a self-taught point of view. Early on his career, Roger developed himself in programming and software engineering though self-teaching, but he realized this approach is a “boring way to look at software engineering in general,” where everything is reduced to knowing the basic building block of programming. He embraces the innate value of being in a college environment and thinks “if people aren’t getting enough out of school, it’s because they aren’t signing up for the right things.” In college, “there’s so much more that you can do. And I think the point of college, and the point of being around all these other people that want to do computer science, is you can learn what other things are possible to do.”
Highlights from the Interview
Did you have anything that shaped your career or who you are today from your childhood?
I grew up in southern California, which is in California but still far away from all of the tech companies. I didn’t have a role model or anything to speak of. The way I got into computers was I created websites for my games, basically fan sites where I put information about my games. And that led into web development, and then I ended up in computer programming.
I mostly learned either online or I bought books from bookstores about computer programming. That’s probably not a common way of learning today. Back then there weren’t a bunch of tutorial sites or YouTube videos or anything like that which you could actually learn from. It was more difficult to learn online than it is today.
For a long time, I thought I wanted to be a web developer. I ended up not being a web developer. I don’t do any web work today. I thought I wanted to work at Google, and I do work at Google.
How did your career path change from high school to college?
When I was in high school I created a website for my school volunteering club, where you could log in and check your status and sign up for events. That was very useful to have part of the work kind of automated. And then I built my personal website in 2009. When in college, that changed very much. I went to UC Berkeley. There is a big computer science program. Then suddenly every single person around me kind of studied computer science. It was a change because suddenly I could talk about all these things that I couldn’t talk about before in person. I used to only hear about them on internet. Sometime in college I switched from web development to working essentially on website infrastructure. Infrastructure in general. Things like networking, survey administration.
You are now working as a site reliability engineer at Google. Could you define it a little bit?
I guess there’s plenty of definitions online that could probably explain this better than I could, but essentially, it’s applying software engineering to the problem with reliability. Keeping the website online and the service to keep it running—and making sure nothing breaks. It’s partly operational work. Typical work that you would see system administrators do on a website. Having the servers run but also monitoring how your website is performing, making sure that your website is not taken over by traffic and all that stuff. So that’s what site reliability engineering is. You need to understand infrastructure depending on what you’re running on, what kinds of ways it can fail, what it depends on, all the networking, and how the hardware parts fit.
While in college you took initiatives—for example, worked at The Daily Californian and you also had a TA role in your university. Did you have a big motivation for doing such things?
I joined The Daily Cal, which was the newspaper at my college, because most of my friends were joining that. They weren’t joining as software engineers, they were joining as writers for sports and news and stuff. But after about a year or two, almost all of them left and I was the only one to run the website—and that’s why I ended up doing it for such a long time. It was lots of fun though. Same sort of deal—website and website infrastructure.
As for TA’ing, I like to tell people that I just TA’d for the money. A lot of people that I know from college today I know because they were TAs in other classes. TAs tend to talk to each other a lot. At the beginning it was a really good choice for me in college. Not only did they cover your tuition and pay you, at least at UC Berkeley, you also get a lot of soft skills like teaching, presenting, writing exams. A lot of the technical writing I learned came from when I was being a TA, from writing homework, tests, and projects. You also get to learn leadership. You get a deeper understanding of the class you’re teaching, because students would ask you questions.
Did you have any other experience during college that prepared you?
One big side project that I worked on that helped me a whole lot was curating and maintaining my website because it was getting a lot more traffic in recent years. Basically, I was able to treat my website like a mini-business, a little start-up of my own. A one-person business. It had a lot of the same website infrastructure and scaling issues that a lot of start-ups tend to have. I spent a lot of time, for example, learning about cloud technology and clustering and reliability, while trying to build up reliability for my website. I was basically a site reliability engineer for the website.
Do you have any ways of coping with stress at work?
Google makes it very easy to handle stress. There’s a very strong emphasis on work-life balance. A lot of people have families and other responsibilities, and they can only work the exact hours that they’re getting paid, and no one expects anything more from them. There is a blameless culture at Google, where if something’s going wrong, it’s not the human’s fault, it’s the system’s fault. You’re letting the human make a mistake or letting that problem happen.
Have the soft skills from TA’ing in college or other experiences helped you in your professional life?
Totally. The number one thing that I got from TA’ing that applies now is technical writing—so writing design documents and design proposals—and you know just documenting stuff in general. A lot of the time there’s too many people to understand everything, so you have to write documents that explain how things work so that people will get a good idea. And having experience trying to write very concise, short, and very clear explanations of how something works—that really helps out. And it tends to get harder than people think. If people aren’t very experienced with technical writing, they end up writing a jumbled mess. You know how it works in your head, but it’s hard to explain it in a very linear fashion in a way that other people can easily follow and understand. Being a TA and having to do that for basically everything that you publish to students, that really helped. Because it’s essentially the same skill. Also presenting helps to extend most of the time management to people who are presenting things. If you need to present something—for example, your project to your team—that’s obviously a presentation and knowing how to speak clearly and stuff helps.
Did you have any crucial decisions that changed your career?
I can sort of think of one. My plan was to graduate from college in three years. And I had kept that plan basically until six to eight months before I was actually going to graduate, and then I decided to stay another year. And that’s partially because I didn’t want to work because I thought it was boring, and I thought that there was more I could get out of college as well. I’d been a TA for only about a year and half at that point, and I wanted to keep doing it because it was a lot of fun. It felt more worthwhile than just going to a job early and making money, because all you’re doing is getting one year’s worth of experience more. A lot of people who did graduate early and think that school is kind of a waste of time—like, “Look at all of these job offers that I’m getting even though I’m not even done with college yet.” And especially the money really lures people away from school, but I think that if people aren’t getting enough out of school it’s because they aren’t signing up for the right things. Staying in school was a great decision.
When you first came to college, you met many people with the same interests you had. You were suddenly able to speak and trade your ideas with other people. Did it have any profound affect on you?
I think early on I definitely realized that I was really self-confident as programmer before, and afterwards I was not anymore. Mostly because you know when you’re trying to teach yourself stuff, once you know the basics of single programming language, you know how loops and conditions and functions work. You think that ok, with these basic building blocks, I think I can build whatever I want to. And, at the end of the day, you find yourself building programs that just push data around. That’s a very boring way to look at software engineering in general. There’s so much more that you can do. I think the point of college, and point of being around all these other people that want to do computer science, is you can learn what other things are possible to do. There’s no way that someone who is self-taught with web development is going to suddenly start being interested in artificial intelligence and machine learning. They just don’t have that idea in their head that these are things that they can do. I see college versus working experience—college gives you a lot more breadth and a good foundation of things, whereas experience in work basically just gives you one specific experience.
We are learning C in our first year. When I try looking at someone else’s code, it feels like a different realm of thinking. It’s definitely harder to look into other people’s creations and codes. Since you work in a team, do you also have moments like that?
Actually, I spend most of my time reading code instead of writing code, probably about 90 percent reading and 10 percent writing. You read something and try to understand it, and then you write a little bit that changes it somehow. I think one problem is that a lot of open-source code is not very friendly to readers. The person kind of just wrote it once, and they didn’t use very good names, and they didn’t write comments, and that’s not really the reader’s fault, it’s the writer’s fault for making it hard to read. So it’s totally understandable. Sometimes I look at things and I’m like, “Why did you write it this way? This is bad.” It’s definitely one skill that people pick up along the way, how to write readable codes. We have a program called Readability at Google. So for most of the programming languages, in order to submit code that is written in that language, you need to have readability or you need to have someone who has readability to proof it. They read through your code and make sure it’s readable. They review it for what your code does and for how it looks. Like, did you use the right idioms or are your names good? Could you have done this in a simpler way that’s easier to follow? Should you split this function into multiple parts? Things like that.
Is there a big issue facing the industry right now?
I guess the biggest issue right now is all the regulations work that’s starting to happen with regulating the internet. Copyright, privacy protections, net neutrality. It’s not really a huge issue; the internet will continue to work as before because there’s so much money in it that corporations will prevent anything actually bad from happening. But there are a lot of misguided attempts that try and protect people that are being run by governments all over the world. That’s definitely a concern.
(Interview excerpts have been lightly edited for clarity and readability and approved by the interviewee.)