Software engineering remains one of the hottest career paths for students to pursue. Despite Carlos being a highly educated software engineer, I was pleasantly surprised to learn that the formal education required to have a successful career in software engineering does not need to be a significant barrier. There are successful software engineers at Google that do not even have a formal computer science degree.
Date of Interview: July 16, 2021
Answer: Software Engineer
Industry you work in
City you work in
Answer: Chicago, IL
[Compensation data was not provided by the interviewee. The below compensation information was retrieved from Glassdoor.com data. These averages come from compensation data that is self-reported by employees of the company.]
$226,378 is the average base salary and $52,564 is the average bonus (i.e. annual bonus) for a Google Staff Software Engineer. Google’s compensation may also include significant stock awards which must be vested over time.
New graduates working at Google as software engineers have an average salary of $124,308 and an average bonus of $17,281. Google’s compensation may also include significant stock awards which must be vested over time.
Years at your current job
Answer:I was at Google, then left and returned to Google again. I’ve worked at Google for about 7-8 years (2011-2014 and 2016-current). I have been promoted a few times while at Google.
Years working in your field, including time at previous employers
Answer:I’ve been a software engineer since graduating in 2001. I took a few years off to get a PhD in Computer Science and worked as an academic for a few years.
Where did you work before your current job?
Answer:I’m from Costa Rica and started my career there. My first real job was as a software engineer at Costa Rica’s Central Bank (similar to the Federal Reserve in the US) for about five years. I worked on payment systems. Then I came to the US to get a Master’s Degree and PhD. I went on to intern at TransUnion and one other smaller company before interning at Google. My Google internship turned into a full time position.
After completing my PhD program, I started full time at Google in 2011. I left Google in 2014 to teach at a university in Costa Rica. My wife’s family is from the Midwest so we did end up moving back to the Chicago area again, which is when I returned to work at Google.
Did you go to college or pursue any other secondary education? If yes, was it required for your job?
What was your college major?
What college did you go to?
Answer:University of Costa Rica (undergrad)
MBA from Fundepos (also in Costa Rica)
Masters and PhD from DePaul in Chicago
Did you go to graduate school? If yes, was it required?
Answer:Yes, while working at the bank I became interested in finance, so I pursued an MBA in banking and finance. I’ve never really used it professionally, but an MBA does give you tips and tricks about business.
I also have a Master’s Degree in Computer Science. When I met my advisor in the Master’s program, she influenced me to pursue a PhD in Computer Science, too. The Master’s degree would be helpful for those that research machine learning and data mining, but graduate school is not required for what I do today at Google.
Having a graduate degree will allow you to start at a higher compensation level at Google. However, someone would be able to work up to the same level without the graduate degree.
Do you have any other professional licenses or certifications?
Answer:I was a Microsoft certified professional earlier in my career. The value of certifications depends on where you work. For example, there are some Cisco certifications for networking that would be valuable for working in that area. There are some certifications for [cyber] security work. At Google, they are not important since all of our technology is home built.
Do you work in your field of study?
Answer:Yes – related to Computer Science, but MBA is not relevant.
What is the minimum required schooling or training for your job?
Answer:Software engineers don’t even need to have a degree in Computer Science. It helps because when you interview for the tech industry [FAANG roles], the interview process includes technical problems that you need to solve. A lot are based on core computer science theories/algorithms you learn about in school. Getting a computer science degree can help, but a lot of people are self-taught. For example, my boss was a photographer previously, but is self-taught in software engineering.
Do you feel that your school’s reputation had a significant impact on getting a job in your field?
Answer:Yes, I think so. My undergrad program was very rigorous and set me on the right path, so it was useful. The Master’s and PhD were more focused on solving problems. They were helpful because what I do today is solve problems with technology. The PhD gave me the skills to learn and apply the scientific approach to solve problems. I don’t use a lot of the technical stuff from my PhD program, but the mindset and approach I established is valuable.
Job Demand & Stability
How long did it take to land your first job in your field after graduating?
Answer:Almost no time. I had a job before finishing my coursework. This is very common for computer science students. Employers tend to seek students.
Did you have any internships?
Answer:Yes – TransUnion, another smaller company, and at Google which turned into my full time roll.
If you lost your job tomorrow, would it be difficult to get a similar or better job?
Answer:It would not be difficult.
Advice For Success
What advice would you provide to someone on how to get a job at Google or become a software engineer?
Answer: Be a curious person. Start hacking things on your own. Having that frame of mind when you’re young is super useful. Sign up for programming classes, even free online classes. Go to a makers’ space and find out how things work. Fostering this mindset is important.
While you’re in college, internships are super important. Internships are an easier way to get a full-time job. The interviews are way easier as an intern and then you don’t have go through the more difficult full-time interview.
Internships also give you a sense of the industry and the professional world you will work in. This can help you understand what you don’t like (in terms of industry). For example, working in the banking industry is much different than working at Google.
Lastly, take time to prepare yourself on how to talk to recruiters and interviewers, once you are ready to start interviewing.
Nature of Job and Schedule
Describe what you do
Answer:My days now look very different than when I first started my career. Now I am in many more meetings and doing higher level things. When you start off as a newer engineer, you’re given a project within a particular system. First, you have to find out how the system works and understand the constructs you’re dealing with. New engineers will spend a lot of time orienting themselves on the tech and the business. They also spend a lot of time reading code and documentation, rather than producing anything new. Once you get your bearings, you could start a project that is somewhat well-defined with requirements and a specific scope. These are your training wheels. You’ll work on making changes you’ve been asked to make, do troubleshooting, etc. This varies from place to place.
As you move up from these projects, you get broader projects and must think more about how to solve them.
Describe your daily and weekly schedule
Answer:I usually start working between 8AM and 9AM and finish between 5PM and 6PM each day. In general, schedules are very flexible. My team includes people that start around 10:30AM-11:00AM and finish their day later. Some people start and finish their days earlier.
What parts of your job are repetitive?
Answer:Every project is different. As you do more and more projects, you start to realize there are parts that are more repetitive. Basically every system has a database and most are very similar, so there’s knowledge you can get from your previous experiences that is transferable. You start to get more comfortable with the core pieces of tech and understand how to stick them together.
What parts of your job require learning or performing new duties/responsibilities?
Answer:Learning new things is constant in the tech industry. Tech is always evolving and changing. The tricky part is if you take a break or try something different. Then it’s harder to come back in and be up to speed on what has changed.
Describe the setting you work in most
Answer: I was usually going into the office four days per week prior to the pandemic. I’d work from home one day each week. I’ve been at home since the start of the pandemic, but have started going in about once a week again. I plan on going back to the office three days per week. The office is amazing. Google’s office is super fun – free food, game rooms, massage rooms, gym, and bar. The ergonomics of the workstations are excellent.
In Mountain View [Google’s West Coast Headquarters] all meals are available in the office, you can get your haircut, and you can get your laundry done. You could even see a doctor if you had a cold or something. To some extent, the perks are designed to keep you in the office longer.
Most big tech companies have a very nice office to pamper their employees.
Describe the nature and frequency of working with other people while doing your job
Answer:Early on in a software engineer’s career, they are mostly doing programming, testing, deploying, reading a lot of code and figuring out how things work. Software engineering can also be very collaborative. You have to talk to other people and the project stakeholders a lot to understand requirements, etc.
Does your job require travel?
Answer: Before the pandemic I would travel maybe once a month or so. These were short trips. Tech is very coast-heavy so it’s concentrated in California (specifically the Bay Area), Seattle, and New York. Most of the action is happening in these locations. I would travel to California and New York, and also to Munich.
Some people feel there are not as many tech job opportunities in Chicago, but I think it’s changing now. More companies/opportunities are coming to the Midwest. So my advice is that you don’t need to move to the Bay Area to work in tech.
What is the most enjoyable or rewarding part of your job?
Answer:My job is based on solving problems. You get sort of a high when something is finished and working properly. Launching a solution to a problem is very rewarding. You get to see real people using the software and sometimes the solutions may even make it to the news, if it’s something widely available on the Internet.
What is the most challenging or stressful part of your job?
Answer:Challenges have been the same in each place I’ve worked. I always joke with my team that computers are easy and people are difficult. Getting all the right stakeholders to agree on the problem/solution, dealing with competing interests of teams, managing relationships of people and getting consensus is challenging and it always will be. The more experience you have, the better you can handle and navigate these challenges.
Does your job provide work/life balance?
Answer:Yes, within the tech industry, different places provide better work/life balance than others. Work/life balance is a very important at Google. Studies have shown you can only sustain performance at a certain pace and period of time. You will burn out at a certain point [if you are working beyond this pace over a period of time]. A lot of the perks at Google are designed to help with this issue.
Next week I am going on vacation and everyone is telling me to disconnect. That is the expectation. This is not true across all of the tech industry. For example, FinTechs [financial technology companies] are known for the opposite. They are a different industry with a different mentality. Some of the employees from FinTechs end up at Google since they burned out.
How much time off do you take from work?
Answer:Usually three weeks per year during a normal year.
Any interesting/enjoyable perks of your job?
Answer:Google pays for internet, phone, etc. There are also great medical benefits, 401(k), etc.
Why did you pick your job?
Answer:At heart, I’ve always been an engineer. I always wanted to build things. I went to a summer camp and got into computers pretty early. My grandma had an old computer which I used. During high school I took a good computer science class and I really liked my teacher. It was evident from those events that I wanted to pursue working with computers. When I deviated at times (e.g. pursuing an MBA and working in academics), I ended up coming back to software engineering.
What would you do if you had to change careers?
Answer:I would teach. When you want to become a full-time professor, you can be an adjunct instructor or tenured. Tenure has a lot of requirements that are not necessarily tied to teaching and doing research. There are lots of politics. From working at two universities, I learned I did not enjoy the tenure track. I figured out the parts I enjoyed about teaching (interacting with students and doing research). Tenure has additional requirements like publication/getting grants, etc.