Very few of us stay static. We evolve or grow in many ways, and engineers are no different. Our sector (tech) changes fast and has many pathways to what could be right. We have to move along or get left behind. The evolution for engineers feels fast. So how do we figure out where an engineer is on their career path? More specifically, as a company:
- How do we know who to hire?
- How do we make an assessment of what level an engineer is at when they come to work for us?
- How do we know when an engineer should get promoted to the next level?
- How do we make sure it is fair and consistent across 100+ engineers?
A lot of it comes down to our career ladders and hiring criteria.
Setting career expectations
Here on github you can see our career ladders for our engineers. This is how we know what level an engineer is when we recruit them and also how we know when we should promote someone. Currently our expectation for promotion is that someone is already acting at the level they are promoted into.
We made them public so others could benefit from our ideas, but also so others could teach us and share their wisdom. So if you have some suggestions, just create a pull request.
Respecting the diversity of engineering
Here at Enova we have a number of different career tracks representing our engineering needs. We have different expectations of each type of engineer in terms of Technical Skills:
Beyond Technical Skills
We look for good collaborators in our engineers — collaboration skills are the final decision point for us at Enova. You can see our complete career ladder for Core Engineer Skills. This includes our “Core” skills we expect from each level of engineer.
- Problem Solving/Decision Making
- Project Management
- Subject Matter Expertise
- Engineer Exchange
- People Management
At Enova we have multiple technology stacks and a diverse range of products. We encourage people to explore (e.g. Fellowship) and move around teams (either a dedicated team or a ranger team). As part of our evolution, we’re continuously working to make these rotations better.
Some people start out in one career track, but may want to see what it’s like in a different track. Some of our engineers have come in on one track and then moved to another. We welcome experimentation or permanent changes. We have a number of routes to support engineers changing teams or positions.
One experiment I tried with the Mobile teams was allowing both of my Leads (at different times) to step up and manage the teams for two weeks. After the team members gave feedback so the Lead could learn what to focus on and improve next time around.
Choosing your Destiny
Some engineers want to stay technical and some want to lead people. Too many companies force you to become a leader of people when your heart and mind want to stay technical.
Here at Enova we give you a choice to become:
- Tech Track — A Principal – specializes in a technology e.g. Data, UI, Test, etc
- People Track — Manager of Software Engineering
It does not matter which of the four engineer tracks you started with you can choose either the People or the Tech track.
Does it work?
So far the career ladders have being around for a year. This year we have promoted about 45% of our engineers. Our philosophy is promote when ready. Over time we have noticed things we expected from certain roles were not called out in our ladders (e.g., collaboration, we are working on it as we speak). These ladders should not be viewed as solely as a checklist, so there is some interpretation from the engineers’ respective leaders. As we spot the implicit things that we want from our engineers, we will make them explicit and add them to our career ladders. We will evolve just like our engineers.