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.

Onboarding Successfully To A New Semi-Chaotic Engineering Org

Mid-Level Software Engineer [SDE 2] at Amazon profile pic
Mid-Level Software Engineer [SDE 2] at Amazon

Context Of Company

This is a really well funded company (Bank) that underwent a large scale leadership change. The company's primary source of revenue was never it's tech capabilities, however with the new leadership change they're looking for a large scale revamp on how the existing systems work and are working on setting upto a FAANG equivalent engineering environment. This is vision is consistent across the leadership upto the CEO. This org currently consists of multiple Staff engineers from Twitter, Meta, Amzn and Google leading big initiatives.

Personal Context

I'll be soon taking up an offer in this company and will be joining this freshly created Org, where I've opportunity to be among the first 10-15 engineers to join with potential of the org to grow over 100+ engineers. There are lot of existing tech that have been already deemed unscalable due to previous decisions and have been a known business blockers, these tech require either re-write or a large refactor or a completely different viewpoint on tackling this problem. This will involve me working with Engineers who've built this system (Not part of this new Tech Org, rather the old existing infra), I've been already given a heads up from my potential manager that there can be potential hesitancy that the existing engineers may feel and wouldn't be too open to provide all information necessary as our systems will be replacing their soon (Have been reported that this has happened). There isn't a concept of internal wiki similar to Amazon or other Big Tech, hence lot of this is just domain knowledge etc. Fortunately the leadership is aware of this and is taking steps to answer this, and takes into consideration when scoping for projects and setting up right expectations.

The following are certain concerns that I've, and wanted to understand what is the best course of action I can take up to make my onboarding successful.

This is my Current plan, given i'll be among first engineers to join this team.

  1. Understand domain, reach out to multiple PMs and document all pain points, problems we are solving in long term & Short term.

  2. Go through code base of relevant packages and start adding their UMLs, HLD etc to best of my abilities to a document to move towards creating a Knowledge base.

  3. Socialize with engineers from the related org and try to gain their confidence, and potentially get few KT sessions (Not sure how i'll go about this as the team is situated in different city).

  4. Work with manager to setup boy-scout rule, such that everyone onboarding will incrementally add more to the existing knowledge base.

Follow Up Questions :

  • I still haven't taken up the offer yet and still have a week before I can respond. The increase in pay and the growth opportunity in the new company is significantly big, I can see myself reaching Sr.SDE in < 2 years and Staff in < 4 years there due to the problem space being so fresh and getting a really early head start. However, I'm slightly concerned if the lack of co-operation from other org and lack of documentation, and the fact that the entire org is being setup fully freshly could be a concern. What's the best course of action i could take to minimize this risk?
  • Second, one would view moving out from FAANG to a not well known company as a downgrade, would this still hold true if the problem space and opportunities in the new company is more complex?
Show more
162 Views
5 Comments

Finding a job without a specialty

Mid-Level Software Engineer at Ex-Google profile pic
Mid-Level Software Engineer at Ex-Google

A quick TL;DR of my career, I started off at Lockheed Martin doing Linux C++ and Java development with a bit of SRE work building out Jenkins+Docker CI/CD infrastructure for my team. I then went to do frontend web development on Google Cloud. However, after around eight months, I wasn't too confident on my trajectory within the team, so I moved over to a team outside of Cloud. In this role, I did Android development with some C++ backend work mixed in. Looking at my background, I've worn several hats and more or less had multiple different roles during my ~4 year career.

This is all because I care more about the end result of my work instead of the work itself. The language, tech stack, etc that I am using is not what gives me fulfillment. Unfortunately, it seems like I'm getting punished for this mindset, as every employer wants someone who has been using the same stack their whole career. It's not surprising given how recruiters and anyone in the hiring process is seeking to find any reason to say "No" to you. They have become adversaries that one has to take down, since passing Google's hiring bar now no longer carries weight. Each interview I fail to pass just appears to perpetuate a narrative that I was nothing more than a COVID overhire and deserved to be laid off.

Is there a gainful role out there for me, or am I going to just have to settle for some dead-end job that will just drag these career woes on?

Show more
306 Views
5 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