Path to Senior Software Engineer
In this article we talk about the traits that can help you level up as a software engineer, we talk about my recent promotion and the things I believe helped me get there.
So for those who have followed me on LinkedIn, they will know that I’ve recently been promoted to senior *fist bump*, and I’ve had a couple of people tell me that it would be really great if I shared the things I did to get that promotion.
I can’t say for certain that the things I did lead me to this promotion, however what I can say is that I have been a senior/lead engineer in previous roles, and a lot of the things I did to achieve this role were a continuation of what I did for those.
I also want to put in a disclaimer that if you treat these guidelines as a “box ticking exercise”, you’re most likely not going to get that promotion. To me, these are just some things I consider as being a good team member and software engineer, and that was predominantly my focus from the beginning.
So without further ado, let’s get into it…
Focus on impact
When coming into any new team and/or project/product, focusing on these areas is always a win-win situation:
What are the high value areas for the customer?
What are the high value areas for the team?
For me, I would say one of my skillsets is being able to take a very difficult problem and break it down into smaller problems. To be honest, that is a skillset held by most software engineers, but it’s especially important for seniors.
Why? Because you need to be able to implement and deliver things yourself from start-to-finish as part of your role, with little guidance or help.
Focusing on the following will help you advance as a software engineer:
What are the difficult problems the customer has, that are currently not being solved?
The way you help the team, and help them with the difficult problems they are struggling to solve.
Stepping back from the ‘that’s not my job’ mentality when it comes to delivering all the work that needs to be done.
System architect and design
When you’re working with others, there’s only so much speaking and writing will help. Sometimes you just need to start drawing out your approach so others can see it, or creating a template/framework for them to work from.
It’s why I’m passionate about trying to create as many different formats of content, short text, long blog articles, videos and diagrams. I believe that in order to make the most impact, you need to start changing how you deliver information in order for others to see what you see.
And so draw that diagram, document that flow. Sometimes a picture says a thousand words, sometimes you need some accompanying text to give context, and other times you need an auditory walk through.
One of my strengths is understanding business and systems flow, and I think the best way to show a flow is through diagrams, we always need more diagrams. I did this a lot in my role, and I really believe this helped me show others what was in my head, and bring them along with me in the areas of the implementation that I was taking ownership of.
Use your strengths
So you may or may not know that I used to be a product owner/business analyst in a past role. The reason I went into this is because I’ve always been good at gathering user requirements and understanding the problems that they needed solving.
There was a period when we were without a product owner and it was becoming quite clear that there was a gap between the requirements coming in and converting them into sizable chunks of work.
It wasn’t just about breaking those requirements down, it was also making sure each story had wireframes and acceptance criteria, that the team could then easily work on. I naturally stepped into this role, and to be honest, I couldn’t help myself because a messy backlog really triggers me, and this really helped increase my impact.
There will be strengths that you have that you’ve had in previous roles/current role, try to understand what they are and hone in on them if you can. This again will increase your impact on others and on the areas you’re working on.
Focus on the core principles you care about
So for those who know me, you know that I care about:
Clean and maintainable code
Automated testing
Continuous integration and deployment
And so I always make sure I start my projects with a pipeline that runs smoothly and keeping a focus on building an automated test suite. If we are working on an existing project, I focus on trying to write tests that make it easy to refactor the existing code base. Of course each team has some negotiations and pragmatisms depending on the project, but these were things I contributed in the areas I’m passionate about.
As well as this I care about making code readable, consistent and clean. Do I always get this right? No, but I do care and I am always willing to learn from others how to do things better. I think having this approach to how I deliver work meant that I was able to both teach and learn from the other experienced engineers in my team.
There will be the core principles that you care about, just like I do, so make sure that you are standing by them, and more importantly, leading by example. Show your team members what good looks like, show them why you think it’s important and why you care.
Don’t dictate, but advocate.
There’s more than just your ‘work’
As well as driving impact inside the team and to your project/product, there is also a whole range of different business areas that can use your skills.
Remember the ‘that’s not my job’ mentality that we spoke about earlier? Yeah, you need to get rid of it.
Now, it’s important to not overload yourself with too much extra-curricular activities, but they are a great way to make yourself known outside of just your team and to help the wider organisation.
I personally got involved with trying to make a wider community within our department, organising socials and getting involved with sync days where we went into the office to network with the wider department. Because we are remote, we don’t get to do a lot of activities together, getting involved with this was a great way to make things happen!
See what things you can get involved with to drive your impact.
Final thoughts…
You will notice throughout this article I post a lot about impact and ownership, and that’s ultimately what I think is the best way to grow as a software engineer.
It’s not about that promotion, it’s about looking at what needs to be done, taking ownership and being the best software engineer you can possibly be.
Enjoyed this article? Check out my YouTube video where I talk about more about my experience here:


I loved this bit as an overview of everything you shared.
Impact + Ownership = The best way to grow as an engineer.
That’s something I learned as an early senior at a hyper-growth startup. Find ways to make an impact on the product and business and team, and take extreme ownership to drive that forward.
Yes, even if it’s “not my job.”
Great share, Jade. 👏🏼
Thanks for sharing, and congrats :D