DEV Community

Edward Huang
Edward Huang

Posted on • Originally published at pathtosenior.substack.com on

How to Grow Really Fast as a Software Engineer

yellow and brown leaves on white ceramic tiles

The growth progression of the software engineer career is a mystery.

You see that some engineers are more likely to get promoted than others. Yet, sometimes, you don't see them working as hard.

I used to think that you have to be technically skilled to be a 10x engineer. I discovered that the 10x engineers are not just technically skilled but are impactful.

This week, I want to share some insights on what I noticed about the fastest growing engineers at a tech company and share actionable advice on how to become one. These are topics that I will cover:

  • Understanding the Types of Growth. An article by Scott H. Young talks about the two types of growth and I share how that correlates to a software engineer’s growth.

  • Traits of the Fastest Growing Engineers. What they have in common in their career journeys.

  • How to Grow Fast as a Software Engineer. I will include some advice from my experience and the case study I derived from these great engineers.

Let's dive into it!

Subscribe now

Understanding the Types of Growth

According to Scott H. Young, the author of Ultra Learning, there are two types of growth - Logarithmic and Exponential.

Logarithmic

In logarithmic growth, it gets harder and harder to improve as you get better.

One example of this growth is when you start working with a new programming language. You learn a lot initially but eventually, you’ll reach a plateau. To continue progress and learn deeper about the programming language becomes more difficult.

With this kind of growth, it is easier to slide back down the hill. Since it is so steep initially, carelessness can mean those immediate gains are often easily lost. Learning a new programming language faster may be more desirable than learning it slowly, but you also need to hone your skillset to become a steady habit, or else you may forget.

Exponential

This type of growth is the growth that people often say is "overnight success."

One of the prime examples of exponential growth happens in business. No business reaches infinite growth. Eventually, the market share becomes saturated, and competition stabilizes growth. However, for many types of businesses, exponential growth can persist for much of the business life cycle.

The overall software engineer career can also be exponential. We often don't see any results at the beginning of our careers because we take a lot of time to learn hard skills and soft skills. However, as time goes on, we notice that the hard work we previously did helps us to suddenly grow at a faster pace.

Exponential areas of life are full of quitters. People are making linear assessments of viability and giving up before the exponential curve can take hold. Many aspiring software engineers stop pursuing their careers because they don’t see instant results from their hard work.

Every software engineer has a different story in terms of career growth. Some engineers experience logarithmic growth at the beginning of their careers and exponential growth at the later stages of their careers. Others look back on their careers and said they had experienced exponential growth throughout.

3 Traits of the Fastest Growing Engineers

To understand the three traits of the fastest growing software engineers, I have compiled multiple case studies of their career ladder, and I saw that all of them have these three traits in common that allowed them to grow 10X.

Riding the Exponential Growth Wave

courtesy Peaky Digital

"When you surf, which waves you jump on and at what time you do makes all the difference." - Carlos Arguelles

GergelyOrosz, an engineer manager that writes The Pragmatic Engineer newsletter, has been riding the growth phase throughout his career at the right time. He started at a consulting company and then moved to the UK to work for an investment bank. Over there, he got into Skype, which Microsoft had just acquired at the moment, and was a part of the founding team of Skype for Xbox One. Then, he moved to Skyscanner in 2015. His short stint at Skyscanner made him jump to Uber in 2016, when Uber was in the exponential growth phase. He got promoted from Senior Software Engineer to Senior Engineering Manager within four years.

Carlos Arguelles, Principal Engineer at Google, formerly Principal Engineer at Amazon, mentioned that he is lucky enough to have ridden the exponential growth wave to accelerate him to become Principal engineer. He said that he was too late to ride the Microsoft wave. But joined Amazon when it was a 3000-engineer company and saw it grow to 60K employees. He went from mid-level engineer to Principal Engineer, and the stock went from $40 to $4000. Joining a company at the inflection point where exponential growth starts is pure luck.

Louie Bacaj, former Senior Director at Walmart, joined Jet.com at the beginning of its growth phase. He said that he came in as engineer number 20. During that time, Jet.com had just received a huge investment and had been on a large hiring spree. He was hired on the pricing team then moved to the marketing team and was a part of the team that drives growth at Jet.com. He helped Jet.com grow and continued to be on the team after Walmart acquired Jet.com for 3.3 billion. From then, his career accelerated. He got promoted from Senior Engineer to Senior Director at Walmart within six years. To illustrate how fast his career grows, being promoted to Senior Director from a Senior Engineer would take 10+ years of experience.

Looking at the insane growth trajectory of the careers of these amazing software engineers, they were at a company with exponential growth waves. They can take the "ride" at the right "wave" that helps them accelerate their careers quickly.

Thinking Like a Business Person

Being at a company that is in exponential growth is not enough for these engineers to grow 10X. They also need to do something that values their career to be 10X.

I learned from all these studies that they all created something that helped the company grow 10X. When these engineers think of business problems instead of programming problems, they will start creating solutions to help the company grow.

Carlos Arguelles created a load and performance platform at Amazon when Amazon needed to scale. He created this at the exact inflection point where Amazon services surpassed the millions of transactions per second mark, when load testing transformed from a nice-to-have to a must-have. Had he created it two years earlier, nobody would have cared. That platform would not have been needed if he had created it two years later after someone else.

Louie Bacaj noticed that the team requires great marketing for Jet.com to grow like a rocket ship. Behind an amazing marketing team is great tooling. He realized that the marketing team’s ad hoc way of getting data needed to stop, so he created an automated tool to help streamline the job of the marketers to be much easier and faster.

David Pan, former VP of Engineering at Mixpanel, told a story about one of the engineers in MixPanel that had a great growth trajectory. That engineer was promoted from SWE 2 to Senior Principal Tech lead manager in 4 years. He said that one important trait for engineers to be successful is to think about all projects in terms of business impact.

"If you have five projects you are considering, one of them will account for the most impact. If you can consistently pick out the kind of project that can deliver an insane impact - boom, you become the 10 X engineer." - David Pan.

Tenure

Malte Ubl, a former Principal Engineer at Google, stayed in 2 companies for 11 years before joining Google. He said that his tenure at the prior company helped him reach the level he has now at Google. Most people stop at the level of Senior engineer at Google, let alone Senior Staff engineer. He joined Google around 2010 when Google was in the exponential growth phase. He started as an L4 (SWE III) and got promoted to L8 (Principal Engineer) within 11 years.

Carlos Arguelles spent 12 years at the beginning of his software engineering career at Microsoft. Then, he had fast promotions at Amazon from Engineer 2 to Senior Staff in six years. His experience at Microsoft helped him fast forward his career later on.

Why does tenure make you grow fast?

Tenure brings a lot of domain expertise. Technology expertise can be learned outside of that company, but as an engineer, your ultimate goal is to solve the company's business problems and increase the company’s revenue.

'Tenure gives you a lot of contexts. This context helps execute. You'll have a better understanding of why things are the way they are, and what's been tried already but did not work, and why that was.' - Malte Ubl.

How to Grow Fast as a Software Engineer

If you look at the traits I mentioned of the fastest growing software engineers, you may realize that it requires patience and some luck for rapid growth. However, there are certain actions that you can start doing right now in your team that can help you grow fast.

Pay Attention to the Impact

Most software companies' promotion cycle focuses on impact.

Louie Bacaj joined the marketing team at Jet.com because he knew during that time that Jet.com requires marketing to start being profitable and grow exponentially. He said, "' Jet took so much VC money that there were only two outcomes on the cards: either it grows like a rocket, or it crashes and burns. There was nothing in-between. And to grow like a rocket, they needed an amazing marketing team with excellent tooling."

David Pan said that one trait that helped an engineer fast-track to Principal Tech Lead Manager in 4 years is a keen eye for impact. That engineer was working on a project that helped save the company's infrastructure money by 80%.

It is a natural process; the more successful you are, the more people will trust you, and the more changes they will give you to work on a bigger project and execute a bigger impact. Then, your title and salary will also reflect on that. (graph on the growth loop)

Paying attention to impact makes you think in terms of the big picture. Even if you are on a big team, considering impact helps you understand where your efforts are going.

"Does the work that you are doing help increase X metric at the company?" If not, you need to discuss with the product team and ask the question why.

"How much impact will I have if this service is shipped to production? What kind of benefit will this service give?"

Thinking in terms of impact also helps you think about how you can illustrate your story and sell your ideas to others. People will not do what you say just because you tell them. You need to convince engineers about the viability of your ideas. This means listening to them and involving them in discussions and decisions.

Be Open-Minded to New Ideas

Software engineers often think that every problem is a coding problem. A lot of problems can be solved without any coding.

David Pan told the story about the rock star engineer on his team who led the project in reducing GCP spending at Mixpanel. Many engineers would have to think about such a problem as a software problem when presented with the project of making infrastructure spending more efficient.

"How can I make my software more efficient? Or database migration to make it more efficient or compute more efficiently?"

This engineer thinks of it as a customer problem. He has a hypothesis, if you look across all MixPanel customers, and you find the top ten, they willaccount for a disproportionate amount of the infra cost. Further, if you dig into those top 10 cost generators, at least a few of them are costing the company more that what the customers are paying. He can convert a complex Software engineering problem, figure out a way to incentivize the customer, and dramatically cut costs for Mixpanel.

One tip software engineers can do to be open-minded is to work backward from the customer’s problem and think from their perspective to find the solution.

"This service is going slow. How can we speed things up?"

Instead of directly diving into the code, step back and think about the purpose of solving the solution. Then, work backward from the purpose to figure out if there are some easier ways, with less code and fewer resources, to solve the problem. These approaches are similar to the first principle thinking I wrote in (link to the first principle thinking article).

Second, think positively when something happens to you.

People often say that starting your career in a niche technology (like Scala) will pigeonhole you and make you not as marketable and able to move to another company. I view them as positive events that happened to me. Starting in niche technology has helped me speed up my software engineering career. I was the go-to person and the SME engineer within my team at Disney Streaming Service because our system is based on Scala. In a short time, I can lead projects that later accelerated my career outside of Disney Streaming Service.

I got a lot of offers for a Senior Software Engineer position in companies that heavily use Scala because of my knowledge and expertise in technology. One reason is that there aren't many candidates who know Scala and whom I will compete against. If I were interviewing for a JavaScript or Python role, I would have to compete with many more developers out there in Silicon Valley.

Louie Bacaj didn't want to go into marketing at first because he didn't know anything about marketing. However, he is open-minded to think about his decision from a different angle by thinking that marketing is important for a company to grow exponentially. If he can be in that rocket ship, his career will also take off like a rocket ship.

Be Patient

Most of the growth of these engineers took off at a very fast pace.

However, it took off fast when they had some leverage in their career.

An advice that I got from a senior engineer is not to move around and wait for your career to thrive. Invest in learning everything in the company and become the subject matter expert. Your growth as a software engineer can be fast if you catch the opportunity.

💡 Want more actionable advice about Software engineering?

I’m Edward. I started writing as a Software Engineer at Disney Streaming Service, trying to document my learnings as I step into a Senior role. I write about functional programming, Scala, distributed systems, and careers-development.

Subscribe to the FREE newsletter to get actionable advice every week and topics about Scala, Functional Programming, and Distributed Systems: https://pathtosenior.substack.com/

Nivia Henry, the Directory of Spotify, mentioned that most of her career success is due to luck and being in the right place at the right time. However, she will only get lucky with putting in the effort and diligently practicing her craft. She has to be patient in building her leverage and catching the next wave of opportunity.

"You didn't get lucky without skill and effort." - Nivia Henry.

She joined Spotify in 2016 as an Agile coach and worked in the role for eight months. However, she wants to work on the in-depth technical side. She started by writing some small tests to understand better her specific area's codebase, and her manager supported her journey. A QA engineering manager position opened up, and she has experience from her startup days writing test code on the side and having a good rapport with the managers, so she applied and got it.

Gergely Orosz gained leverage at the beginning of his career and caught the opportunity when it was presented at Uber in 2016. He stayed at Uber for more than five years. If he had moved to another company within 1-2 years, he wouldn't have gained enough domain expertise in re-building the Uber Payment Processing platform.

You have to have the patience to keep honing your craft. You want to be prepared to handle the job once you are there. Thus, heads down and understand every aspect of the fundamentals of your work.

Takeaway

Every software engineer has their own growth journey. I realized that my growth was logarithmic and switched over to exponential as I grew into a senior role.

The fastest growing software engineer requires pure luck (being in a rapidly growing company or a re-org forces them to step up). However, looking closer at what they did made me realize that they have certain characteristics and work ethics suitable to thrive in that company's culture. They look at the problem from all angles, not just engineering problems, and are nose deep in impact. They can transform the event that comes to them as an opportunity instead of a liability.

Lastly, when it comes to tenure, there are no universal "rules" on which length of tenure helps careers the most in the long term. If you are working at a place that's not working for you, then there's little point in staying because there are plenty of other opportunities in tech. However, it might be worth staying longer if you keep learning, growing, and pushing yourself professionally.


If you want to hear more stories about the case study of these engineers, I've linked them here:

Top comments (0)