I have done a a lot of hiring over the last couple of years, mostly trying to filter through a flood of great engineers who want to solve the testing problem while working on the high visibility open source cypress-io/cypress project. In this blog post I will try to suggest a few things you might do when applying to a software role that would make the hiring manager more likely to say "Yes" to your application.
Do not tailor your resume, write a cover letter instead
Do you want to stand out from the pack? Write a cover letter explaining who you are, why you want to work at the company you are applying at, and what you could contribute to the company's success. That's it - you are already ahead of 90% of the applicants. Yes. Only about 1 in 10 candidates took time to write a cover letter.
The ones that do write the cover letter are standing out. Literally, to the point where we would exchange emails inside Cypress "Have you see this application? They wrote a great argument why they want to work at Cypress!" On the other hand, there were very few times when we exchanged any excited emails about people applying based solely on their resumes.
You do not have to write much, anything longer than one full paragraph is probably too much, unless you are a great and engaging writer. Tell me who you are, what successful projects you have accomplished, why you are applying to work at this company, and what you find exciting about the role. If you struggle to get started with the letter, take a break and research the company again. See how the open role matches your experience, write a couple of paragraphs, then sleep on it, and the next day edit the writing down to a single powerful paragraph.
Some people tailor their resumes to the job they are applying to. I think a cover letter is a better investment of your time - and having a single resume is probably easier to keep in sync with the LinkedIn profile, and other online resources.
Please, if you have your personal site, or GitHub profile, or your personal blog, or the Twitter profile where you are active - put all these urls into your resume. Sometimes the online application systems allow you to enter any additional URLs you want to have with your application. These URLs get easily lost. No recruitment system I used made any sense with respect to those URLs, but if you have
personal site: https://gleb.dev on your resume, everyone reading your application will browse there.
Speaking of personal sites and blogs. Please make sure they are working, and hopefully up-to-date. There is something disappointing when reading
https://my-awesome-profile.com in the application, and clicking on the link just to get
404 Not Found error. Same with your personal blog: if the last entry is from 2016, I would not bother including it. Or maybe add a note to the blog explaining why you stopped writing? Any reason would do: lack of time, company policy, etc - all is fine.
Show achievements on your resume
I do not care about a long bullet list with "Used React.js, Node.js, Excel" in every job you had. Instead my ears perk up when I see "cut deployment times by 2 hours" and "developed and deployed web app that supports 1000s of field agents". Show the benefits and impact of your work, rather than listing tech stack. You can mention tech stack of course, but just as a detail. Take a look at my resume. Does the below line help the hiring manager make a decision to email me to set up an interview? I think so.
Oct 2008 - Sept 2012 Senior researcher, EveryScape Inc
Who does not want an employee who cuts unit costs 10x?
In a related piece of advice: if you have any professional achievements, certificates, awards - make sure to list them separately in the resume, for example following the list of jobs you had. Give this section a title like "Professional Awards" - anyone looking over your resume should not miss these achievements.
Apply through someone you know
Yes. It is unfair. But applications that arrive through a current employee are so much likelier to receive an expedited and friendly reaction! Here is the secret though: you do NOT have to actually be a close acquaintance to use the "inside" track. For example, I have hired people who helped maintain my open source projects. I have put a good word for people who have done the open source projects I have used myself, just because they reached out to me asking about the open position.
If you start an online connection with someone at the company, and are not obviously demanding to be hired, I believe many people would agree to recommend you, or answer questions about the open position. Again, the conference circuit, the meetup scene, and the open-source world are a great source of mutual connections to explore.
There is one thing where the inside track breaks down in my opinion. If the company pays the referral fee for new hires, all bets are off. In that case, I am not sure if someone's recommendation is really because the candidate would be great to work with, or if it is made just to collect the fee. Money rules everything around me, but breaks the trust.
Applying without much experience
You can definitely apply to a programming job without computer science degree, or even with no college degree at all. I have described what you need to do in this case in Don't help me say No blog post. To summarize quickly here: when applying to work on topic X, prepare your own public projects showing that you can do the tasks, and write up your own understanding of that topic X.
Which goes to the next advice:
Show me that you understand the field
Not that you can code quickly.
Here is the thing. We live in a world where the software is "eating" every industry. Companies that can code manual tasks in finance, medicine, entertainment, transportation, even agriculture, etc. are winning big. On the other hand, "out of the box" platforms make individual programmers extremely effective: want to spin an e-commerce store? Grab the Next.js e-commerce solution. Want to run multiple online APIs and web apps? Set them up in minutes using AWS, Heroku, etc. You do not need a lot of coders to move fast.
The best technology companies are NOT the ones that set up and maintain their Jenkins CI pipelines, but the ones that better solve the customer's problems in the industry X using off-the-shelf software and 3rd party services. Thus if I hire developers for company that works on software testing, I would gladly hire a developer who can discuss this topic with knowledge, experience, and (hopefully) passion.
I want every developer to work as the CTO one day, and the currently used technology or library to code the solution is just an implementation detail. If you want to stand out from the crowd - the blog posts, meetup presentations, and conference talks about problems relevant to the industry are a huge green light.
This suggestion simplifies reaching out to you to set up the initial interview. Rather than playing email game of "would day X at time Y work for you?" just create a Calendly or similar scheduling calendar and include in your resume and application. Then the hiring manager can pick a time that works for both of them without much hassle.
Since this is the very first time (possibly) that the company is reaching out to you, removing any awkwardness is a benefit, plus it shows that you are well prepared and organized.