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