The Clearest Software Engineer Career Ladder

coding career

If you’re relatively new in your software engineer career path, believe it or not, programming will be the easiest part of your career.  Knowing the ins and outs to navigate the career paths to, even making bets on the type of software engineering you wish to do, so you stay on top of the skills needed to dominate and own your software career. As software keeps eating the world, it puts the software engineer at the center of the future. 

When starting your software engineer career, it can be a bit nuts with all the options available to you!  No matter how experienced they are, every developer on the planet is a “junior” at several things. To paraphrase the Dilbert principle, everyone is an idiot in some way. Even after 20 years of experience with my last enterprise sales web application generating over half a billion dollars a year from scratch, I still don’t know how to build an app using assembly or create firmware for the latest router. (I’ve done some assembly programming in college. I don’t miss it!! )

Ok, here’s a breakout of each of the core career stages that’s available for any software engineer:

  • Coding Newbies (including Career Change to Software Engineer)
  • Getting Your First Developer Job
  • Junior Software Engineer 
  • Moving from Junior to Senior Engineer
  • Senior Software Engineer
  • Elite Engineers (Staff, Principal, Architect)
  • Beyond The Standard Software Engineer Career

STARTING YOUR SOFTWARE ENGINEER CAREER

learn programming

Congratulations, you’re about to embark on a journey like no other with the dreams of scoring a high six-figure salary. If you’ve never coded before or haven’t built anything yet, learning to code is your very first step. As I discuss, there are three core paths, self-taught, boot camp, or a college degree. If you’re unsure what kind of programming you wish to get into, this is a great time to meet people in the field and do some “window shopping.”  Take them out for coffee (or a zoom call if they don’t have the time or are not in the best location).  

Here are some conventional and unconventional advice when talking to guys just starting out: 

  • ABC’s Always Be Creating - get off tutorials and create real-world projects asap
  • Gamify Your Learning Systems - make it exciting and FUN so you’ll stick with it. For now, learn to code and skip the computer science theory
  • Invest In Yourself - There’s a reason why college graduates still get the top spots
  • Learn in Public - The fastest way to learn is to get feedback from other people
  • Find a Community - You are the average of the top 5 people you spend the most time with
  • Accountability buddy - if possible, have someone you respect that’ll keep you moving forward
  • Teach Other's what you're Learning - best learning is teaching.

LANDING YOUR FIRST PROGRAMMING JOB

Okay, fantastic, you have completed either a degree, boot camp, or self-taught (if you’re self-taught, I have mad respect for you as you’ve got your work cut out for you at this stage. The good news is, all you need is to land just ONE decent job, and you will be on track to the road to prosperity!) 

At this stage, you’ll be balancing your time studying for the interview while actively looking for work. Here’s a time box you can stick with. You will never get it all done in one day. 

Just adjust the ratio if you are currently working full-time. 

2 hours of data structures and algorithm practice
2 hours looking for job opportunities
2 hours learning technical concepts in your field
3-5 hours building your project 

Click here to get my cheat sheet to land your first tech job

The basics you’ll need for your software engineer career:

  • Resumes
  • Cover Letters
  • Bootcamp/Certifications 
  • Networking
  • Practice/Mock Interviews

Types of Interviews to be expected 

  • Algorithms/Data Structures 
  • Technical Interviews 
  • System Design
  • Whiteboarding Interviews
  • Take-Home Coding Projects

JUNIOR SOFTWARE ENGINEER

Junior Developer

This is the time to suck and learn fast to accelerate your software engineer career. In just a year, you will have developed a whole new set of skills. At one of my consulting gigs, I was already 35. I worked with a 24-year-old Jr developer who worked relentlessly and got his career off to a fast start earning multiple six figures in a short time by outworking everyone else.  He was able to accelerate his career faster than I've seen anybody by focusing on key actions - it takes more than just writing solid code. Here are a number of things Jr Developers can do to accelerate their career ladder:

  • Cultivate Problem Solving skills
  • Effective “Help Me Help You” Communication. You need to be more precise than saying, “I’m stuck.” 
  • Fail Forward - You will f*ck up. Just be sure you learn from it
  • Relentless Focus on Adding Value - There’s always more to do, write more tests, documentation, etc.
  • Pair (extreme) Programming - this should be a requirement for EVERY junior developer
  • Learn - The fastest way to learn is to TEACH 
  • Give Presentations (especially if you’re an introvert)
  • Start a website or blog 
  • Answer Questions 
  • Guest Posts/Writing - 
  • Do Annual Interviews - while I did hop around a bit, biggest regret in my career was staying at one job too long

JUNIOR TO SENIOR SOFTWARE ENGINEER CAREER

At this stage, you’re on the way as you’ve mastered some of the core technologies and put in the time.  Most people tend to fall short of not enough focus on soft skills. Yes, your hard skills are essential to do the job, but this will matter less and less over time.  A couple of quick pointers if you’re a Jr Developer. 

  • “Fake it Till You Make it.”
  • Work well on teams (even different departments) 
  • Foundational communication skills 
  • Able to see the Big Picture & Apply Systems Thinking
  • Able to teach and advocate for others

At this stage, you need to market yourself as a Senior Developer and let your prospective employers know you ARE a senior developer even if you feel you’re not ready yet. If you’re in the same position and title after three years (or even 2), get outside your comfort zone and talk to other Senior Engineers. (If you’re looking for the ultimate cheat sheet that separates Junior from Senior engineers, click here. The more you know how to fast-track your career, the faster you’ll get there). 

If In short, if you have enough of the foundations in place, I can’t stress enough that you should get offers from other companies to get the most leverage. Employers resist change and don’t want to pay more than they have to. From a psychology point of view, having other offers shows your employer you are valuable and gives you the potential to earn far more than the standard 5-10% raise. It’s not uncommon to get 2x-4x more than your current salary at this stage, as you’re likely earning less than $100k. Why it’s important to know how to negotiate well, one conversation with the right employer can be worth $50,000/year. 

SENIOR SOFTWARE ENGINEER

Now you’re playing in the big leagues! You should be earning a six-figure salary (unless you’re at a place where you’re looking to ramp up your specialized skillset). Starting the path is usually more precise and concrete, but it becomes more specialized and unique as you find your skills and niche. Also, there’s a difference between landing a senior software engineering job and mastering the job. You’re expected to know a few things and contribute to the team at this stage. 

The actual “secret” to being a 10x developer is teaching and mentoring other developers. Show them what you’ve learned, and keep learning how to improve. When I find I am *the most brilliant" all-around developer, then it’s a probably good time to leave. Your skills will likely stagnate if you’re working on the same thing and not working with other developers who can’t teach you anything new. 

At this stage of your software engineer career, you should have a good handle on the following:

  • Knowing your core tools
  • Apply patterns over solutions 
  • Understand tradeoffs with technical debt, knowing when to go for maintainability vs. speed of delivery
  • Advocate and mentor others 
  • Connect the work to business impact

BEYOND THE SOFTWARE ENGINEER CAREER

This is where careers are less structured, and more of a choose your own adventure game. As they move beyond Senior Engineering, they have even more infinite sumo quests available. Perhaps they are working at an outstanding company and wish to expand your impact to move into Management, or you have an entrepreneurial itch to build a killer SaaS, or you love to teach in the tech space. Go check it out!