How to Put the “Senior” in Senior Software Engineer
This is something people ask me a lot. They say “Pete, how do I get promoted? I’ve been an engineer for a year or two now, and I’m ready for the next level.”
The best way, without fail, is to learn from the successful seniors at your company. There is no rubric which works for everyone. Every company is different and to succeed, you must adapt to your culture.
I have been in jobs where I barely grew over the course of a year. I was waiting for the company to lay out the groundwork that would allow me to excel. I thought I was powerless to grow until we had structure for growth, signed and dotted by senior leadership, with guaranteed salary and title changes. I thought the only way to grow was with a rubric of technical skills in hand.
I realized that it wasn’t my company’s job to provide that structure. They already did. We had a product, a mission, teams, salaries, food, desks, great customers, support, training, coaching. I was the one who needed to put in the time and effort to deliver an impact that exceeded expectations, and to show I could do it consistently.
Here are my tips for advancing from any level to a Senior Software Engineer
Deliver results, consistently
If you master the ability to ship small, and ship frequently, you can overcome a great many challenges in software. If you can break large problems into small ones, then you have the tools you need to become an absolute code machine. Don’t bullshit yourself here. Focus and make it happen. This is the one thing which you cannot negotiate.
At Drift, we’re obsessed with shipping work that makes our customers successful, but this may not be the case where you are. Look to the successful engineers in your org and learn how they decide what’s valuable.
“Practice does not make perfect. Only perfect practice makes perfect.” — Vince Lombardi
Learn to predict the future
People insist that estimating software is hard. Yet I’ve observed people who were very good at it. You know what I’m talking about. You can probably pick out a few engineers from your team who are great at delivering solid, accurate estimates. What makes them different?
The difference is that these folks learned to become obsessed with their code. They started by following code paths, and learning how the systems are laid out. They learn why things were built the way they were built, and they are able to develop this learning while they are being absolute code machines.
You cannot drain the entire dev team while doing this. You must practice maximizing your autonomy, otherwise you’re only developing a dependency on others.
“you can’t manage what you can’t measure.” — Peter Drucker
Make your own weather
A Senior Engineer has grown in influence and awareness. They are professionals. They avoid gossip. They seek to develop objective points of view, and know how to give and receive feedback.
If you develop a positive attitude about your work and the people around you, people will listen to you. They will want to be on your team, and you will grow in your ability to learn and sell your ideas.
What you can do today to level up:
- Orient yourself during 1:1 time. Don’t squander 1:1s with technical troubleshooting or shooting the shit. This is your opportunity to move the needle on your career. Work with your leads to develop self-awareness, and to figure out where you are along the path to Senior. Set specific goals, and if you meet a goal, 5x the difficulty until you find the right balance of discomfort and growth.
- Break down your work. Every day, write out a list of your goals. At Drift, we affirm our goals for the day in a daily “slack stand-up”. This helps us stay as focused on what will do as much as what we won’t do. Be specific. This is also practice for effectively estimating work.
- Practice humility. You cannot fake this. Practice letting go of your frustrations, practice honesty and being open, practice gratitude. The investment in this now will pay enormous dividends when your technical skills evolve into people skills.
- Master consistent ships. Establish a cadence that generates small, single-responsibility PRs. Practice distilling work into small pieces. Be clear about what you’re going to do, then do it. Repeat.
If you’re reading this, you’re not interested in sliding under the radar and letting the years of experience grow without actually learning anything. Great Seniors become amazing leaders, so make the investment now.
p.s. — if you want to learn even more about Drift culture, read Culture! Ship It! Go!, a look at how we onboard engineers in days, not weeks.