How can I grow as a software engineer and achieve my career goals?

7 principles I’ve learned the hard way that helped me level up in my skills and grow rapidly to the next level in my career.

So many times in my own career, I’ve needed to learn new skills, and level up as I’ve looked forward to new positions or onboarded into new jobs.

I’ve struggled to find the best way to grow as a #softwareengineer.
Besides just watching 1000+ hrs of youtube on “how to master the systems design interview.” 🙃

I’ve learned a lot through trial and error.
Which has resulted in exciting career opportunities and even 2x pay bumps. 💰🤯

Being in over your head with a new technology, or trying to level up into a new position you’ve never been at can be scary and difficult.

Here are 7 things I’ve found that have been really helpful to level up my skills and grow rapidly to the next level in my career.

1. Study consistently

Write down a list of everything you need to improve in:

  • MySQL

  • Redux

  • Unit tests

  • Clean code

  • Whatever it is...

Spend 15-30 mins a day consistently studying on those topics.

In 6-9 months you’ll be unrecognizable. 🔥

I started so many courses and rushed through the beginning of them only to never finish them. Now I realize that slow and steady wins the race. 🐢.

Show up everyday. Be consistent and patient.
Learning is not linear, but little wins always add up. 📈
And yes – the tortoise always wins the race 🐢.

Here’s a post I wrote that takes you into more detail on how I approach quickly learning new coding technologies or frameworks.

2. Ask for help

If you are stuck, ask for help. Yes really, it’s ok to ask for help.

Especially if you are newer in your role or position, people expect you to need help, and they are happy to help you get unblocked.

I’ve had so many times where I’ve banged my head against the wall on a bug or local build issue for 8 hrs straight, and when I shared that with a senior engineer on my team, they said: “You should have told me! Where are you stuck? Let’s get you unblocked.”

Your teammates are likely busy with their own work. So here are a few tips I’ve found are helpful to respect their time when asking for help:

  1. Put in the work to understand as much as possible on your own

  2. Have specific questions to ask and areas where you can show them you are stuck

  3. If you are pair-programming, ask to drive the screen so that you build up your familiarity with new areas in the codebase as you learn

  4. Document anything you learn, and write down any areas that you need to dig into deeper later

  5. Thank whoever helped you once you finally get things working

Seek out peers & mentors that can answer your “dumb questions” without judgement. You will go far with them.

3. Make friends with growth-minded people.

The best leaders bet on people, not companies.

You should do the same when you want to level up and grow – be with the right people. 🚀

A massive part of my own growth as an engineer has just been rubbing shoulders with other really strong engineers who were eager to learn, grow, and solve hard problems together.

You are the average of the five people you spend the most time with.''

– Jim Rohn

A real-life example of this is ”the PayPal Mafia". They are a group of former PayPal employees and founders who have since founded and/or developed additional technology companies such as: Tesla, LinkedIn, Palantir Technologies, SpaceX, Affirm, Slide, Kiva, YouTube, Yelp, and Yammer.

They all helped each other develop into world-class engineers and founders.

Find your tribe, and grow together with each other.

Either join a company where you can level up with other solid engineers looking to grow together, or find mentors and peers who will help you grow. 🚀

4. Welcome imposter syndrome as your friend

I always thought my imposter syndrome would go away when I became a senior engineer. It didn’t. 🙃

At first this really worried me. Was I actually just a fake?

Slowly but surely I’ve seen that my imposter syndrome is just a sign that i’m in an uncomfortable, but rapid stage of growth. 🚀

My imposter syndrome is back as I’m working towards an engineering manager role.

I’m having to learn new ways of thinking, and what success looks like. I’m being stretched and challenged. It’s uncomfortable, and feels messy, but I know this is just a sign I’m growing 📈

Next time you feel imposter syndrome creeping up,

Remember that it’s a sign you are in a rocket season of growth. 🚀🚀🚀

5. Don’t be afraid to look bad at something new.

You’d think after 10+ yrs of software engineering and being a senior+ engineer, I’d known everything, or at least be confident 100% of the time 😅😂

Not wanting to look dumb has only hurt me in the past, and slowed my growth.

It’s caused me to not ask questions I should have asked to more deeply understand something. All because I wanted to appear more knowledgeable than I was, or was afraid of what others would think. 😅

It’s so funny, you’d think the more senior you get the less you’d need to ask questions and learn new things. Personally I’ve found that yes I know more, but I’m also working on harder problems, so I still need to learn and grow.

The more I’ve grown, the more comfortable I have become in my own skin and developed the confidence to ask that dumb question which helps me learn quicker. 🚀

I’ve learned it’s ok to say: “I don’t know, but I’ll figure it out.” Some of the smartest engineers I know say this.

  • Show up. 🙋‍♀️

  • Ask the dumb questions. 🙋‍♂️

  • Be uncomfortable. 😅

  • Make mistakes

  • Watch yourself bloom. 🪴

Remember: You aren’t paid to know everything. You are paid to solve problems even if it requires research and learning to solve. 💡

6. Record and review your wins

Remind yourself that you are an excellent engineer, and you contribute huge value wherever you go.

Having this quiet can-do confidence is important. But it can be easily lost when you’ve blown it on a project, or had a rough go of it for a few weeks.

One way to build up your confidence is to record your wins in a brag doc.

A brag doc is something you update bi-weekly or so with everything you’re working towards and accomplished. ✅

Every couple months review your bi-weekly notes and summarize them with key insights. ⏰

When you are feeling down, pull out the doc and review some of your successes for a fresh perspective and boost of confidence. 🔥

Pro tip: Brag docs are also an awesome reference doc of your valuable contributions for your LinkedIn, 1:1s, resume, yearly reviews, promotion conversations etc.

7. Take on hard projects

I always used to be afraid of stretching myself to take on hard projects, for fear of what others would think of me if I bombed it and it took forever or flopped.

Doing so was only stunting my own growth.

Looking back on my career, it’s been the times I was forced to solve a very complex problem out of necessity that I learned and grew the most as an engineer.

Whether that was:

  • figuring out how to record and display analytics for an email campaigns system that was sending millions of emails a day

  • using geospatial lat/long coordinates in postgres and google maps APIs to figure out the closest restaurant to a guest

  • exceeding the data binding limit in vue and angular, and writing a custom list onloading/offloading scroll handler to display massive lists of guests

  • refactoring one of the worst codebases I’ve seen into a fresh-looking, responsive, and user-friendly customer-facing app

All of these challenges were daunting and difficult. All of them made me a better engineer.

If you want to learn and grow and stretch yourself, volunteer for hard projects. 🙋‍♀️🙋‍♂️

Growth is hard and scary. But the rewards are huge.

I believe in you. You can do this.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

What about you – how do you approach learning and pursuing growth in your career?

I’d love to hear any stories or tips you have.

Until next week 👇🏼

Catch me daily on LinkedIn and Twitter, where I talk about everything software engineering, startups, and growing in your engineering soft skills.