Upwards career advancement — from Programmer to Head of Engineering

Pedro de Carvalho
4 min readSep 6, 2019

--

Bali put me in a contemplative state. Photo by @solmariathomas

I read a lot about career progression, so here are my first two cents on the topic. If there’s one thing startups are reliably good for, it’s rapid career advancement.

Startups present accelerated learning and growth opportunities for those involved from an early stage Regardless of financial outcome, there’s a very good chance of you being a better professional at the end of your time at one.

Startups are demanding environments, their small size and heavy demands make it easier for effort, commitment and value delivered to stand out and be noticed.

They’re bands of rebels, alone against the world. It can be tense, traumatic even, to be in one. Such situations forge deep bonds, as people face the lowest lows and celebrate the highest highs.

Earnest effort is key. Small teams thrive on trust Every ambitious professional is striving for advancement and there are only so many positions at the top, so it’s tempting to get competitive from the get-go. Don’t. This is when you let your work do the talking.

When I moved to Berlin I was determined to show what I could do technically and eager to learn what I could from new people and environments.

I brought fresh ideas about testing and code design to the team I joined and benefited greatly from their knowledge in return. Very soon there was a big push to launch a mobile app, and a need for a good REST API. Even though I didn’t start as Lead for the new API team, my ideas were appreciated and became the founding principles of that team. When the Lead left to pursue another opportunity, I became Lead.

That API achieved its business goals and was instrumental in evangelizing certain design patterns and testing practices across the startup’s ever-growing engineering department.

Delivering my work well, leading a cohesive team and bringing new ideas to the broader engineering department were the three pillars of eventually getting promoted to Head of Engineering. That’s a pattern for advancement that can be observed everywhere:

1. Show competence at an Individual Contributor level
2. Display leadership abilities
3. Develop influence beyond just your team

Deliver high-quality work in a timely fashion and get involved in the decision-making process. As a technical expert, you can be a valued advisor if you can truthfully say “I know how we can do that” to your PM and business development colleagues.

Leading is not commanding. Showing is many times more effective than telling. The best way to argue in favor of an architecture is to show a proof of concept implementation — it proves its benefits while displaying your ability to execute. People follow those who help them achieve their own goals.

Teach everything you know. A beginner who shares freely makes more friends than a tight-lipped expert. Lead by example. Be kind and helpful. Something about programming makes it very hard to be kind. People get angry at each other over how many tabulations they use to indent their code. So if you’re kind enough to not berate others for work you think is sub-par, and share better ideas in a nonpatronizing way, you’re already standing out.

Again, leading is not commanding. A leader gives. A leader uses their knowledge and influence to give people the opportunities they seek and they do it down, sideways, and up the hierarchy. A leader makes compelling and compassionate arguments. Good leaders influence outcomes even without formal authority.

Department-wide and company-wide influence take time to develop, and it requires the ability to share relevant knowledge. Example: as a backend developer working with Java or Python, your ideas on code design might not appeal to the frontend JS devs, but your thoughts on the importance of unit testing and continuous integration might. Startups offer plenty of internal public speaking opportunities. Talks on programming topics over Friday beers are a common thing in Berlin tech companies. Meetups are plentiful everywhere too, and always looking for speakers. Share what you know, and if it resonates, you will become known yourself.

Ultimately, healthy career advancement is a consequence of your efforts to improve yourself and assist others. In tech, it’s good to keep in mind that improvement is consistently rewarded, whether at one’s current company or by switching jobs. So there’s no point in being overly competitive, as it might bring quick rewards but is likely detrimental over the long run. Tech is a small world, even at a global scale, and infamy travels fast. A good reputation does too. You want to be willing and able to give former bosses, colleagues, and subordinates as references when applying to higher positions.

Remember: as you progress, so do others. In a few short years, a bunch of developers and account executives at a small startup can grow into engineering managers and VPs of Sales at a cluster of companies. If they happen to be friends, their influence will be great.

Despite all the code involved, tech careers are absolutely a people game. Play it well and play it in good faith for everyone’s benefit.

Check out my follow-up article on tips for new managers.

--

--