Advice

How to Find a Promising Software Development Job from the Start

John Sonmez · Sep 19, 2016 · 22 min read

Every week, I get emails or comments on my YouTube videos from software developers—some of them quite experienced—who can’t seem to find a job.\n\nI have heard every kind of excuse or reason why they can’t get one.\n\nSome developers complain that the older developers have made it too difficult for younger developers to have a chance––that we’ve taken up all the good jobs.\n\nMeanwhile, some developers complain that no one wants to hire older developers and everyone is ageist.\n\nOthers complain that it has to do with their race, religion, or political affiliation.\n\nStill others complain that their skill set is useless, and no one wants to hire a developer who doesn’t have experience with the latest and greatest technology.\n\nWhile some of these arguments may be true—and, yes, discrimination occurs—the underlying cause is that these software developers don’t know how to get a job.\n\nAt the time of writing this book, there is a huge demand for software developers, yet so many positions go unfilled.\n\nMany software developers complain about not being able to land a job.\n\nHow can this be?\n\nHow can it be that there are so many vacancies in our industry, yet frequently developers will tell me they have applied for hundreds of jobs and have been rejected by all of them?\n\nThe problem lies in not knowing the right way to find a programming job, and I think it’s an easy one to solve.\n\nIn this chapter, I’m going to give you the best tips and tricks I’ve learned on how to help software developers get jobs.\n\n

The Cookie-Cutter Approach

\n\nCookie Coach Approach\n\nI’ll be upfront with you on this one: I don’t like the cookie-cutter approach.\n\nI really don’t like the normal way of finding a job because it requires so much wasted effort, and it rarely leads to the best results.\n\nHowever, rather than just skipping to my preferred way of finding a job, I’m going to go over the standard approach of creating a resume, filling out an online application, and submitting your resume that most software developers—and most professionals in general—do.\n\nThe reason I’m going to start here is that so many software developers are doing this so wrong.\n\nI’ve heard countless stories of developers blasting out hundreds of resumes in a single day to every single job posting they could find on Monster.com and wondering why they aren’t getting any results.\n\nIf you are going to take the standard, cookie-cutter approach, you should at least be doing it right.\n\nI’m going to show you how.\n\n

It’s a Numbers Game

\n\nFirst of all, you have to understand that the whole process of blindly applying for jobs, the way most people do, is purely a numbers game.\n\nIt’s just like sales.\n\nIn fact, you should really treat the whole thing like a sales process.\n\nCreate a sales pipeline and perhaps even use a CRM system like many sales organizations do to track your prospects through the pipeline.\n\nYou’ll have something that looks like this:\n\nJobs applied for > Responses received > Telephone screens > Interviews > Offers\n\nAt each stage of the pipe, you should expect only a small number of prospects to make it to the next stage.\n\nFor example, suppose you apply for 100 jobs.\n\nPerhaps you’ll get 30 responses following up with you in some way.\n\nOut of those 30, perhaps seven will ask you to do a telephone screen.\n\nOut of those seven, perhaps two or three will ask you to come in to do an actual interview.\n\nAnd perhaps you’ll get one job offer out of all that work.\n\nIf you want more job offers, you can essentially do two things:job-funnel-1\n\n

    \n

  1. Put more prospects into the pipe (apply for more jobs).
  2. \n

  3. Increase the percentage of prospects that make it from one stage of the pipeline to the other.
  4. \n

\n\nIn other words, you could apply for 1,000 jobs and then get 10 offers, or you could apply for the same 100 jobs and perform better along each step of the way that you also get 10 offers out of it.\n\nTo recap, it’s either more prospects in the pipe or better flow through the pipe. That’s it.\n\nIf you want the best results, you do both.\n\nHow is it, then, that so many developers tell me they’ve applied for hundreds or thousands of jobs and still received zero offers?\n\nWell, there is some luck involved, but most likely it’s one of two things:\n\n

    \n

  • They are lying, or rather, grossly overestimating the actual number of jobs they applied for.
  • \n

  • They really suck at applying for jobs. Their percentages of prospects moving from each segment of the pipe is really, really low.
  • \n

\n\nMost likely, it’s both.\n\nBut have no fear. I’m going to show you how to increase both effectively.\n\n

Have a Good Resume

\n\nFirst of all, if you are going to be playing the numbers game, you want to have the highest number of prospects making it to the next level of the pipe as possible.\n\nOne of the best ways to do this is to have a really good resume.\n\nIf your resume is crap and you get filtered out at the first step, you are going to be wasting a large amount of time, and your overall pipeline is going to be extremely inefficient.\n\nYes, a really crappy resume might eventually get you a job, but the worse your resume is, the more jobs you are going to have to apply for in order for the numbers game to work out.\n\nI don’t know about you, but I’d rather apply for 50 jobs than 5,000 jobs.\n\nOne of the first things you should do is to get your resume as polished and effective as possible.\n\nI know some people still disagree with me on this topic, but I’m 100 percent convinced the best way to do this is by hiring a professional resume writer who specializes in technology industry resumes.\n\nYes, a professional resume writing service might cost you $500 or more, but in the end, that is going to be a small investment for the benefit you are going to get.\n\nI’m not going to go into the details here since the next chapter is all about resumes, but one of the best ways you can increase the effectiveness of your resume is to have it professionally written and formatted by an experienced resume writer who knows how to write resumes for software developers.\n\n

Create a Quota of Jobs to Apply For

\n\nquota system job applies\n\nNext, let’s tackle numbers.\n\nI like to use quotas to make sure progress is continually made.\n\nI am going to finish this book on time because I have a specific quota of writing at least 1,000 words a day and working on the book 50 minutes each day.\n\nYou should have a quota for the number of jobs you are going to apply for each day when you are actively looking for employment.\n\nWhat that number is will depend on what the job market is and how many jobs are available to you, but if you are currently out of work and you need to find a job, it should be at least five jobs a day.\n\nIt would not be ridiculous to try and apply for 10 jobs a day.\n\nFigure that each job you apply for will take you around an hour.\n\nWhat? An hour to click “apply?”\n\nNo, an hour because you are not just going to click apply. You are going to specifically apply for each job by writing a custom cover letter and altering your resume to better match each job.\n\nIs this a large amount of work?\n\nYou bet it is!\n\nIs it effective?\n\nHell yes!\n\nRemember, not only do we want to increase the number of prospects in the pipe, but we also want to increase the chances of each prospect moving from one stage to the next.\n\nSo, if you only click “apply” on Monster or some other job site, you’ll be able to apply for a large number of jobs really quickly, but you’ll be sacrificing a large amount of effectiveness.\n\nAlso, consider how large the job market is, which is going to be predominantly based on your geographical region.\n\nIf there are 50 new jobs per month, you could do a sloppy job of applying for all 50 in one day, but then what would you do for the next week or two?\n\nSit on your hands and hope you get an interview?\n\nWouldn’t it be better to apply for five jobs a day but spend an hour or so on each application, greatly increasing the likelihood of success?\n\n

How to Apply for Jobs

\n\nJob Search\n\nWhen you apply for a job, your goal should be to make your resume and cover letter match the job description and any other information you can gather about the company as much as possible.\n\nThe idea is that, when the hiring manager or person reviewing the job applications looks at what you submitted, they are stunned by how perfect of a match you are.\n\nThis doesn’t mean you lie or make things up to put on your resume or in your cover letter.\n\nInstead, you should try to take your existing experience and highlight the most relevant parts that match the job description, remove the irrelevant parts (or minimize them), and use some of the words or phrasings that are used in the job description.\n\nBe careful here; you don’t want to just parrot back everything in the job description, because then it will be obvious that you just made everything you submitted match exactly what they wanted.\n\nThat being said, you should match as closely as you can without seeming too obvious.\n\nTake a careful look at the job description, and get a feel for what the most important skills and characteristics are being looked for in the job.\n\nModify the ordering and emphasis on your resume to reflect back these points and to show yourself in the best light possible.\n\nRephrase job descriptions and accomplishments in a way that best shows their transferability to the new job.\n\nDo a little bit of research on the company as well and write up a cover letter that sells the hiring manager on why you are specifically the best applicant for the job. Mention something that only someone who actually did some research on the company would know.\n\nIn the cover letter, you should be making a clear connection between the skills being requested for the job and how your experience is relevant and makes you the perfect match.\n\nYes, this is a large amount of extra work.\n\nIt’s going to take extra effort.\n\nYou are going to have to have several versions of your resume, and each job you apply for will be a further variation of those variations.\n\nBut… if you are really serious about getting a job, and you want to stand out, this is what you have to do.\n\nIt’s easy to click a button and apply for 500 jobs with the same resume and cover letter—that is the lazy thing to do.\n\n

Measure Results

\n\nOne thing you’ll want to do as you are applying for jobs in this manner is to measure your results.\n\nYou should keep track of how many jobs you applied for; what days on which you applied; what response you got, if any; what version of your resume you used; and anything else that might be relevant to your job search.\n\nWhat you want to do is to have some solid data, so you can see what is and what is not working.\n\nThink of a job search like an advertising campaign.\n\nYou have to test various advertisements to see which ones get the best responses.\n\nI’ll often have developers whom I am coaching track the results from the original version of their resume and then track the results they get once they have it professionally written.\n\nOftentimes, they’ll see a 300 percent or more improvement in the response rate they get from job applications using the new resume.\n\nYou need to have this kind of data so that you can alter your plan.\n\n

Alter Your PlanPlanning

\n\nMeasuring things is pointless if it doesn’t result in you taking action.\n\nAs you are getting back data about how effective your current version of your resume is, the way you are writing your cover letter, or anything else that’s relevant, you should be using that data to alter your plan and try new approaches.\n\nTest out a new version of your resume.\n\nPerhaps test a different layout or formatting.\n\nMaybe test using a chronological resume instead of a functional one or vice-versa.\n\nMany software developers trying to get a job who complain to me that they’ve applied for hundreds of jobs knew they weren’t getting any results after applying for 50 jobs, yet they still used the exact same resume and cover letter for the next 100 jobs they applied for.\n\nTo me, this is straight up lunacy.\n\nHow can you do the same thing over and over and expect to get different results?\n\nIt makes no sense.\n\nSo, get feedback from what you are doing and alter your plan until you start seeing results.\n\nPerhaps stick to the same plan for a week and then at the end of the week, go back and look at all the data you have and then decide what you are going to try differently the next week.\n\nIf you take this approach, you can almost be sure that you’ll eventually find a job.\n\nThe problem is most software developers don’t want to go through all this effort. They just want to complain and say that no one will hire them.\n\nDon’t let that be you.\n\n

Work Directly with a Recruiter

\n\nAnother more traditional tactic you can take to find a job is to work directly with one or more recruiters.\n\nI’ll talk more about how the recruiting industry works in an upcoming chapter, but as far as applying for jobs goes, a recruiter can be a big help—especially if you have marketable skills.\n\nIf you can find a good recruiter who has contacts at several different companies, they can help you to fix up your resume to match jobs they are recruiting for, and they can often help you to get an interview with one of their clients.\n\nHere is the thing to remember about most recruiters, though:\n\nRecruiters never want to look bad in front of a client.\n\nWhen working with a recruiter, you need to convince them you are not going to embarrass them by completely blowing an interview or showing yourself to not be technically competent or a liar.\n\nDo your best to project as much confidence as possible, and a recruiter is much more likely to get you placed with one of their good clients.\n\nTry to think about it from their position. Your performance, good or bad, is a reflection on them and can affect their own professional interests. If you don’t conduct yourself competently, a recruiter is unlikely to take a risk on you.\n\n

Thinking Outside the Box

\n\noutside-the-box\n\nOk, so everything we talked about so far is the traditional, cookie-cutter way to get a job, and it can work if you do it right, but it’s not the best way to either get a job or to get a good job paying a high salary.\n\nA majority of jobs—especially the good ones—are not advertised.\n\nDon’t believe me? Check out this Wall Street Journal article that says as many as 80 percent of jobs are not publically advertised.\n\nHow do you get one of those jobs?\n\nYou have to think outside the box.\n\nYou have to stop thinking that the only way to get a job is to look for a job posting and apply for it.\n\nYes, like I said, that method can get you a job, but there are perhaps a thousand other ways to get a job.\n\nDon’t be afraid to be creative.\n\nToo many people believe that the standard approach and “best practices” are the only ways to do things, but they aren’t.\n\nThere are no rules. There are only guidelines.\n\nIt’s up to you to decide how to best accomplish any task you set out to do, including finding a job.\n\nBelow, I’m going to give you a few ideas on how to “think outside the box” in terms of job searching, but it is in no way an exhaustive list.\n\nThe whole idea behind thinking outside the box is that you do things that aren’t orthodox and aren’t exactly what someone tells you to do.\n\nSo, if you are brave and willing to do what it takes, read on.\n\n

Build a Network

\n\nJob Network\n\nI’ve mentioned this already, and before this book is done, I’m sure I’ll mention it at least a dozen more times.\n\nBuild a network.\n\nOne of the most effective ways to get access to jobs that aren’t advertised is to know someone who knows someone who’s looking to fill a position. Have a reputation within your network that is so good that as soon as someone hears you are looking, they are jumping all over to try and pull you onto their team.\n\nThe only way this is going to happen is if you are willing to invest the time and resources in building a strong network.\n\nThere are two main ways that I know of to build a strong network.\n\n

\n\n

    \n

  • Give them lots of value.
  • \n

\n\nMost people try and build a network the wrong way.\n\nThey wait until they need a job or something else and then they start “meeting people.”\n\nAs soon as they meet someone, they start spewing all about themselves and how they are looking for a job.\n\nNo one cares what you want.\n\nI’ll say it again.\n\nNo one cares what you want.\n\nPeople only care about what they want.\n\nWhen you try and network by telling people about what you want, you are doing the opposite of making people like you; you are teaching them to avoid you.\n\nInstead, what you need to do is to meet plenty of people before you ever need anything from them, and when you do meet them, find out the best way you can serve them.\n\nWhat can you do for them?\n\nHow can you help or contribute to them and give them value?\n\nIf you do this, you will build a strong network, and you’ll never have to “look” for a job again—I promise.\n\nIt takes time, though.\n\nSo where do you start?\n\nWell, as a software developer, I’d be trying to attend as many meetups and software development groups as possible.\n\nIn any geographical area, there are plenty of weekly or monthly groups you can attend.\n\nYou will meet developers, recruiters, and managers, and make plenty of other great connections in places like these.\n\nFor an added bonus, offer to present to the group.\n\nYou’ll be able to build up a huge amount of credibility quickly if you offer presentations to the whole group that give them value.\n\nRemember, this is a slow process focused on giving value to others first.\n\nYou build a network by investing in it.\n\nYou have to sow before you can reap.\n\nIf you are patient and attend plenty of events in your community, you will eventually build a powerful network.\n\n

Specifically Target CompaniesVIsion

\n\nAnother major strategy you can employ for finding a job is to specifically target companies you want to work for instead of applying for jobs that companies are posting.\n\nThe difference is that you do some research and you find a company you would like to work for, or perhaps a few, and you put all your resources and energy into finding a way into that company.\n\nWhen I was really looking for a remote job as a developer—and there weren’t that many—I successfully applied this strategy.\n\nI found one particular company that I knew had a team of completely remote developers.\n\nI learned about the company.\n\nI learned who worked for the company.\n\nI started following the blogs of developers who worked for the company.\n\nI started commenting on their blogs and building relationships with these developers.\n\nThe next time they were looking to hire a developer, guess who multiple developers from that company recommended for the job?\n\nAnd guess who got the job?\n\nThere are many ways to apply this tactic. This a very general strategy.\n\nIn fact, I’ll give you some specific applications of it below.\n\nThe basic idea is that you pick out the company instead of the job, and you find ways to get into that company.\n\nIt might be by finding people you know who work for the company or making new connections to people working in the company.\n\nIt might be by offering that company something of value.\n\nIt might be by simply being so persistent that the hiring managers of that company learn your name and that you won’t give up.\n\nA coworker of my wife’s fervently wanted to work for a particular company in Boise, Idaho called Healthwise.\n\nFor two years, she applied for just about every single job they ever opened up.\n\nShe made friends with employees already working for the company.\n\nShe persistently followed up until they relented and eventually hired her.\n\nShe’s still working there.\n\n

Build Something Useful

\n\nBuild Something Useful\n\nOne great way to specifically target a company is to build something useful to them and use that to get their attention.\n\nI know several engineers who have been hired directly by companies because they built some kind of tool that used the software the company had built, or they specifically built a tool that they knew the company could use to do their job better.\n\nI’ve heard of designers getting hired because they redesigned a company’s website and sent them the new design for free.\n\nImagine if you took some popular software you were using, built a new feature or revamped it in some way to make it better, and then presented what you did to the company who built the software.\n\nNow, you’d have to add some real value and you’d have to not just be showing off, but if you created real value for them, for free, don’t you think they’d want to hire you?\n\nPlenty of people find something wrong with a popular website and then tell the company how they would improve it, but few people actually build a mock-up where they have actually implemented a solution to improve it.\n\n

Start at the Top

\n\nHere is a bit of a trick from sales: start at the top.\n\nWhen most developers reach out to a company to offer their services and try to get a job, they usually end up starting at the bottom.\n\nThey might contact HR or a development manager or even an individual software developer, all of whom might have little say over making a hiring decision—especially if there isn’t already a requisite for a job.\n\nInstead of starting at the bottom, try starting at the top.\n\nSee if you can find a way to get in contact with the CEO of the company or even the CTO or Director of Engineering.\n\nOne way to do this is to call a published number for the company and simply ask to speak to that person.\n\nDon’t say you are a job seeker looking for a job. Instead, say you have a unique opportunity you want to present to him or her, or say you have a business deal.\n\nIf you do get to speak to one of these “top dogs,” be confident and have a good pitch. Don’t just ask them for a job. Come up with something of value that you can give them and their company.\n\nAsk them if they could put you in touch with someone who you could follow up with to further discuss what you can do for their company.\n\nDoes this sound ludicrous? Insane, perhaps?\n\nYou might think this would never work, right?\n\nWell, that is the whole point of out-of-the-box thinking. So many people believe they have to start at the bottom or go in the front door.\n\nThere is no reason you can’t get an audience with a CEO or CTO of a company and have them refer you down to a hiring manager, saying, “I want this guy. Do you have a spot where we could get him in?”\n\nSuccessful enterprise salespeople use this technique all the time. There is no reason why you can’t as well.\n\n

Utilize Inbound Marketing

\n\nInbound Marketing\n\nThis is the drum I’m perhaps most famous for beating.\n\nI’ve put out a whole course on How to Market Yourself as a Software Developer that basically teaches you how to utilize inbound marketing to get jobs to come to you instead of you going out to look for them.\n\nI’ve successfully used this technique myself. In fact, the whole reason you are reading this book is because of the success I’ve had with this technique in my career.\n\nCountless opportunities have come my way. I’ve received hundreds of job offers, spoken at events all over the world, and drastically altered the course of my life because of inbound marketing.\n\nSo, what exactly is inbound marketing?\n\nSimple. It’s just creating content or some other kind of value that gets people to come to you instead of you going to them.\n\nAs a software developer, you can build a blog, make video tutorials, write books, write articles, appear on podcasts, and many other things to build a reputation, get your name out there, and get people—and opportunities—coming to you.\n\nSome people might call this the “get famous” approach, but you don’t have to be famous to make this work for you.\n\nAll you need is to be known for one particular thing in the field of software development.\n\nThe key is to pick some very specialized area of software development and become the expert in that area.\n\nThe smaller the area is, the easier it is for you to become number one, which should be your goal.\n\nOnce you’ve established this area of specialty, jobs will come to you. I guarantee it.\n\n

Interview the Interviewer

\n\nThis is another approach that gets you in via the backdoor and gets you right through the gatekeepers.\n\nOne great way to get yourself an opportunity where there might not be an open job at the time is to interview the interviewer.\n\nWith this technique, you are going to speak to a contact at a company that you want to get a job at, perhaps a development manager, a CTO, Director of Technology, or some other person who would have some kind of hiring decision ability.\n\nYou are going to tell this person you are researching information for either an article you are writing or you’d like to interview them for a podcast you are creating.\n\nYou could even say that you are recently getting into the field and you’d like to ask an experienced person about the profession.\n\nThe idea is to figure out some way you can get into the office and get a conversation with this person.\n\nMost people will gladly jump at the opportunity for free press or the chance to help an aspiring software developer learn more about the field.\n\nWhether you actually end up publishing the interview or not isn’t all that important—although I see no reason why you wouldn’t since someone else is giving you free, valuable content you can publish.\n\nAt this point, you are just planting a seed.\n\nNow you have someone in a company that you’d like to work for who knows who you are and probably likes you since people tend to like people who are interested in their favorite topic: themselves.\n\nIn a few weeks, months, or when a job happens to open up at that company, you can follow up.\n\nYou can also follow up if you publish their interview on your blog or podcast.\n\nIn fact, if you are going to apply this technique, why not interview the CTOs of all the top tech companies in your area?\n\nThen, you can make a roundup post of all the interviews, publish it on your blog, and benefit from some inbound marketing as well.\n\n

Be Persistent

\n\nFinally, I’m going to leave you with the same advice I left you with from the previous chapter: be persistent.\n\nToo many people give up way too fast because they don’t understand or believe in the power of persistence.\n\nYes, it’s possible to burn bridges by being too persistent and annoying.\n\nHowever, you have to go way further than you think to get to that point, and even then, you don’t really have that much to lose if you weren’t going to get the job anyway.\n\nDon’t get me wrong. I’m not saying to be overly pushy and that you can bully your way into a job.\n\nWhat you should be doing is constantly following up, changing your tactics, and pushing forward as hard as you can if you really want to get the best opportunities in life.\n\nDoors won’t always open for you. Sometimes you have to take a crowbar and pry the doors open.\n\nDon’t give up until you’ve tried all of these techniques—more than once.\n\n


\n\n

John Sonmez

John Sonmez

John Sonmez is the founder of Simple Programmer, author of "The Complete Software Developer's Career Guide" and "Soft Skills: The Software Developer's Life Manual." He helps software developers build remarkable careers.