How to Become a Senior Software Engineer?

senior software engineer
senior software engineer

Primarily, to be a senior software engineer, you must be great technically. You should know at least one programming language deeply, handle Threads, be able to learn new and adapt to new technologies quickly, and know a couple of frameworks very well. Considering also that we are in the cloud era, you should know about cloud providers, containers, CI/CD, it's not necessary to know all of it deeply but know enough to solve problems.

Your attitude is also highly important, how do you deal with unknown problems? What is your way to deal with a difficult code problem? Do you ask for help very quickly instead of trying to solve the problem on your own for a while? You can ask for help but you should know how to ask for help effectively, you can read the article on how to ask for help as a software developer to know more.

Don't think that after becoming a senior software engineer technology will be super easy to master, it will still be hard, but you will be better prepared to learn them faster with better strategies.

What Technologies and Skills Should A Senior Software Engineer Master?

A senior software engineer should be good at discussing technical and architectural solutions. Also, should have mastery of the following technologies and skills:

Favorite Programming Language (Java is a great option since it’s one most used programming languages in the world according to TIOBE)


For more long-lasting benefits books, the following article will guide you to acquire powerful books to help you to master fundamentals, change your code mindset, and take you to a new level of software engineering:
The Top Long-Lasting Java Books That Every Java Developer Should Read

If you want to go more granular in the technologies that are hot in the market you can check the following post:
The Ultimate Guide of Microservices Technologies for Java Developers in 2020

Just keep in mind that mastering all the above-mentioned technologies will take years and years, therefore it’s better to be strategic and be a good problem-solver because it’s that what companies are looking for. A great senior software engineer is also a great problem-solver, in simple words, it’s someone who is able to adapt and provide solutions to unknown challenges. The best way to accomplish that is to understand the patterns of the technologies. To go granular in the subject there is also this post where the concept of being a great problem-solver is deconstructed:
How to Become a Better Problem Solver With Software Development?

If you prefer to have courses to improve your technical skills, I created this Udemy courses list where you can have the courses you need the most:
Ultimate Courses List to Face the Microservices Challenges

A Senior Software Engineer is a Mentor

The powerful ability of a senior software engineer is to be a mentor. By mentoring less experienced developers, you can multiply your knowledge, you can help others to grow, you can make your job easier. You can't give the answer right away to the less experienced developer, instead, you should make questions and only guide them. If you give the answer right away, you will be creating someone that depends on you all the time. You would be making your life more difficult and your mentee wouldn't grow.

Help With Constructive Comments on PRs (Pull Requests)

During my career, I've seen many times arrogant developers giving harsh comments on PRs for other developers. Then instead of helping developers, usually developers would dislike the arrogant developer. A senior developer should learn too how to deal with co-workers in a way that you will be motivating and not destroying them.

Developers' are proud of their code and if a senior engineer gives destructive feedback, he won't be helping the other developer but will be only creating conflict. The ideal is to not criticize the person but instead, explain why the code can be better.

Get involved with the company's business

A senior engineer doesn't have to collect requirements in many companies but sometimes it will be part of the role. Participating in business meetings, being able to ask the right questions, helping to develop a database model, aligning technical solutions with the business might be a reality for some companies.

It's useful to understand the business since the technical tasks are born from that. Without understanding what are the company needs it's impossible to generate value. Therefore, digging into documentation, code, database tables, using the system, asking business people, understanding the business flow is highly valuable knowledge to build up in any company. Just don't forget that to build this knowledge will take time and it's a process. However, don't also forget that having a plan of action to master the company's business is also highly important.

Sharing your knowledge

A senior engineer is usually highly experienced, therefore, sharing your knowledge is a powerful action to take. It's not a necessary step but it's definitely a great thing to do because when you share your knowledge you benefit many other engineers. It's not easy to give a talk but it's something totally worth it to overcome. Keep in mind though to share strategic knowledge with the company you work for, in that way, your talk is far more likely to be well-accepted by your co-workers.

Become a Senior Developer Series #1
with Vitor Bittencourt

To go deeper in the subject, I interviewed senior software engineers so you can hear many different opinions so that you can adapt to your needs.

Check it out the following interviews where I discussed what are the 3 critical skills every senior engineer should have!

In the interview with my friend Vitor Bittencourt, we discussed two powerful traits that will make you a better engineer and a senior:

- Studying at home to keep up to date with technologies
- Adaptability, learn how to deal with different people
- Resilience

Become a Senior Developer Series #2 
with Brian Hourigan

In the second video, I interviewed my friend Brian Hourigan where we discuss the most important traits for him in regards to be a senior software engineer. 

We discussed about the following topics in the following video:

- Persistence
- Focus on something you like to do

We went deep into the above mentioned topics, check it out:

The following video is the second part of Brian's interview!

We discussed about the following topics:

- Collaboration - how do you help, work and communicate with others
- How to create and maintain high-quality software

Become a Senior Developer Series #3 
with Otávio Santana


In the following video I am interviewing my great friend Java Champion Otávio Santana! He shares his experience of what developers should focus on to be a senior software engineer!

The points we discussed are the following:

- Share your knowledge
- Never give up and manage your time wisely
- Be good to everyone

Explore the above points by watching the video!

Don't miss the opportunity to leave a comment! Do you think there is something I missed in this article? What is the biggest insight you had from this article? 

Thanks for reading and be constantly breaking your limits!

Written by
Rafael del Nero
Join the discussion

8 comments
    • Thanks a lot for your feedback, Carlos! The intention is to help developers to become senior developers or be better ones!

  • Hey Rafael,

    Just finished the article, and each pointed-out suggestion you mentioned in the writing was easily understandable to me, which makes this writing helpful. But, it would be nice if you added some more tips on this topic.

    • Hello Adrita, definitely I can refine this article even more with more videos and lessons I learned to become a senior developer so you as well can get the benefits from it and upgrade your career! Thanks so much for your feedback!

    • Hello Jil, thanks for your comment. Firstly, you must be sharp technically, another important step is to possibly find a mentor on your job who is already a senior developer. On your side, you must invest your time doing courses, and reading books, also don’t forget to work on your soft skills with books that will help you with that!