Staff+: When Does Coding Become So Hard?

Danilo P. De Luca
4 min readAug 22, 2023

One of the most frequent questions that senior developers who want to grow and continue on the Technical Career path usually ask is related to understanding how they can improve their coding and technical knowledge, but there is a clue in that kind of thought.

This article will help you understand why focusing only on technical knowledge shouldn't be your first or only step toward achieving a Staff+ position by doing it in a way that we — software developers — love: using algorithms.

Before we start, let’s go back to the beginning of your career.

Let’s start from the beginning when you started to learn your first programming language and the concepts behind it. Do you remember how it was? The first “hello world”?

Hello World!

How was the process of learning it? Probably in the first contact with that language, you struggled to understand all the concepts behind it, and I bet that you probably started by creating a Hello World, a Calculator, or a To-Do List application, didn’t you?

Now think about what would be the best way to represent this situation. Well, as proposed before, let’s use an algorithm representation! Nothing is better than using the Big O notation for that, so how would it be?

Big O Notation based on the process of Learning a new Programming Language x Problem Solving.

In the beginning, there was only a point of curiosity, which you probably couldn't resolve any problem with, then you started learning a programming language, and nothing is better than doing a “Hello World” program (Do you remember your first “Hello World”? Share in the comments how was that.). At this point, the algorithm went from an O(1) to an O(n) notation, since you can resolve a problem now — send messages using the programming language “Hello World”.

After a while, you feel prepared to start doing more complex programs, and one of the easiest things to do would be to do a Calculator or a To-Do list application, representing the continuous growth of your Knowledge compared to the problems that you can solve using that, and in that moment you probably would feel comfortable in finding a job as an intern or Junior Software Developer.

With that, what would be the dream of a Junior Developer? Gain more money? Do an impactful job? Maybe all these questions could be answered by becoming a Senior Developer as a dream, what about it? (Maybe today you are already in this position?)

When Reaching a Senior Developer Role

You probably spend some years reaching a senior developer career; some people take 5, 8, 10, or 15 years for that, and after achieving it some new questions can come to your mind, and looking at the possibilities if you want to keep growing in a technical path you will face the Staff+ Engineer path, which is the other side of the coin compared to Manager’s path. Since the Staff+ can be seen as one of the possible next steps for a Senior Developer, a common question that a lot of people at that point have is “How much of their coding skills should be improved?”

To answer that, let’s go back to the initial situation of Programming Language vs. Problem-Solving, How would it seem when analyzing a Senior Developer's knowledge?

Big O Notation based on a Senior Developer programming language knowledge.

The fact is, as a senior developer, in most cases, your programming skills will be compared to an O(n²) capability of solving problems. Think about an Algorithm with this same Big O Notation, Isn't it really complex? And probably you would not use it for any kind of problem, don’t you?

Thinking about it, what would be the day-to-day tasks that you will need to improve your programming language knowledge? Or a day-to-day work that will need all your knowledge for that? There will be a few companies that will need developers with this amount of knowledge, but it probably will be just a few amounts of developers and a few companies with this need.

At this point, you may be thinking that programming language skills aren’t the only ones needed to become a Senior Developer, and that’s true! But have you ever thought that you can apply this same algorithm to any other kind of skill?

Applying the Same Algorithm Concept to Other Skills

In fact, this same Algorithm can be applied to any other skill needed for your career: architecture, leadership, collaboration, communication, mentorship… Going from a curiosity or to an unknown skill to an “O(n²)”, and that’s how is based the Staff+ Path, a guide to follow to understand more about the skills needed for this role, and a “fun fact” is that a bunch of this skills will be crossed with other paths beyond senior, like a Managers or an Entrepreneur.

Last but not less important: how do you know when an algorithm changes? It changes when any of the coordinates changes, so thinking about your knowledge you are probably going to forget some things, or thinking about the complexity sode if you do simple tasks or less impactful tasks probably will result in a change of it.

For a Staff+ Career coding is important, but remember that not every day that a team/company has complex problems that require a lot of programming knowledge to resolve, that a less senior developer could resolve.

In conclusion, before doing any task think about how that task will feed your skills’ algorithms tree and enjoy the challenge of building new skills’ algorithms!

--

--

Danilo P. De Luca

One craftsman in the mass of software development. Programming and architecting as a craft.