September 17, 2018
Junior, mid, or senior: what level am I?
Do you know what your seniority level is and how to get to the next level?
Introduction
A subject that is widely discussed, and even somewhat controversial, within a developer's career is seniority. Basically about junior, mid, or senior.
There are many criteria that determine professional experience and skills, and each company may have its own definition. This ends up causing confusion and a certain distress when answering "am I junior, mid, or senior after all?".
How I define seniority
Seniority relates to several items. The first is knowledge in your field: someone with a few months of experience in PHP doesn't have more knowledge than someone with years of experience in the same language, so their seniority should be lower.
Another item of utmost importance is maturity. It has to do with how you see the problems of your day-to-day and, consequently, the more problems you've been through, the higher your degree of maturity. If you're a developer who doesn't know how to deal with problems, can't find the best way to solve them, you probably won't be senior and, who knows, maybe not mid-level either.
The characteristics I consider primary are:
-
Junior: Hasn't been through many critical problems, has some difficulty dealing with the development and delivery situations that come up day to day. Also lacks maturity when it comes to problem solving, precisely because they don't have enough experience. Quite emotional, lacking patience or not keeping calm under pressure. Doesn't sufficiently understand the technologies they're expected to work with and study. All of these points are normal at the start of a career.
-
Mid-level: Already has good command of the technologies, understanding how they work and solving whatever problems come up. Usually lacks focus, studying many technologies, and doesn't know exactly which technology to study to build a more solid career. Also hasn't been through critical problems, such as the recent GitLab incident ([https://br-linux.org/2017/01/gitlab-sai-do-ar-admin-da-rm-rvf-e-deleta-o-banco-de-dados.html]) in which a developer deleted the production database. Usually doesn't feel confident taking sole control of a large application (for example, one with 2 million users per month) and needs support.
- Senior: First, already understands which technologies they need to study and stays focused, knowing which technologies will make a difference in their career and studying only what will add to it. Another very important characteristic is the maturity and calm to solve problems — for example, when deleting a production database, looking for the latest backup. Also finds solutions easily, or knows how to look for a solution to a problem and has in mind what they need to study to understand how to solve it.
With the characteristics above, you can already determine your seniority. Of course, depending on the company or field, these characteristics may vary.
What's best for my career
The most important thing when it comes to seniority is to think in terms of your field, not technology. For example, it's much more important that you know backend than PHP, or object-oriented concepts. But what does that change for my career and my studies?
That means that instead of studying PHP — how to create classes and methods or define constants — you should study the concepts of classes and methods, object orientation, design patterns, etc. Basically you should know why things are created that way within your field, not simply memorize the steps to create them and the code syntax to build them.
When solving problems, it's always important to try to understand what the cause was and why the applied solution worked and was the best. Keeping a sort of notebook of these problems and solutions is also a common practice.
How to grow in my career as a developer
I'll list below some tips on how to grow in your career and reach the next seniority level more quickly. Of course, everyone at their own pace.
The first tip is don't run from problems: take responsibility, keep calm, and don't pass the problem on to someone else, even if that other person caused it. It's important to analyze the degree of consequence and urgency of the problem and solve it calmly. This will give you more and more maturity for future problems.
Another tip: no problem is so big that it can't get worse in the future. The problems you're going through now are relatively small compared to what you could face working as a senior or with large applications. Take advantage of these problems to learn a lot.
The third tip is keep your focus: don't try to learn every new framework that appears. Understand what will add to your career and follow a line of reasoning. Take your time, choose each of the technologies you're going to study, and deepen your knowledge of them.
The last and perhaps most important is throw your hat over the wall. Imagine there's a wall in front of you and it's the obstacle between your current position and the next level. You don't know what's on the other side — it could be two angry dogs, a huge hole, or thorns. Regardless of the problems on the other side of the wall, you're obliged to go get your hat. So, one way or another, you'll be forced to get past the obstacles to grab the hat and reach the desired level. That means that if you feel ready and comfortable moving up a level, you should go for it. Look for a promotion at your current job or a position at the level you want; that way you'll be on the other side of the wall, and with effort and focus you'll stabilize, already thinking about the next level.