I never really put any serious thought into my career progression until about one and half years ago. I’ve also been told by a few other people, it’s more difficult to get promoted while staying in the same environment, the easiest way is to change job and start at a new company in a Senior position.
Luckily, I managed to become one without leaving. The process wasn’t full of unicorns and rainbows and I’d wish I’d known a few things sooner, so I thought I’d share my personal experience of qualities which I consider important in moving towards becoming a Senior Developer. Hopefully some of these tips help you along the way…
These basic principles are geared towards being a “good developer” in general and don’t just apply to being a Senior; all developers need to work towards improving these skills;
Write good quality code
- clean and readable
- scalable and reusable
- well documented
Have a solid knowledge base
- think creatively; apply past experiences to the current problems
- don’t be afraid to ask for help or admit that you’re not sure
- be able work with others, within or outside the team. This includes designers, product manager and sometime stakeholders if needs to.
Find your speciality, be brilliant at it
No one knows everything — I bet Einstein didn’t know how to make as awesome an Adventure Time themed cake as I did. (Well… he can’t argue!)
I used to be a full stack developer, working on quite a wide range of technologies. However, this was one of the main reasons I failed on my first attempt during the process. I was told I was “too average” for the role at the time. Having broad range of professional knowledge is definitely important, but being exceptional at something will make you standout.
Find what you’re passionate about and become an expert in it.
More than just “GTD”
Many developers are content to just do exactly what’ve been told and “Get Things Done”, only writing basic code to meet the minimum requirement. There’s a time and place for this, at crunch time with a deadline looming having code that works is more important than reusability, code quality or improving processes, but during everyday work a Senior Developer should do more.
- One of the main expectations will be to take more responsibility and influence a project at a wider level, making technical design or architecture decisions and helping stakeholders understand what is and isn’t possible.
- Take the initiative to think proactively, both about the project you’re working on and overall processes. How can the team do things better and what can you do to help them understand new technologies and tools.
…but it’s important to find a balance. You’ll be working hard and making important decisions, but you still need to get involved with the work everyone else is doing and there’s only so many hours in a day!
Yes, you are awesome, you are a kick-ass coder (or a rock star), but being a team player is equally as important. Remember that in the enterprise scale of projects, the ultimate goal is to deliver and most projects are large. You can’t do it alone.
Spotting problems early and guiding others when needed so they can be in their strongest is not only an opportunity to demonstrate your quality but also to earn respect from others.
Be someone who team mates can look up to and that they feel they can come to for assistance.
Even now, I still find myself learning new things every single day.
Times have changed. Most technical knowledge is free on the internet and there’s nothing to stop you from learning. Particularly in my industry, new software is released everyday and I’ve already lost count of how many great frameworks and plugins out there. If you don’t make an effort to keep up, soon you’ll fall a long way behind.
Sharing what you already know actually helps you learn quicker. I started to write tech posts a few weeks ago and you wouldn’t believe how much knowledge I‘ve gained in such short time.
Be open minded with new technologies. This doesn’t mean you need to use them all, but you should understand their strengths and weakness, then think how they could benefit you (and the team).
Finally, the most important thing to take away from this post…
“Senior” is just a title, it doesn’t define who you are nor make you superior than others.
Ask yourself. Is this really what you want? What’s the main reason that drives you? Have a good think about it. If you decide to pursue promotion, honestly evaluate your professional strengths and weakness, then write down some plans that improve your weak areas and let you make the most of what you’re good at.
We’ve probably all been in the situation of encountering people who claim to be a Senior Developer and felt let down when they turn out not to have the right mentality or skills. Don’t be that person.
Be prepared. When the time comes, you‘ll be ready!