profile

Hello, I'm Wojciech đź‘‹

Engineering Ladder


There’s this half-joke about the evolution of a developer:

1. First, you know nothing and you know that.

2. Then, you’ve learnt enough to start thinking that you know everything.

3. Then you learn some more and realise that what you know is just a drop in the ocean.

4. Finally, you just hate computers altogether.

I think it pretty accurately describes the evolution from a Junior (step 1) to Senior (step 4) developer, but it can’t really be used in engineering organisations as a guideline for career progression for Individual Contributors.

Instead, after using more complicated (and difficult to follow) guidelines over the years, nowadays I’ve settled on a simple description:

* Entry level - they’re here to learn

* Engineer - you give them a task to implement and they do it well

* Senior engineer - you give them a project to implement (and a team to lead) and they do it well

* Staff engineer - you give them a problem to solve and they solve it well (analyse and come up with a solution that they’d either implement themselves or specify as a project and delegate to a team lead by a senior engineer)

I think that this ladder is simple enough to be easy to communicate and nuanced enough to be useful. Of course, it has a clear drawback that you don’t know what a Principal Engineer does. That’s because I don’t know that neither.

​

Have a good one,

Wojciech

​

Hello, I'm Wojciech đź‘‹

Subscribe to read my programming experiences, ideas, mistakes and tips I wish I'd known myself earlier. Learn how to enable high-performing teams, make an impact, grow as a software engineer and level up your career.

Share this page