Introduction
Hi Khushboo, would love to know a bit about your professional background.
Hi, I’m Khushboo! I graduated last year from the Indian Institute of Technology, Goa.
I majored in computer science and I'm currently working as a software engineer at Google. It's been about nine months.
I also previously interned at Google. I've also worked as a front-end developer in some startups since I found my interest in front-end development during college. Plus, I interned at Mathworks. Apart from that, I enjoy graphic designing and reading.
Day in the life of a software engineer
- What does a typical day look like for you as a software engineer?
In the first half of the day before lunch, I focus on coding tasks since I'm more productive during that time. We have stand-ups on alternate days, which takes up some time. After lunch, I spend time meeting colleagues or taking part in activities. If there are meetings scheduled, I attend them in the second half. Otherwise, I work on pending tasks.
- How much time do you spend coding vs in meetings?
It varies depending on the sprint. During intensive periods, I spend around two to three hours coding, testing, and debugging. In less intensive periods, I might focus on documentation.
- How much time do you spend fixing bugs versus developing new features?
My work mainly involves writing SQL pipelines. Implementing a pipeline takes two to four days, including testing. As a new grad, I focus more on implementation rather than ideation, as the design is usually well-defined. Bug fixes are usually quick, but if cross-team collaboration is required, it can take two to three days due to dependencies.
If I've implemented something end-to-end and a related bug arises, it's assigned to me. I also handle two to three full implementation tasks per sprint. Additionally, during on-call rotations, I address customer issues and production failures.
- What’s your mantra to get quality work done daily?
When I first joined Google, I used to make a lot of mistakes. I still do, but they're reduced based on the feedback I've gotten from my mentors and peers.
One of the best things is to look at your code as a reviewer before creating a pull request (PR) and check for any mistakes. There are also guidelines based on different languages, so I make sure the naming is proper, add proper function comments, and check if anything can be split up into separate functions.
Going through your code as a reviewer from a third person's perspective is one of the best pieces of advice I've received. It reduces the work of the reviewer and helps you push better code.
Tech Stack
- With so many new tools popping up in the tech world every day, it can be hard to keep track! Can you tell us some specific tools that you swear by? Give us a peek into your tech stack.
1. Hardware Setup
The monitor I use is an HP 27-inch one. It's been working fine for me since my internship.
I'm not a big fan of external keyboards. I just use the built-in one. For the mouse, I just have a regular Logitech one, and that's working fine for me.
2. Software
A) Go-to browser
My go-to is Chrome.
B) Core work and coding tools
At Google, there's an internal code editor that we use for office work. For my personal projects and what I used in college, I prefer Visual Studio Code. It's highly customizable, and it's probably the best code editor out there, in my opinion.
C) Favorite programming language
I don't have a favorite per se, but for my personal projects, I've worked a lot with React. As I mentioned, I have some experience in front-end development, so I like React. I've also used Next.js for some of my projects, and I enjoy working with it.
Big Tech vs Startups
I noticed you’ve worked at both big tech (Google) and startups (Marktechpost). Firstly, can you tell me your preference between the two?
I don’t have a specific preference as such. I would love to explore working at a startup in the future. For now, I’ve been learning a lot at Big Tech!
- How would you compare startups with big tech?
1. Startups
One pro of startups is that since the technology is not mostly internal, your technical knowledge can be used in a lot of places. You can learn more that can be used at other companies once you switch. In big tech, a lot of things are internal, and the style may be specific to the company.
2. Big tech
On the other hand, one of the pros of big tech is that since everything is already streamlined, you get to learn how to manage things at scale. My team deals with a lot of data, so you get exposure to that, which is pretty great. In startups, you might not get that experience directly when you join.
- What are the key qualities of someone who would be a perfect fit for a startup versus big tech?
1. Skills
At startups, especially with remote jobs, they usually hire people who have a very specific skill set. They are looking for someone who can directly come in and start delivering from day one.
On the other hand, big tech companies have the time and resources to train someone, and they don't expect them to deliver at the same scale as startups right from day one. So a person who is good with niche frameworks or has a specific skill set would thrive in a startup.
2. Team
In big tech, one thing I like is that you can keep switching teams internally. Once you spend two to three years in a particular team, you can switch to another team if you want to learn something new, which is much easier than switching companies. If you’re looking for that - big tech would be a great choice.
3. Culture
From what I've heard and seen, startups definitely have more of a hustle culture, and the work-life balance is not as good as you might get in big tech. If you are okay with working more and hustling in that kind of team, then startups are definitely for you.
4. Pace of work
In startups, I've heard that once people are given a feature, the deadlines are pretty strict, and they're usually smaller. You have more ownership of your work, and you might be delivering an entire project end-to-end. In big tech, you might start doing that after some time.
Navigating a New Tech Role
1. First Month
The first month was trying to understand and complete some minor introductory tasks for my team. While doing those, I got to learn about what the entire team was doing. Since it was completely new to me, I ensured that I asked as many questions as needed to get clarity from the start, rather than being confused and waiting to ask after two or three months.
I’d say one thing here - only ask questions after doing your due research, go through the resources provided, and try to find out the answer on your own. If you still cannot understand something after diving deep, then there's no problem in asking for help.
2. Next 3 months
Over the next three months, as I started getting a better hold of my work and the tasks assigned to me, I invested a lot of time going through other people's code to understand what they were working on and what was going on in the team.
3. 6-12 months
Currently, I've been handed a project where a senior engineer is mentoring me, but a lot of the ownership is with me. Once you start showing ownership of your work, if anything goes wrong, you're the one responsible for it. Once you're fully settled in and confident in your team, you'll find completing tasks end-to-end a lot easier with just a little support - in fact, that should be your goal.
- If you had to give a KPI to know that you’ve succeeded in each of these phases, what would those be?
1. First month
For the first month, I would keep things pretty simple. I had a really hard time getting comfortable with the codebase and used to make a lot of mistakes. At that time, I think the criteria would have been just delivering the tasks assigned to me. It might seem small, but that's what I feel would have been important for the first month.
2. Next 3 months
For the next few months, the metric would be how little help I needed to navigate things on my own. Was I able to complete tasks independently, or did I have to keep asking for help from my mentor?
3. 6-12 months
For the current situation, the metric would be code quality, which can be judged by the number of comments or changes suggested in my code reviews. Were these changes something I could have avoided if I had reviewed my code before submitting it?
- At the end of your first year, how would you pitch yourself to your manager to ensure a successful performance appraisal, considering the KPIs you mentioned?
At Google, we have quarterly check-ins. Before a quarter starts, you put in your expectations, which are the milestones you need to achieve. At the end of the quarter, you have a one-on-one with your manager to discuss if those were completed and receive any feedback.
Mainly, I would be discussing if I was able to complete those milestones and if I've done anything to go one step ahead. Also, being a team player is very important. Your willingness to help your teammates despite having your work is valued - if you’ve done that, I’d recommend highlighting it during the review.
Upskilling in Tech
- You're almost going to spend a year at Google. I'm sure you must have picked up new skills during this time. Can you tell me what is your motivation for upskilling and how you go about it?
1. Motivation
One thing that motivated me was that I had a really hard time at the start. I used to not understand a lot of things, and many things were confusing for me. So, I would go back and check what I could have done better, what documents I needed to go through, any slides I could review, or knowing about the overall structure - that really motivated me.
2. Learning Approach
A) Resources
I'm the kind of person who prefers to read blogs a lot. There are many helpful Medium articles and blogs on anything you want to learn. Especially for coding, freeCodeCamp has a lot of helpful blogs.
B) Paid vs unpaid resources
I feel like there are a lot more free resources available. Some paid courses are good too. If you're in the mood for it, Udemy does have a lot of good courses at a good price point.
C) Note-taking
On Medium, you have the option to highlight important things. If it gets highlighted, you can go through those on your profile. So, if I'm reading Medium articles specifically, I highlight those. For algorithms and some important tricks or tips, I use a Notion doc so that I can revisit them later.
Qualities of 10x engineers
A person I can think of immediately when I think of a great engineer is my mentor at work. What sets him apart from other team members is that he has encouraged me to go into the details of something.
As a new hire, you always expect to just deliver quickly, thinking it will look good if you complete tasks in little time. But often, even though the task is done, there are times when you don't fully understand the internal workings, why it's working in a certain way, or why something is happening. If it just works, you're happy. I used to have that attitude.
My mentor has encouraged me to understand why something is working because if you're presented with the same problem in the future, it won't strike you unless you know why. It's about taking the extra step, going a little deeper, and reading the documentation.
This is one quality of his that I look up to.
What also sets him apart is that he's very open to giving and receiving feedback. Having good communication skills is very important. Talking to him is very easy - because he makes our team feel very comfortable to openly talk about a problem, or if a deadline is slipping due to a genuine reason. He’s a great engineer to be around.
- How do you think engineers can become 10x engineers?
From talking to different people, I feel it's really important to not just be limited to your job but also work on something of your own, like a personal project. It's always good to upskill, especially in the current job market and scenario.
Working on something of your own, reading, or learning about something related to your job, like a language you're using, by reading blogs or watching videos, can contribute to your growth in the long run. Staying updated with new developments in your field is truly important.
Joining FAANG
- Do you think all FAANG engineers are 10x engineers?
I wouldn't restrict this to just FAANG companies, as there are great engineers in startups too. A key quality is the ability to break down a problem and tackle each part independently until the whole structure falls into place. If you can do that on your own when presented with a problem - you are a great engineer even if you don’t work in FAANG.
The best part about Google is the people. You work with great minds and gain new perspectives that shape your personality. I've changed a lot since joining Google, thanks to the conversations I've had.
Also, working on products used by many people allows you to directly see the impact of your work, especially if you're in a customer-facing team. You learn a lot in terms of technical skills, but you also get to focus on developing the right attitude toward problem-solving, being approachable, and being helpful to others.
- A lot of engineers aspire to work at Google. Do you have any advice for those looking to join Google? Anything they can do with their resumes, interviews, or job search process?
1. Tips for creating an ideal resume for big tech companies
Use a standard, simple format like LaTeX. Fancy resumes with photos often get rejected by ATS scanners. Highlight projects that have helped users, even if it's just family members. Participate in hackathons and mention any top rankings. Show numbers on your resume, like coding contest ranks or user metrics for projects.
2. Tips for interviews
Be thorough with your technical knowledge, and have a good introduction to set a positive tone. Treat the interview as a conversation to reduce stress. Remember, the interviewer wants to hire you, so stay calm and composed.
3. Advice for networking among engineers
Be active on Twitter, as many tech professionals use it. Attend meetups to meet new people and understand their backgrounds. If you appreciate someone's work, send them a message on LinkedIn or other platforms. Engage with content you like on Medium to build connections with the creators. These small things help with networking.
Negotiating salaries in Tech
- Negotiating salaries can be very tricky. How would you approach it in the coming future?
In my case, I received a direct new grad offer from Google, and from what I'm aware, they don't usually have negotiations for candidates coming straight out of college. However, once you have around a year of experience under your belt, negotiations do come into play.
I've learned a bit about negotiation strategies from my colleagues and by watching some informative videos on the topic. The key takeaway is that you first need to arm yourself with knowledge about the current market compensation for your role and level. Research what other companies are offering for similar positions within the same range. Having a solid understanding of the market landscape is crucial when it comes to negotiation.
Moreover, it's important to remember that you are the best judge of your skills and value. If you genuinely believe that you deserve a better compensation package based on your qualifications, experience, and the value you bring to the table, then you should go for it.
I've come across instances where people were initially very apprehensive about asking for a higher offer, fearing that it might hurt their chances of getting the job. However, more often than not, when they mustered up the courage to ask, the HR representative was quite receptive and willing to consider their request.
The scariest part is often taking that first step and initiating the negotiation conversation. It can be daunting, but if you have a clear understanding of your skills and truly believe that you deserve better, then it's worth advocating for yourself.
Remember, the worst that can happen is that they say no, but at least you'll know that you tried. And who knows, they might just say yes and you'll end up with a more competitive compensation package that aligns with your value.
Assessing Job Offers: Beyond Salary
- How do you assess multiple job offers beyond just the CTC?
This is actually pretty interesting because I've seen a bunch of people at Google move around to different companies or switch teams internally. I got curious and asked them what they considered when making those decisions, and their thoughts made a lot of sense to me.
1. Team
One of the biggest things to look at is the management team and the higher-ups. They really set the tone for the whole team's culture and vibe. You want to make sure your attitude, expectations, and career goals line up with what your managers and the team are all about. At the end of the day, you've got to be happy with your work, and that's only going to happen if you feel good about the environment you're in.
2. Role
Another thing to consider is what kind of work you'll be doing. Depending on where you're at in your career, you might be itching to learn something new and branch out, or you might want to dig into what you're already doing and become an expert. Tech is such a huge field with so many options, so it's important to check in with yourself and figure out what you want and when.
3. Work-life balance
Work-life balance is another big factor, and there are a lot of different opinions out there.
Some people say your twenties are the time to grind and put in the extra hours because you'll have more responsibilities later on. But I think having a good balance is important no matter how old you are.
Burning yourself out by overdoing it for a few months isn't going to do you any favors in the long run. You'll just end up feeling drained and not being able to give your best.
So, when it comes down to choosing between offers, you've got to look at the big picture. The management team, how the job fits with your personal goals and values, what kind of growth and learning opportunities are available, and the overall work culture - those are all important pieces of the puzzle. The goal is to find a place where you can crush it professionally but also have a fulfilling life outside of work.
Avoiding Burnout and Maintaining Work-life Balance
- Given that you're almost completing a year in this fast-paced industry, what strategies do you recommend for avoiding burnout and maintaining a healthy work-life balance?
Honestly, since I started working full-time, I've been pretty lucky and haven't felt burnt out. But back in college, especially during my last semester, it was a different story. I was juggling an internship at a startup, and we had these intense deep-learning courses with tons of assignments. Plus, being the last semester, I wanted to make the most of my time with friends. It was a lot, and I felt burnt out. I wasn't enjoying my work, and I couldn't give it my all.
So, I decided to take a break for a bit. I realized that maintaining that balance is super important, or else you might lose that consistency, which I think is key.
- Maintaining work-life balance
Here is what has worked well for me - I go to the office pretty much every day, and I try to get all my work done while I'm there. I make a to-do list at the start of the day and try to knock out as much as possible. It's easy to get distracted in the office with friends wanting to grab coffee or play games, and I used to wonder where half my day went without getting much done.
But over time, I realized that wasn't a healthy approach. So now, if I'm in the office, I like to block off the first half of the day as my focus time when I can get stuff done. You can even put a calendar block for this focus time and mute notifications to help you stay on track.
Once you've finished something, you feel more productive and can reward yourself a bit. I also like to schedule meetings for the second half of the day because I tend to feel sleepy after lunch, and implementation tasks are harder for me then. So, it's all about figuring out what works for you, trying different routines, and finding that sweet spot.
Outside of work, I like to hit the gym or do some kind of physical activity because otherwise, I feel like I'm just wasting away in bed. On weekends, I like to meet up with friends and go out, so I don't feel stuck at home. I think that's about it!