Profile picture

Mid-level Engineer Career Development Videos, Forum, and Q&A

How A Mid-level Engineer Can Grow Their Career

Mid-level engineers have very strong technical proficiency, able to execute on small to medium-sized projects with minimal hand-holding, leveling up from junior engineers.

Is it worth it to be downleveled to get into FAANG?

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

Context

I did a few interviews in the last months for some software engineer, and in the end it came down to 2 companies: Google (started loop as L4 but got downleveled to L3) & DoorDash (L4). I'm L3 at another tech company (smaller than these), already scheduled for promotion for L4 as I've been performing accordingly for some time. Per my understanding, levels (L3/L4/L5 or E3/E4/E5) are similar between these companies.

I have around ~4 YoE now and graduated 2 years ago, though only 1.5 YoE on larger projects at US companies (i.e. roles that I suppose would be closer to a FAANG environment), as I worked on smaller local products and consultancies before. This is my first time actually preparing for this format of interviews, so I'm kind of glad that I at least passed L3 for Google.

Offers

DoorDash already extended an offer and Google said that HC approved for L3, but still have to go through team matching. DD's offer has significantly more TC (like >30%).

Doubts

I really wanted to join Google at first since I have tons of friends and family working there, but at L3, seems that I would be taking a step back just for the sake of being able to say that I worked at Google, so I'm actually biased towards going to DoorDash, here's my rationale:

  • Significantly more TC
  • Remote-friendlier
  • Already worked (and enjoyed) with a lot of people that I would be working with at DoorDash (also likely why they accepted me as L4 instead of L3, because I had some 'advocates' there). While at Google I still have to go through team matching and I don't have a clue on what I'd be working with.
  • Would start as L4, with a higher performance bar and expectations, and aiming for 1~2 years later would be looking at L5, instead of still looking at L4 at Google.
  • Even if I got promoted quickly at Google, would likely be at the lower band of L4 salary, so not only 1~2 years of lower TC and possibly smaller scope, but likely even more.
  • This is my first time preparing for this type of interviews, so even if I want to join Google a year or two down the line, I would have not only more experience under my belt for both behavioral and technical interviews, but also more time and resources to prepare.

What flaws can you find in my train of thought? I find this very confusing to take a decision, seems that it is a common situation as I searched for it a lot and everyone seems to call FAANG in general as "kings of down-leveling".

Show more
Posted 8 months ago
823 Views
8 Comments

Learn About Mid-level Engineer

A mid-level software engineer has all of the foundational technical skills, industry knowledge, and practical experience that allows them to contribute to software projects. They can collaborate with cross-functional teams, handle complex tasks, and demonstrate a deep understanding of the technologies they work with.
A mid-level software engineer can demonstrate a certain level of technical proficiency and independence. They should be able to handle most bugs without needing constant guidance. They should also be able to independently implement features with medium complexity. It is the level where one becomes less reactive and more proactive. Proactivity means anticipating where bugs may show up as well as suggesting improvements in the codebase. They should have a high standard of code quality and high velocity of code velocity.
The journey from a junior to a mid-level engineer is a significant step in one’s career. It’s important to focus on developing the skills necessary for the next level. This shift involves being able to write code to being able to write better code faster. One should be able to understand systems, plan out projects, meet deadlines, and occasionally function as a lead to make the transition. They should also be improving their communication skills during this period and seek feedback on their work from more experienced software engineers.
The transition from a mid-level engineer to a senior engineer involves a deeper mastery of technical skills, leadership capabilities, and a complete understanding of the software development lifecycle. Senior engineers are responsible for making high-level architectural decisions, guide the technical direction of a project, and mentor junior and mid-level team members. Collaborate with your manager to develop a formal growth plan. Take the initiative to write the document yourself and discuss it with your manager. One should be able to recognize gaps that a mid-level engineer has so they can improve them: writing more code rather than reviewing code, not being available to help out during big incidents, or only dealing with one’s own code. By focusing on these issues, you will be able to exert your influence more broadly across your team and company. You should also consider mentoring some of the more junior members on your team to help them grow and develop their skills.
The journey from a junior engineer to a mid-level engineer or a mid-level engineer to a senior engineer involves a continuous process of learning and refining one’s technical, communication, and leadership abilities. One should strive to have more and more impact and influence across their company to have a successful career progression.
Show more