An Interview with Irena Wang; Software Engineer at Google and Harvard Graduate
- Andrea Basuroski
- Jan 15, 2021
- 12 min read

When did you start coding?
-I started coding when I was in grad school, so very very late… I think I was 25 at the time.
You mentioned that you started coding later than your peers, how did this affect you?
-Well maybe I can do a quick summary of my background. So, I started off in math and for a long time I really wanted to be a mathematician, I went to college for that, I went to grad school for that. And halfway through my PhD program, I started taking some classes in the computer science department … even then, I tried to avoid coding as much as possible and I took all the theoretical classes first: complexity theory and algorithms and cryptography. I started to enjoy and have a lot more ability of problem solving aspects and after my first year of taking theoretical classes I took my Java 101. First it kind of dictated my career path and I certainly wasn’t a good enough software engineer to work specifically in that line of work… I wanted to do science first and then more like machine learning and then I started doing some coding just because I need to pipe all my data pipelines and like machine learning models together. And then I realized that I was a really bad software engineer and also I started to develop some respect for the discipline. So, I decided I wanted to be a better software engineer. And yeah, I figured the best way to do that was to get paid.
Would you like to speak a little bit on the fence between machine learning and just regular coding?
-Sure. I mean, it's a very nebulous concept, as I'm sure you've earned. But I think it's important to note differences between artificial intelligence and machine learning. Artificial intelligence is like a framework for conceiving of what a given algorithm is doing. If you decide that it's mimicking something that you think humans do, then basically you call it artificial intelligence. Machine learning is more when you just abstract some kind of process that you think is describable data, and you try to make it repeatable for the machine. A lot of machine learning started out as like, very explicitly prescribed. Then you add decision trees about how you think something might learn, and overtime, you can hyper parameter, and have a machine automatically figure out the best parameters and make decisions on it's own. It's a little bit like, automated, or push button programming, a little program that you have the machine learn the details of in the middle of your very explicit program.
It sounds like you're going into a little bit of deep learning?
-Yeah, I think deep learning is a species of machine learning. There's many ways in which you can structure this overall thing that you're trying to have in machine learning. Suppose your question, your problem, is how to detect a numeric data type that number in an array of pixels, right? So you can imagine just writing down, surely without any kind of machine learning, an enormous decision tree of like, if the first grade is white, and the second grade is black, and then the next one is black blob, all the spirit by very many possibilities, then it's a nine, if some other thing is true, then it's innate, etc. Or you could have a machine learn, or you could say, if X percent of the top quadrant is black, and X percent of the next quadrant is white, etc. Right, then it's an eight. And then have the machine learn, what's the best X to put there? Or you could have the machine figure out, which pixels even matter at all, and then have all these pixels connected in some kind of neural network and that's kind of deep learning.
What motivated you to pursue software engineering or what let it motivate you to pursue math in the first place?
-I can't say I really had a good reason for getting into math. I'm not sure if you have math counts. Like the AMCs and all of that. All of those were just much more accessible to me when I was in high school, than anything tech related. So I really got into it. I really got into the competition aspect of it. I decided, you know, career, being a career mathematician must be something like competing in AMCs, which is not at all. I continued doing it, I basically as long as it was fun.
What aspect of being a career mathematician made it not fun anymore for you
-I think academia is difficult, it's really difficult. If you think about the number of thesis advisors to the number of people, like just the ratio of these advisors in the world to the number of people that they advise, there's no way that will grow. There's no way that kind of exponential growth can sustain itself. Over time, even if a lot of the people like it, even if you lose a lot of people's nutrition to industry or research that's outside of academia. So I think it's a hyper competitive field. And if you're not incredibly talented, you often have to make some very difficult decisions. For example, deciding whether you want to live somewhere you don't really like for the rest of your life, just because you enjoy certain kind of research, or finding a position at the same university or town as your spouse. I wasn't really prepared to make those kinds of sacrifices.
-Do you have anything that surprised you about working in computer science? What's another misconception that you might have found to be inaccurate or a preconception that you found to be accurate?
-I think that in school, often, mastery implies that you know something front to back 100%. All of the details of a thing you've like completely mastered it only when you basically memorize the book knowledge. And in software engineering, I'm sure it's not unique to software engineering, but it's a very salient characteristic of software engineering that your knowledge is never complete. It's actually constantly becoming obsolete, because languages, software, engineering paradigms, all of those are changing very quickly, all the time. And also, even within your own company, even at Google, the codebase will be way too big for you to ever completely master. So what you have to learn is not only your part of the codebase, but a lot of soft skills like navigating systems and learning how to learn. And, you know, learning how to index the things that you don't know, so that you can access them and learn them quickly when you have to.
What are some downsides to working at Google? What do you think should be the end goal for people who want to pursue computer science? How was working at Google different from other companies?
-Well, one downside, I think you'll hear from everyone who works there is that Google is just its own world, that everything we use is like proprietary and internal. So we don't use GitHub. We don't use it, I mean most of us. Some teams do. Our version of Kubernetes is not the like, outside world version of Kubernetes. We mostly use C++ and JavaScript. So for example, I used to code in Scala, I'm pretty sure I don't know how to code "HelloWorld" in Scala anymore. Everything is very internally specific. So it's easy to kind of get stuck in that and start to fear leaving it.
To answer your second question, it's my personal belief that your end goal, as a computer scientist shouldn't be any different from your end goal as a human. And not really sure I know what my end goal as a human is. I thought about this a little bit in respect to the question you had about what advice I have for people going into STEM.
I really encourage you to learn broadly, to really, really pursue your academic interests outside of computer science, even if you were interested in it for a long time. Because software is eating the world. And it's becoming incredibly powerful in realms of the world where a lot of accumulated knowledge already exists, but it's maybe not being fully exploited. Example, if you want to design a market that reaches a healthy equilibrium, or if you want to understand the dynamics of adversarial strategic agents, which is a lot of what software is doing nowadays... a lot of software is in markets, right? Like Uber is a market between drivers and customers. You should also study network systems. You care about the unspoken assumptions that go into models in machine learning. Right? You should study philosophy of mind, maybe, or philosophy of science. If anything, there's a huge dearth of knowledge from other fields in software engineering, and a really superficial understanding of software engineering in other fields. To recap, just having that interdisciplinary collaboration, as well as just taking a holistic view in everything you do.
How hard it was to switch to a new programming language?
-I'm not sure if my experience will extend to that many people. Because I work on search ranking. And specifically, search ranking algorithms, which means I'm often just engineering features from machine learning models or training them, rather than like pushing a ton of code. So I don't have to be that good or that fast. It's C++. When I joined. I didn't know any C++. Now I'm certified. And so it's not, it's not too difficult, honestly. I think as long as you've learned, either C or Java, Python might not be as extensible. It might be a little too frictionless of a language to help you learn other languages. But I think if you find your job like before, you're good.
We're gonna get into some questions about being a woman in STEM, particularly, what were some of your biggest challenges? Going into math or into software engineering?
-I'm trying to think for now. Honestly, I didn't have that many. Everything I'm going to from here on preface with "as a woman". I'm always making some kind of imperfect attribution of things about me, to my socialization, as the woman who was born in 1986, and raised by immigrant parents, and all these very specific things about me. They may or may not extend to you, because you guys are much younger, and you all have different backgrounds from me. But I do think there's some commonality and experience for anyone who is in an extreme minority. Yeah, in any case, I don't think I experienced that much of it in math, because it felt like- at least in the groups I was growing up in, and then even in research- it felt like kind of a group of misfits, and nobody really fit in. And as a result, everyone felt more or less welcome. In software engineering, it's not that I felt liked or excluded. But software engineering is by nature, more of a social and collaborative activity. Especially once you go into industry. As a result, I think your soft connections and your affinity groups will always inform how well you do in a particular job. And your affinity groups are going to, by definition, be a little more limited if you start out as a minority group. And that could be any minority; if you're just a new, or if you're from another country. But I think a lot of teams at least in Google are pretty diverse and welcoming. And I think in tech, especially, especially big tech, actually, there is a lot of support, there's a lot of support for women, for minorities and for people of color.
Have you ever struggled with any imposter syndrome?
-I definitely have. And it's kind of difficult to go back to what I said a couple questions ago about how nobody ever knows everything in software engineering. I mean, as a result, there's always a lot you don't know. So it's very hard to disprove your own imposter syndrome. And it can become a bad feedback loop if you start thinking too much about it. I can tell you that I felt imposter syndrome very intensely, at many different jobs. And sometimes it was warranted. You know, just because I came from a different field, I came from authentic data science, I wasn't a real data scientist, didn't feel that way. And then I went from data science to software engineering, I didn't feel like a real software engineer. So sometimes it was warranted, but it was never helpful. I'm really glad that I finally got over it. Also, a lot of the time I feel imposter syndrome comes from being part of some minority group, like people from a different academic background, maybe that might also help you. Just being aware of the ways in which you might know more about, even just about your female customers, or, about how to encourage healthy group dynamics. I do find that it falls on women a lot to do this. But women also happen to be better on average at doing this. I find women are often the ones trying to encourage equitable discussions, trying to encourage people who aren't speaking. And while that's not a great thing to be forced into, I think it also speaks to the ways in which being a woman can help you in your work, it can also be a huge asset.
How male dominated is your workplace?
-It's, um, honestly, I should know this from published numbers. It's very heterogeneous across the team. So some teams are majority women, some teams are majority men. There are definitely more men than women. There's way more young people than old people. Of course, there's like, racial imbalances. So I really couldn't say what the coupe was like, overall, but I can say that in my first team, I was the only woman of six. And in my current team, I'm one of two and that's that's pretty representative.
Do you find that you have to act any differently or assert yourself in any way?
-I never needed to, everyone has different work styles. And I think people are fairly accommodating of that. I guess I can give like two examples. So one is that I had a manager previously. I got excited about arguing with him about various things. Sometimes, I burst out into tears. And it really freaked him out. Like every time I cried, he basically felt like I was having a nervous breakdown and like we'd have to call HR. And I had to teach him that, personally, when I cry, it just means that I'm feeling really excited, or maybe flustered or passionate about a particular thing. But, um, I think sometimes you have to teach people how to read you.
I think I had another example. Another thing is that I've really had to learn how to say no. Maybe I was more conditioned to this because I was an outsider... But in any case, I felt like every opportunity I was given was special. And I had to say yes to it. And I had to try to make it work. And also, I didn't want to teach people that I wasn't an agreeable person. But I think over time, I've learned that you only have so much time, you only have so much energy, and you know what the things you say yes to become? They makes it on your resume. And if your resume is just a random collection of things that people wanted you to do, because they didn't want to do it themselves... so much of your resume. So I've really had to train myself, to learn how to say no and what and how to stand out in a diplomatic way.
What does it take to get to Google?
-So, you don't really have to be a great software engineer. The Google interview process really emphasizes problem solving above all else, and perfect syntax. But that's pretty simple if you're interviewing in Python. Those are definitely great skills to have and to develop and encourage yourself no matter what field you go into. Learning how to say no, when to say no, and when to say yes. And feeling confident, asserting your own agency is really important in getting ahead in any field.
I think that having people, whether at work, or just in the industry, who you're friendly with, and maybe have someone like a mentor. That can be really helpful. Often I don't know that something that's happening to me is not okay, or that like, you know, I should be asking for a different kind of project or it sounds like I should get a promotion soon, or should be nominate myself for promotions. I wouldn't know those things, unless I talked to people whose opinion you trust, I think it's really important to develop relationships like that in the industry.
Do you think that going to Harvard was worth it in the long run?
-I can't, I really can't know. But I do feel that for a lot of people, including myself, Harvard was more of a certification than an education. If you can find some other way to have some third party, certify your, like your problem solving skills, or your intelligence or your like, ambition, you can find some other way to prove that you don't need to go to Harvard. Yeah. And I don't think it helped me materially in, like in grad school, or certainly not to become a software engineer. I studied math at Harvard.
Was there anything in particular during your undergrad and graduate school years, any opportunities that really shaped your interests, and helped you get knowledge outside of just classes?
-I would say that, all the research programs I participated in. I did two research programs, during the summer in math, during college, and then I did quite a bit of it. In grad school, it was an invaluable experience just diving deeply into something not for a grade or not for anything, collaboratively. And just thinking really deeply, and immersing yourself in something for a whole summer was a very valuable experience for me. It's something that I think loosely carries into some of the work I do now. I really think some of the non-major related classes that I took in college and grad school really informed the way I think about life and work.
Comentários