So you want to be a software developer.
Welcome to the club! It’s a fun and rewarding profession full of success and a healthy dose of failure. If you love puzzle solving and engineering solutions to real-world problems, this is the job for you. But how do you break into the industry if you don’t have much experience to your name?
The Junior/Senior Problem
Many companies have openings for software developers. We’re an in-demand resource in today’s business landscape. After all, software is eating the world as they say. The problem a lot of companies have is they’ve become convinced quality software can only be created by people with extensive formal training and many, many years of experience in the field. Consequently, in really any other market besides the biggest ones on each coast, you’ll find several openings for senior level developers, but jobs listed as junior or intermediate are usually few and far between. This is attributable partially to the supply of juniors over seniors, leading to more competition for those jobs. But I also think many companies overestimate how complex their needs are when it comes to app architecture. The bottom line is that much of the software written in modern companies is fairly utilitarian and mostly solves problems that have been solved before. The idea that it requires a senior level developer with 10 years of experience is just silly.
In addition, an immense amount of knowledge and skills transfer is necessary to keep the pipeline of viable developers healthy and that means continual investment in junior developers by more senior devs as well as the companies they work for. Why this isn’t apparent to more managers is baffling to me.
How can you combat this as a junior and get your foot in the door as a new developer to gain that critical experience everyone wants you to have? Here are some tips I’ve learned from mentoring juniors over the last several years.
Usually, your first point of contact with a company is through your resume. It’s unfortunate that you are initially judged based on a one-page document with shockingly brief descriptions of your experience, but that is the reality we have to deal with.
Because of this, and also because most people spend less than 60 seconds scanning an average resume, you’ll want to be very strategic with how you present yourself on that piece of paper.
Before you design your resume (and I recommend you treat it as an opportunity to design an experience for employers to learn about you), think about the kinds of jobs you want to attract with this document. You can present yourself in different lights (without being dishonest of course) and you’ll appear more or less desirable for any given position. Once you’ve determined how you want to frame your training and experience, be sure to showcase the most important and/or relevant items as prominently as possible. Remember, you’ve got less than 60 seconds to impress, so no beating around the bush. Put your most relevant info front and center.
Have a GitHub profile with repositories that showcase your skills as a web developer? Applying for a web developer position? Perfect. Place links to those repos on your resume.
Want to grab a position as an iOS developer and have a personal passion project in the App Store? Excellent! Give them the terms to find your app and put them on your resume.
Just graduate from a bootcamp where you spent several intense months learning and practicing with the platform you’re applying for? Wonderful! You know where it should go, right at the top.
The bottom line – mold your resume to the position or positions you are most interested in attracting. It’s likely you’ll be going after one kind of job for your first position, but don’t be afraid to morph your resume over time as you advance in your career. Your experience isn’t static, and neither should be the document that chronicles it.
Applying for a developer job can be a daunting task on its own. I’ve seen posts online of developers applying to hundreds of companies and only receiving a handful of responses. While this net-casting approach can work, it is very time consuming and will mostly lead to few responses.
A better approach is to try to find job listings that appear to be potentially a good fit, and then seek out contacts you may have (or friends-of-friends) to establish an inside connection within the company. It’s almost always easier to get someone from the inside to help bubble your application to the top of the pile. This whole process is about standing out from the crowd. Ask your acquaintance to help you get in contact with the hiring manager directly, maybe with an email introduction.
If you aren’t sure if you have a pre-existing connection with an insider at the company, you can use tools like LinkedIn to research current employees and find out if someone you know knows someone at the company. Cold outreach directly to a current employee could be perceived negatively, but working through someone you know can get you an introduction that’s more meaningful.
I may have said above that it’s a buyer’s market, but that doesn’t mean companies won’t be picky about whom they choose to bring in for an interview. Just because you don’t get a response immediately, that doesn’t mean the company isn’t necessarily interested. Remember, this relationship is very lopsided. To you they are one singular job opportunity. To them, you are one of maybe dozens or hundreds of applicants. So be sure to “stick out” in their minds. Don’t be afraid to email or contact them often during the application/interview process simply to remind them you are still here and are still interested. It’s very easy for a hiring manager to get overwhelmed and lose track of a given applicant. It may feel like you’re being annoyingly persistent, but from their perspective you’re simply staying top-of-mind.