The Four Stages of Competence, or, Stages of a Career Path
The Four Stages of Competence is a model in psychology to define how we learn things. Although meant to demonstrate how people learn a specific skill in the timeframe of weeks or months, I believe the model can be extended to many things including one’s career path. The following story reflects my opinion on the four main levels of an SDE at amazon (which many companies also follow) and how it aligns with the four stages of competence.
It’s July. You’ve just graduated college a couple months ago with a degree in CS and did reasonably well. Well enough to land you a developer gig at a well-paying tech company, and the sudden influx of cash has got you feeling almost like an adult now.
Orientation goes well and you’ve picked one of the core teams in your company to start your career path in. After a few months of ramping up on a ton of new code, exploring ~the city~, and technical conversations with coworkers (who might be your friends by now, but too early to define the relationship) you probably are in one of two buckets. The arrogant new hire or the imposter who’s just trying to not be caught. If you’re in the former, you’re probably walking into work like:
Despite this, your team acknowledges your newness and cuts you some slack after you merged in some code that caused the end user’s scrolling experience to be 25% less smooth (the horror!). But that’s alright, the company sees you right now as an investment that will hopefully bloom later on.
A live look at mentoring the new grad
A little under a year in and you’ve demonstrated to your team that you understand the codebase and are ready to take on your first project. Your manager agrees and sets you up in a design review with a principal engineer. You’ve barely seen a principal thus far at the company so you take extra precaution and take 2 weeks to write the perfect design doc.
You’ve straightened all your sequence diagram arrows, triple-checked your grammar, and even used the latest draw.io icons. However, in the 60 min you had to sell your doc, the principal engineer reads it, litters it with comments, and leaves before you can make an argument. It was your first experience in a design review and it wasn’t pretty.
What you lost in confidence, you gained in humility. Do I really not know everything?
You got some valuable feedback, and in the following year you used that feedback to build out and perfect your project. To your delight, it launched successfully and even saved your company a million or two in the process. A feat that raised some eyebrows in the org and got you promoted to the next level.
After some retrospection you realize this isn’t the little leagues. Your main project could have used some caching on the frontend and perhaps emitted more user metrics like that principal said in the design review - but you just didn’t have the time or the know-how to do so.
You now realize something, a critical next step in your career path. You know how much you don’t know.
This is a daunting realization, and whichever arrogant folks are left have now been converted to the imposter crowd. However, there is a newfound level of curiosity in the unknown. You know where point B is and you may not know exactly how to get there, but you know the general direction.
You first start by learning and doing as much as possible. At this stage it makes sense. Your level compromises the majority of the developers in your company and is seen as the ‘workhorses’ among the crowd. You learn the latest tech, implement things fast, give guidance to the lower level developers and even conduct some interviews.
There’s also an interesting change happening as you start being comfortable in your role - you start realizing you’re not an imposter anymore. You deserve to be here, and your manager recognizes the resulting confidence. They put you on a project that involves a lot more than one design review. In fact, you work closely with your Sr. Dev on this project but you take the reins on designing the architecture, managing the tasks, and delegating work to the appropriate devs.
The project is immense, but your past few years of building and learning have led you to this moment and you eventually are able to raise the eyebrows of your org’s leadership just a little bit higher. You finally feel fully competent in your role after this project and a promotion was just the cherry on top.
Your past project has made you a Sr. Dev on the team and you’re pretty comfortable with the title. You’re now a leader for a single team and junior engineers look up to you for guidance and reviews.
It takes you a bit to understand the context of what they are asking for, but as you start understanding you realize what the path forward should be and give out great advice every time. There might be some missteps here and there, and it might lead to a new hire spending a couple weeks on something totally irrelevant, but that’s just the type of risk your new title comes with. You need to put forward a lot of mental energy on your tasks in order to effectively utilize your experience and give proper guidance.
The company needs more people like you because of your ability to synthesize high level team goals, but also get your hands dirty with low-level decisions that may affect other developers on a day-to-day basis. In the company’s eyes you are a leader, and it may seem like a daunting task at first, you have enough experience and knowledge to back up your opinions and actions.
You see your current role as a permanent spot if you wanted it to be this way. However, you want that next promotion but there’s no clear way to get to the next level from here.
You continue doing your job and you may even switch teams and learn more domains. Over the course of the next 4 or 5 years you continue being your respective team's leader and have guided multiple teams across many domains to successful product launches. You’ve given hundreds of design reviews over the years and conducted many interviews as well - this time for candidates who have decades of experience.
You build up a strong intuition from repetitive design reviews and work on codebases in many areas of your company. Because of this, you’re well known in your org and its leaders have come to respect your decisions and judgement. After speaking with your manager, you both agree you’re ready for the next level, and lo and behold, it goes through.
You’re a principal now and your time is immensely valuable. You’ve done your job requirements so much over the past decade that a lot of your current tasks come naturally to you.
Despite your busy schedule, you agree to a 60-minute design review for a small project being worked on by a new hire. You read it for 10 minutes and proceed to spend the next 30 minutes writing a multitude of comments before (respectfully) leaving early. You may have hurt the new hire’s feelings, but you need to squeeze in lunchtime before your important 2PM meeting with your VP.
You’ve worked with your VP for a while now, and they respect your skills enough to seek your input for the large-scale product initiatives they are planning to roll out in the next few years. You attend the 2PM meeting and some time in your gut feelings urge you tell your VP that the new product will need significant requirement changes to work with existing product architectures. You request some time to think over things, and the next day send an email to your VP explaining why things won’t work out. They agree and start planning other things.
You’re not quite sure what gave you the gut feeling in the first place, but after consciously thinking about it for some time you realize it was the right choice. Intuition becomes one of your greatest assets.
Where do you fit?
I know this was a highly dramatized and sped up story, but if there’s one thing I would like people to take away from this story is what the 4 stages are, and to have a good level of self-awareness for understanding where you fit into the spectrum.
Every stage is achievable, but the most important step to getting to the next level is understanding where you are in the journey.
p.s. Take the Sr Dev and Principal engineer stories with a grain of salt, I’m still in the conscious incompetence stage :)
p.s.s. I was inspired to make this after watching a video from one of my favorite YouTubers, Sideways, and I encourage you to watch it as well!