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:
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:
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:
Types of Interviews to be expected
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:
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.
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.
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:
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!