The path to seniority

Disclaimer: In the vast majority of this post I’m targeting seniority in software engineering since my experiences are drawn from that profession. I would assume that most of the things mentioned below would apply to any creative profession or, simply put, to anyone who is building things. 

As soon as someone starts being a certain type of professional, probably fresh out of university, he/she is given the title of a junior. A junior is someone that still has no relative working experience but he/she knows the science and accumulated knowledge taught in a university. In the following years, this professional will rise to be a senior, principal, architect, etc.

In my humble opinion, there are no levels in seniority, as soon as you start thinking like a senior you then go on to expand your experiences and knowledge but most importantly broaden your scope. Principals and architects are seniors with many years at that senior level. The industry needs those titles for a good reason but for the purpose of this post I will only cover the transition to “Senior”. After all, 95% of being a senior is about managing yourself and the things you know, as soon as someone reaches that level they are automatically capable of advancing indefinitely.

If I could give you only one piece of advice for becoming a senior that would be “Curiosity”. Genuine, humble curiosity. Becoming a senior is all about managing your curiosity and managing your own shortcomings. 

Below I describe four simple steps to transition to a senior. These steps may take 5 years or 15 years but certainly not one.

Step 1 – Know your tools

Every builder has a set of tools that are required for the building process. Some builders will use a few tools, others will use a lot. Junior builders are introduced to their trade through the usage of tools.

For the better part of a junior’s career, the usage of tools will play a very significant role. I can still remember my early days where I would spend countless hours configuring my code editor, learning to quick-type, and setting up my environment. I even compiled my own kernel and packages because, well, it was nice knowing that I could do it.

In my recent endeavors in woodworking, I realized that every novice will start from this stage of tool fixation, it’s not a software engineering world thing. I’ve devoured every woodworking video out there and almost all of them describe tools or how to fix your own tools, how to enhance your workbench, or improve your dust collection.

As a junior, you need to master your tools so as to get them out of your way. You will eventually come back to some tools later as a senior but only again to get them out of your way, or simply have fun.

Step 2 – Start building

This may look like a captain obvious statement so it needs some unpacking. You need to start building like there is no tomorrow, all the time and without any hesitation. Your creations will look ugly and may go under heavy scrutiny from seniors colleagues or friends but you shouldn’t worry because you’re learning in the best possible way. 

Every time you finish a project you will have a better understanding of the domain which will not only help you with your next project but also feed your curiosity that will be valuable for step 3.

Your purpose is to clear out the fog that surrounds the world of production and this can only be done by producing output yourself. 

Put your head down, pay zero attention to your title, and just build like crazy.

Step 3: Know your craft

After spending some time on step 2 you’ll start understanding your domain as a collection of systems that interacts with other collections of systems. You already are comfortable with building something from the ground up but not everything makes sense all the time. This is where you need to escape from being an expert beginner and start being ridiculously curious about everything in your technical vicinity. How does a database index work, how do operating systems handle processes, how the browser paints content are a few examples taken from the software world.

You should also start paying attention to all the other systems that interact with yours. As you would expect a cockpit designer to know a thing or two about human performance and limitations, you should know a thing or two about human interaction if you’re a frontend engineer for example. 

Don’t accept to not know how something works, ask questions, and be curious. 

Step 4: Finding purpose

The time has come to deal with yourself. By now you should be pretty confident with your skills and you’ve learned how to learn. You should also no longer feel the need to prove anything to anyone which will help with the final stage of the transition to a senior: finding purpose. 

Building is about providing a function to someone who needs it and this never concerns the materials used for the build. No-one constructs a chair because some blocks of wood were unhappy but for a human to sit in. 

In my experience in the software world, I’ve seen many people unable to escape from the connection they have with their tools and themselves. They keep fixating on new technologies and developments but always related to how good experts they are or can be, not what they can build with those. They will bend the world to satisfy their endeavors, not the other way around. 

How can you go past that stage? 

Start talking in a simple language avoiding jargon. It shows that you care about the outcome more than showing everyone how much knowledge you possess.

Start talking results instead of technology. You can still use the cool stuff if you have to.

Be iterative, the world doesn’t want you to rebuild it from scratch every time something doesn’t work. 

Worry about the quality of the service of the system you build provides more than how the system was built. 

Constantly expand your scope of knowledge. You can design and build better if you understand what purpose your project will fulfill. 

Avoid complexity. A simple design is a sign of seniority.

Work with yourself. You don’t have to be a manager to have soft skills, good communication, self-management, and empathy are powerful tools.

Be a listener more than a talker. It shows that you’re trying to understand the problem. 

Stop worrying about your title and start worrying about how much value you add to your team, colleagues, and the world.

when you don’t create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create.
― Why The Lucky Stiff

How to be great at anything

I have come to believe over the years, through my personal experience and by observing others, that there is a small piece of advice – only 4 words – that if taken seriously will make you great at anything. It’s battle tested and it works 100% of the time. I’m not asking any money for it but if I did I would offer a lifetime money back warranty.

If, like in games, had one jar of hyperbole and I could only use it once in my life time then that would be the case. It’s the single most important advice you’ll ever hear, apply it and you’ll get instant small life improvements and guaranteed lifelong greatness in whatever you want to be great at. So here it is, 4 words:

Lean Into The Pain

First things first, I’m not talking about physical pain or any other unbearable pain. Cutting your finger off will not make you great at anything, maybe only on finger cutting and that isn’t that respected nowadays. When I say pain I’m mostly referring to discomfort but that wouldn’t make much of a title and I’m still left with half a jar so I need to use somewhere.

Leaning intο the pain means identifying all the issues that keep you from having a great relationship , a great job, a happy life, good health or any other thing that troubles you and working against them. You might think that this is what we all actually do, and yes we work against issues all the time, but only within our comfort zone carefully trying to avoid any pain. I know because I do it all the time:

For the better part of my life I was obese, weighing 30kg more than I should. I knew that I had to loose some weight but breaking up my relationship with food was painful. I did lean into the pain, started eating less calories than I needed, begun regular exercise and lost 26kg. I was also afraid of flying so I started flying lessons that eventually led to a pilot license. This very post is painful, I don’t have good writing skills and I struggle to find the words, let alone the fear of criticism.

I’m not trying to portrait me as a winner, I got some of my weight back, extreme weather conditions still terrify me when airborne and you’re already in pain from my writing skills. I’m only saying that what kept me going was repeating in my head “the pain you’re feeling right now means you’re doing the right thing, keep up”.

I also don’t want to patronize or question anyone’s happiness. If you have figured out everything perfectly in your life and go to bed with no troubled thoughts then bravo! It would be great if you could share how you got there.

Start leaning today.

If you have a friend that angered you don’t wait for it to sooth out, it never does, go on and tell him / her, have a heated argument, sort it out.

If you love someone don’t let it drift away, reach out, speak up about what’s troubling you, do the tough, painful, discussions.

If you want to stand up in a meeting and say something do so. If you fear you’ll get mocked then lean into it, say something stupid, learn from it and say something smart the next time.

If someone criticized you for your behavior look into it. Go see a therapist, talk to friends, frame it and improve it.

If you feel small in your current job role then develop yourself. Read books, seek coaches, mentors and take responsibilities.

It doesn’t have to be all at once, you can select a few or just one. Make sure your life is filled with some kind of growing pain that you’ve selected to lean into it.

Related material: