paint-brush
What Does It Take to Be a Senior Software Engineer/Developer?by@caponte
140 reads

What Does It Take to Be a Senior Software Engineer/Developer?

by Carlos AponteOctober 2nd, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The timeframe and roadmap to becoming a senior software engineer is a common question. After consulting the SWE community on X (formerly Twitter) and discussing it with some experienced friends, I summarize what it really takes to reach this level and be good at it.
featured image - What Does It Take to Be a Senior Software Engineer/Developer?
Carlos Aponte HackerNoon profile picture


Many people focus only on the number of years needed to become a senior software engineer, but it’s not just the years that matter. It’s the depth of real experience and skills required for the role.


After discussing with some experienced friends and the SWE community on X (formerly Twitter), I decided to summarize this collective wisdom and share the key qualities and skills needed to reach a senior level and be good at it. These points are in no particular order, and I would recommend taking them as a whole and addressing them to find the right balance for your environment, current skills, and weaknesses (yes, you should address those too).

How long does it take to become a senior engineer?

The truth is, there’s no universal timeline. Some developers reach senior positions in 5 years and some in 10. This can change based on the company, opportunities to grow or learning paths. In the end, seniority is less about the time spent in the field and more about experience, expertise, the impact you can make, and your ability to leverage those to solve the complex problems.

Technical Depth and Breadth

- T-Shaped Knowledge

This means that you have a broad understanding across multiple components and aspects of the software development process (the horizontal part of the T). At the same time, you have a deep expertise in a specific area, where you are the go-to person in your team or organization. This way you can contribute meaningfully across the board but also provide specialized insights when needed.

- Code Quality

Senior are expected to write efficient, scalable, and maintainable code. It is not enough to make things work, they need to be done right, anticipating future requirements, being flexible and optimizing for performance, without falling in premature (unneeded) optimization.

The Bigger Picture

You need to see the bigger picture and how the code you write, or not, affects the whole. This means understanding certain business goals, how your work contributes to these objectives, and how to integrate with other elements of the company. The idea is that you all row in the same direction and not that your team excels while the organization fails.


Also, as a senior you will step back a bit from technical tasks and instead take on more higher-level responsibilities. This involves guiding the overall technical direction of your project, planning, making architectural decisions and mentoring your team. You still contribute directly to the codebase but usually tackling more complex tasks.

Soft Skills

This is a key element that some people just decide to ignore believing that their wizard level tech-skills is all they need. This is a huge mistake.

- Communication

Both orally and written is fundamental. At this level you are a source of knowledge and a part of the planning process, so you need to convey your points clearly to both technical and non-technical people. You might be working with colleagues that do not understand how some peace of code and need your help. But also, you might be meeting the management team to discuss upcoming features and schedules. These are two very different conversations that need different approaches.


Here I want to make two concrete suggestions:


One: When writing, answer all the questions in advance. For this, read what you wrote, reflect, realize what points might create clear follow-up questions and address them. For example:


Instead of only saying vague things like:


There is a bug when registering new partners.


Try:


There is a bug a when registering new partners. To replicate it you need to do A, B, C. I think it might have to do with X and the database table Y. Check the documentation Z that covers this.


This might take longer, but it will make the life of your team a lot easier and give them all they need to avoid wasting their time and yours.


TWO: When talking to non-technical people, speak their language and about things they care about. For example:

Instead of saying:


We need to take part of this and next sprint to work on refactoring the codebase because it’s a 3-year-old mess with significant technical debt.


Try:


We need to take some time in the next two sprints for code refactoring. The old codebase structure is slowing us down. Each change is taking about 25% longer than it should. Taking this time will delay features X and Y, but in the long run it will allow us to stay on schedule and reduce development time for future features.


This way you speak about time and delays, which translate into money. All the things that managers love/hate. They now have all the information and the decision is in their hands. You have done your part as well as anyone could have asked for.

- Mentorship

A significant part of being a senior is helping others grow. This can be by providing constructive code reviews, pair programming to share knowledge, or offering guidance on career development. Be proactive about this; many people don’t know they could do things differently or are afraid to ask for help.

- Decision Making

Senior engineers are the ones making development decisions and plans. This means that you need to be able to analyze and compare different ideas, consider both short-term needs and long-term implications and be able to justify and document decisions.

Autonomy and Ownership

As a senior, you are expected to take ownership of significant parts of the codebase. These areas become your responsibility.You will have a general plan or goal, but it is up to you to refine it, discuss it with the relevant stakeholders, and create a roadmap with the team. You are expected be independent and deliver on what was discussed. In many cases, the “how” is up to you and your team.

Final Thoughts & Actionable Advice

Becoming a senior isn’t just about the years you’ve invested; it’s about how you’ve used that time to develop skills, gain knowledge, see the bigger picture, and learn to communicate effectively.


Ideally, you will have a mentor who has already done this and can guide you. But if this is not the case, here are some concrete ideas:

  1. Seek challenging projects that push you out of your comfort zone in technical, planning, and communication skills.

  2. Develop soft skills alongside your technical abilities. Improve your writing (tickets won’t write themselves) and communicate clearly.

  3. Take initiative. If you have an idea or suggestion, be vocal about it, just remember there’s a time and place for everything.

  4. Never stop learning and adapting. Stay informed about industry changes. Avoid getting too comfortable, but also don’t chase every shiny new trend; be smart about it.