Every now and then, I’ll get a DM from a software engineer asking me how they can become senior engineers and generally grow their careers. I will try to answer that in this post.

Grab a glass of something lite, the class is in session.

First and foremost, I generally believe what qualifies a person as a “senior engineer” is the kind of problem and breadth of problems that they have dealt/dealing with and not generally the length of time.

For instance, if you work in a fast pace environment and generally get thrown into deep problems, you’re more likely to grow faster in terms of experience and battle scars than someone who, for instance, couples templates for a living. Don’t get me wrong, there is nothing wrong with that.

If you left a Bootcamp about 6 months ago, and you spend the next 6 months solving problems, even though you think those problems are out of your league, you will learn and grow 2x than the person who just takes it slow. So tip 1. Don’t be shy of hard problems.

Let’s imagine you work for an e-commerce company, and your team is in charge of checkout. Here are the possible scenarios that I imagine will play out. a) You will work on payment processing b) You will understand all the pain-points of processor downtime c) You may be on call.

As time goes on, you will begin to build solid muscle memories of the possible problems, so much so that if anything ever goes wrong, without too much digging around, you can pinpoint with near precision what the problem is, how to isolate that problem and how to fix it.

You will soon become the go-to g(uy irl) for dealing with these problems. In other words, solving hard and difficult problem is one way to accelerate that journey. Embrace it.

Next, find an opportunity to teach. Volunteer to be the buddy of that new intern. What happens here is that you’re reinforcing your technical learnings. You’re learning people skills, very critical. No one wants to work with a senior engineer who is a jerk. No one.

You are also demonstrating an ability to take more responsibilities beyond your defined “scope.” It’s important. While there’s a place for independent contributors, learning people management skills is super essential.

Another point that I will make here is the ability to ask the right questions - asking another person, using a social network like Stackoverflow or even Google. A while ago I made a joke that senior engineers are people who just know how to Google really good. I think it’s true.

Create some sort of learning journal for yourself. It will become a knowledge bank and wiki over time. Do one last thing, share it. Put it on Medium, don’t worry if 10000000 persons have written about it, you should be the 10000001st person. Do it.

Next thing you can do is read and just be curious. Curiosity is super helpful, it allows you to question things and it pushes you to explore. My honest recommendation will be that you read engineering blogs. It doesn’t matter if some of the concepts there are over your head, read.

Uber, Box, Square, Airbnb, Expedia, Grab, GoJek, Instacart all have really good engineering blog, read. And if and when you can, experiment. When you’re done experimenting, throw it to GitHub. Dont worry about it being perfect put it there.

Lastly, find a mentor, that one person you can lean on, ask stupid questions and get general guidance from.

Also, don’t forget that being a senior engineer isn’t a destination, it’s a continuous journey.

I'll love to hear from you

Do you want to say hello? Email me -

I tweet at @cyberomin

If you enjoyed this post, please consider sharing it.
comments powered by Disqus
Blog Logo

Celestine Omin



Celestine Omin

On Software, life and everything in-between

Back to Overview