Mid-level granularity

I follow several technical people on Twitter from all steps of the technical ladder, from juniors all the way to managers, PM, TPMs, Tech Leads, etc. I like to do this because it gives me a wider frame of reference to look at myself and see exactly where I stand in my own progression. It’s critical to me that I have a wider view of different levels in the industry besides only my own, otherwise, I can become biased in my own judgment.

I’m a mid-level developer myself and, it’s also no secret that, inside the same role there are differences in both skills and expectations depending whether you’re a mid-level developer promoted yesterday or if you’re aiming to become a senior. Is this something that can be quantified? Can we demystify how the “unmarked steps” in the career ladder can be climbed? I’ll give it my best shot.

One of the most prolific and active people I follow is @kefimochi. She’s, like myself, a mid-level developer and she recently tweeted the following:

2021-11-21.jpg

Since I’ve been at mid-level for well over a year now, I think I can write a little about what I’ve been doing to reach the higher steps and my own views on it.

Different companies, different meaning

Every company is different. This means that the business, the size of (and criticality) the development team for the success of the company will all affect what the internal career ladders will look like. So, this is the real first step in the process, in my opinion: figure out the lay of the land and understand exactly where you stand inside the development team and where the development team is, regarding the rest of the organization: is it critical for the business to keep growing or is it just “one more team”? This is important from the perspective of the stakeholders which can ultimately decide whether you’re eligible for climbing the next step or not, even if indirectly. Once you’ve got this covered, you can start taking next steps.

Establishing goals and/or a clear growth path

This might sound quirky, but, I think that by doing it, you’ll immediately start to differentiate yourself from the rest: is there an established framework or internal career ladder that you, as an IC, can refer to when you’re planning on growing in your career? Is there a formal process in place? If the answer to any of these questions is no, I’d wager that you have a perfect opportunity here to start that growth: propose that you spearhead the creation of such a framework, together with your manager. Now, obviously this doesn’t need to be super elaborate, but, even some simple guidelines for defining role and level expectations can go a long way. I personally love looking at the Dropbox career framework to inspire myself on how to present my case and spot potential improvements in my own processes and maybe even your own company’s framework. I suggest you have a look! Really amazing stuff there!

Understand your gaps from where you are versus where you want to be

Once you have a goal in mind, the next thing to do is to evaluate your current self against that goal and make sure you are completely aligned and aware of your gaps so that you can “move with intent” to close those gaps. This is easier to do between the marked steps in the ladder than it is to do between being a low tier mid level and a high tier mid level, but, it should be possible to do at any level if the goals and career paths discussed above are well-established. Let’s look at an example: suppose that a criteria defining what a high level mid developer may look like is the following: “can work autonomously on large features and own them end-to-end”. Now, it’s crucial to look at this critically and think for yourself if you are doing it, but that alone isn’t enough. This is where things can get really tricky because knowing it for yourself is one thing, but, to present a solid case of it to your manager or tech lead, can be very different, especially because there is a big difference between what you think your manager knows or how he sees your work and the way you see your work yourself. This is an absolutely critical distinction to bear in mind. “What does it mean? Of course I can work autonomously, and, what, did they forget that super awesome dashboard where I had to spend 2 sprints syncing with QA and the front-end guys to really see it done to completion? I’m definitely doing this and more”. Our instincts are often betraying us here, especially because confirmation bias is real. We always believe we do a good job, and, usually, when confronted with some sort of reachable goal like the one stated above, we immediately tend to jump to try to find things we have done that confirm that we are effectively operating at such a level. This makes understanding the gaps between where we are and where we want to be extremely challenging, so, discussing these sorts of things with your manager but definitely with your peers is the best way to get a more accurate judgement of where exactly you stand. This means some of the feedback you get can sting a little: “Hey, yeah, look Bruno, you’re doing great work and that last feature we shipped was great, but, don’t you agree that you could have taken a bit more ownership when we had that production bug? When you prepare some tickets for the team, usually the descriptions are a bit convuluted, etc.”. Right? Stuff like this is what you must seek in order to truly understand the real gaps in your work preventing you from ramping up. Usually, self-assessment is enough, but, I vouch that for understanding real gaps, external confirmation is the only way to get rid of your own confirmation bias. Get this feedback!

Devise a real plan to start closing the gaps

Now that the gaps are out there and you know exactly what it takes to reach the higher tier of the mid-level, you are in a much better position than before: now you are ready to create a plan, usually, together with your manager(s) and/or tech lead, that gives you laser focus on what you need to do to reach next level. You must be diligent to try and balance the goals created as part of this personal plan with your team goals and the wider company goals. There will be some alignment in priorities, but, not always, so, there is a balance to be struck between working on your goals and ensuring that working on them doesn’t come at the expense of the bigger picture. This can sometimes be a hard balance to struck, but, can be mitigated by you identifying your gaps and by “proxying” them to match the larger goals. For instance, if your goal will be: “autonomously lead a feature from conception to implementation”, don’t focus on coming up with a completely new feature, but, instead, offer to “champion” something that you can “sneak peek” off the roadmap for the next quarter. This will create an alignment between your personal ambitions and the company ambitions resulting in a win-win scenario. Then, ensure that you have regular one-on-one sessions with your manager to align and keep track on where you are in your progress to reach these goals. Transparency and frequent check-ins are the key here.

Finally, get an overview of what it means to be at a high level of the mid-tier, based on your context and ambitions

By this point, it should be clear for you exactly where you are and, more importantly, what to do, so you can be where you want to be. If it helps, write down some of these actions you need to take as bullet points, keep them in your sight, and reevaluate them from time to time. Start expanding on each high level bullet point with some concrete actions you can take today, that can get you closer to yuor goal tomorrow, and, balance your work to ensure intent to work towards those actions and working for the team, and, naturally, the transition will occur and you will soon realize that you are now in the place you were wondering how to reach. It’s a journey, and, as the famous fantasy writer Brandon Sanderson wrote, remember: “Journey before destination”. Focus on the journey, and soon you’ll be exactly where you are meant to be.

Conclusion - and some personal remarks on things to do to try and level up within the medior role

The main takeway should be: a mid-level who works with intent and focus to reach the next level, will naturally start showcasing actions that match such a level. It’s about commitment to do the hard things and wanting to do them, that drives the growth. Again, how this looks depends on the company and the career ladder, but, here is what I have done to grow a lot within the mid-level role:

  • Own one feature in an end-to-end fashion: the trick is it doesn’t need to be something too big or complex, but, you need to own it. You need to devise some tickets (with support from more experienced colleagues, of course), you need to be able to see it through and implement it, you need to see it landing in production well;

  • Aim to work on things with high business value: this follows the advice from the Dropbox framework above. The higher impact you have, the better you are to be seen as “being at the next level”. Again, the trick here is not to focus on complexity, but, on impact. Sometimes, seemingly simple features deliver a huge impact. Search for these nuggets;

  • Pivoting: as the name goes. If you dabble too much on backend code, try and delve a bit onto the operations side of things. Do you notice some inneficiencies there that you can help mitigating? Great opportunity!! If you are more on the operations side, can you try to improve things from the perspective of the developers? Maybe create some self-serving platform to automate testing, or improve their deployment process, etc. Pivoting increases your chances to do meaningful work;

  • Work on something nobody is doing: Pipelines are flaky? You’re on it! Someone needs to help onboarding the new colleague? raises hand. Oh, we don’t have any internal documentation? Let me focus on that. When you work on something nobody is working on, you have a great opportunity to create the highest possible impact;

Written on November 21, 2021