4 Steps to Advance Your Career in Software Engineering in the 2020s

In the old days, your career path might have looked something like this:

  1. Be born in the suburbs of a US city
  2. Go to college (and pay for it with a summer job)
  3. Use your dad’s network to get a high-paying white collar job
  4. Maybe enjoy your job
  5. Work there for 40 years
  6. Retire

Today, careers are more like “Choose Your Own Adventure”. You have so many options, and you have the power to trace your path to a unique destination.

However, with great power comes great uncertainty. The path is unclear. Competition is fierce. And, different people want different things. How do you know what to do?

A lot of self-proclaimed gurus on social media like to shout the same platitudes over and over. “Work hard! Stay late! Take on more responsibility! #HustleGrindset

While all those things are nice, they will not guarantee you the type of success you’re looking for. Following their advice will just burn you out. (And let’s be honest, a lot of those “hustlers” are just low-grade con artists that don’t know anything about software engineering.)

So, let me suggest four steps to advance your career in software engineering in the 2020s.

  1. Know what you want
  2. Create a plan
  3. Move towards discomfort
  4. Make it happen

1. Know what you want

So, the first step is to set a vision for your career. Think of this like a mini PRD for your ideal job. What do you value in your career? What do you want?

Here are some examples:

  • Impact
  • Achievement and success
  • Work-life balance
  • Learning and growth
  • Social justice
  • Money or TC
  • Flexibility
  • Location
  • Company mission or product
  • Vacation time
  • Autonomy

None of these things are better or worse than the others. It’s all about what you individually value. In fact, you might value different things at different stages in your life. Ramit Sethi proposed this idea of career seasons:

In the season of growth, you are focused on advancing in your current track. For example, this is when a person strives towards promotion at their current job.

In the season of reinvention, you are switching jobs or industries. Think of an engineer who wants to become a product manager, or vice versa. Or think of an employee at a big tech company looking to work at a nonprofit.

In the season of lifestyle, you are pulling back from your career and focusing on other things in your life. For instance, if you just had a baby, you might want to take parental leave or work half-time for a year.

With that in mind, write down what you want in your ideal job (or even, just your next job).

Here are some simple, high level examples:

  • I want to be an IC working on an iOS application while maintaining good work-life balance.
  • I want to manage a large team and use my influence to drive change across an up and coming environmental nonprofit.
  • I want to maximize total compensation while living in NYC.

Don’t feel pressure to write the perfect vision right now. The type of job you’re looking for can change over your life, just as the seasons change. A lot of engineers in Silicon Valley start out with no ideas except “Make a lot of money” and progress into the season of lifestyle as they get older.

Now that you have a clear vision, it’s time to find out how to get there.

2. Create a plan

The second step is to create a plan. Some people skip this step and dive straight into doing random things. They emerge from their frenzied cavern 3 weeks later, and they’re not any closer to their goal than when they started.

If you’re a top performer, you’re willing to take some time now to make things easier for your future self.

For instance, if you’re searching for a new job, you probably want to:

If you’re aiming for a promotion, your company probably has a rubric. Or, your manager can tell you. Schedule some time to sit down with them in a 1:1, tell them in advance you want to talk about your career, and give both of you ample time to prepare. Together, you can create a plan that’ll give you the best chance of being promoted in an upcoming review cycle.

If you’re struggling to understand what to do next, set aside some time to write down what the problem is. Or, enlist the help of a mentor. Mentors are a valuable resource that can show you their path in the world of software engineering. One good conversation with a mentor can bring fascinating insights that you may never have thought of before.

But what if you’re still stuck at a decision point, or you are afraid to start? This brings us to our third step…

3. Move towards discomfort

Computers execute instructions without any emotion. A human being can understand what they need to do, and be emotionally opposed to doing it.

It’s perfectly normal to have part of yourself really want something, and have another part of yourself reluctant to do it.

Maybe you don’t know what to do.

Maybe the task at hand feels overwhelming. 

Maybe you’re afraid that you’ll try your best and fail, and you’ll have wasted so much time and people will think less of you.

To exit this loop, acknowledge the discomfort and move towards it

Top performers know it is necessary to experience some discomfort in order to grow. This applies to your career, fitness, allyship, relationships, and other areas.

Discomfort does not mean pain. Discomfort does not mean making thoughtless, risky decisions. Sometimes discomfort is just trying something new, even though you’re not sure if it’ll work out.

One phrase thrown around Google is “uncomfortably excited”. Such as “I am uncomfortably excited that our service is launching next month.” You can be both happy that something is happening, but also concerned about what might go wrong. This is perfectly healthy. In fact, being a little anxious about something is an indicator that you care about it.

You might also think “I’m not good enough to do this.” I would challenge that and ask “What makes you say that?” Oftentimes, there’s no “magic feather” that separates you from someone who already does the thing you want to do. If you really want something, and you’re willing to learn, why not give it a try?

Which brings us to the last step…

4. Make it happen

The phrase “Make it happen” encompasses a lot of ideas. It basically means “Put in the time and do the work.”

Take extreme ownership of your projects. Proactively remove blockers and do whatever it takes to make it happen.

If you can’t do it alone, find someone who can help. Whether it’s getting direction from your manager, asking teammates for assistance, or requesting features from an infrastructure team–bringing people together and persuading them to work towards a common goal is part of advancing in your career. You all succeed together.

After a long time studying or working on something, you might feel discouraged for lack of progress. If something is unexpectedly costly, it’s fair to re-evaluate the approach. Or, you may intentionally decide to shelve the project. That’s okay, as long as it’s an intentional decision. Sometimes, the best option is to stop working on the current project and work on something else.

“Make it happen” does NOT mean that you need to burn out. Working overtime can work in the short-term, but it never works in the long term. A slow but sustainable pace is better for your mental and physical health. In fact, it’s normal to take breaks. Use your vacation days and recharge.

If a particular company or position isn’t right for you, it’s okay to leave. A big part of your career is learning from your experiences. Sometimes what you thought you want is not what you actually want. I have more respect for someone who steps down from a role where they’re not happy, even when their transition involves losing status or money.

One of my old mentors at Google decided to stop being a manager and return to being an IC. He felt that being a manager was too stressful, and enjoyed being an IC more. It may have had negative effects in the short-term, but it was the right decision for him in the long term.

Another manager used to lead a team of 20 people. I could tell he was very happy with his job, but he intentionally gave up his position to move to a different country so he could live next to the beach and be closer to his family.

On the other side, I know another engineer who took a job at a new company in a foreign country. His new position had more opportunities for growth and better pay.

These are just examples of people who were not content with the status quo. They didn’t wait for their manager to do something about their jobs. They made a decision and went for it, even though it felt risky at the time.

At the end of the day, you’re responsible for your career. Not your company, and certainly not your manager. The world can be chaotic, but you’re not powerless. You have the ability to choose how to respond to difficult situations.

Now go out and make it happen.

This entry was posted in Software and tagged , , , , , , . Bookmark the permalink.

1 Response to 4 Steps to Advance Your Career in Software Engineering in the 2020s

  1. Pingback: 8 Things I Learned During 8 Years at Google | Sheldon's Software

Leave a comment