At my previous company, I managed managers responsible for a handful of junior engineers. I wanted to help my EMs level these juniors up, first to a mid-level and then to a senior position. The whole journey got me thinking about how we could best support juniors and enable them to grow and thrive through their engineering careers. One of the things I felt was missing and thus impeding their growth was setting clear expectations from the start, committing to the growth of the junior engineer, and getting a commitment from the junior engineer to work toward a mid-level engineer.
Setting clear, individualized expectations
When I found myself, for the first time, responsible for helping juniors level up, I underestimated the importance of setting clear expectations. The expectations were meant to be two-way: we would be responsible for providing juniors with support and opportunities, and they would be responsible for learning and making the most from the opportunities provided.
Also, every junior is different -- they may have different educational or cultural backgrounds, different types of experiences, etc. Therefore, our support should be tailormade to include the experience of each junior engineer we hired. Too often we pursued a “one size fits all” approach that was not attentive enough to where they were coming from. We should have come up with a more individualized framework that should help them fill the gaps in their education or experience more efficiently. Some of the juniors might have a CS degree, others would be boot camp grads, while a number of them would arrive from tech-unrelated fields.
Self-sufficiency as the overall goal
The transition from a junior to a mid-level engineer is, in my opinion, mainly about gaining experience, skill, and confidence to become self-sufficient. A mid-level engineer should be able to complete a smaller project single-handedly. I would expect them to be able to own a project and take full responsibility for its outcome. More concretely, they should be able to break down a problem, consider different alternatives, come up with a solution, and explain why that solution would work.
Making expectations time-bounded
The support we as managers -- and the organization, more broadly -- provides should be time-bound. Expectations should be coupled with a time frame that would establish how much time is acceptable for them to close the gaps and acquire the skills and competencies required by mid-level engineers.
Also, expectations should be clear on the consequences if juniors are not able to accomplish what is expected from them in a designated time frame. For example, if they would be unable to show growth within six months or a year, we might have to part ways with them.
The rationale behind this unfavorable solution should be the expectation set from the day one. The time we spend with them to help them grow is an educational investment that would make them self-sustainable and enable them to contribute to the business. Our time is a scarce resource, and we must use it wisely and fairly. It is unfair to the engineering manager and team to continue committing time to an engineer who isn’t committed to their growth.
Making sure juniors are on the right track
Regular checkups are essential to validate if junior engineers are on the right track -- or if not, to help them course-correct. Our combined efforts are driven by the goal of them learning to become self-sufficient.
A few years ago, I had a junior who was assigned a task and they went off and worked on it on their own for a week. After that week, they asked me to review their work. The code itself was decent, but because we had not spoken in advance, they did not have the full context for how the work they were doing played into a bigger picture. As well, there was business logic and design patterns that already solved for the acceptance criteria of their task. I had but to reject a week of their laborious effort. Frankly, I should have checked in with him during that week to see how he was doing, but the situation proved to be a great opportunity for us to add an expectation for him to have a design session with a senior engineer in advance of any of his work.
From then on, they would be left on their own to think for a while about how they would solve the problem and then present their proposal to the senior engineer, who would give feedback, help them iterate to a sound plan for implementation, and sign off before any work would begin. The senior engineer would frequently check them to ensure they are on the right track. This was a great opportunity for them to contextually think through a problem and work with someone more senior to help them make sure they were asking the right questions and had the right considerations to ensure the success of their work.
I wanted them to understand that I was doing this to prevent them from going the wrong path and becoming frustrated. That is also a collective frustration because one’s poor performance would negatively impact the whole team. It was important to me to convey the empathy that drove me to introduce this process. It was not the lack of trust or being doubtful about their capabilities; it came from the profound understanding of where they were coming from and how I could help. With regular checkups in place, the junior engineer accelerated rapidly; they became a mid-level engineer within six to eight months, and they tremendously appreciated the support they received.
- Setting clear expectations upfront with junior engineers is critical. When I hire a junior, it is essential for me to set expectations with them on their growth and how we could help them level up. Our responsibility is to pave that path for them. We should compare job descriptions for a junior and mid-level engineer, identify skill sets and gaps, and develop a plan for how to close that gap.
- As a manager, you have to commit to their success. You have to check often with them to make sure they are on the right track. You have to make sure that the path is the right path and that they are making progress on that path.
- Junior engineers’ output is significantly lower, and the team needs to spend a lot of time with them to help them grow. It directly translates into a lower output for the team. Taking time from my team and having them help junior people is a big investment. Significant investment of time for multiple-years growth of the junior engineer could be detrimental to the health of the team.