Resume & Interview Do's and Don'ts

post header

In my current role as a senior software developer/team lead I get to look over a lot of resumes - from interns, to junior coders right up to very experienced developers. Over time you see a few repeating patterns that you really wish you wouldn’t. Most of them are pretty minor in the scheme of things, but when you’re looking at dozens of resumes and you’re looking for ways to narrow the selection pool why put yourself in the reject pile?!

Disclaimer: I know my Do’s and Don’ts won’t apply to every interviewer/interviewee but these are the things I notice and look for. Also, I’m not professing that I do all of these things right all the time (for shame! hypocrite!) but I’m often the one doing the interviews, so I have the luxury of not needing to.

Don’t: Send .doc(x)

Not everyone has MS Office especially in a startup where the cost can be prohibitive and GSuite is the norm. PDF is near-universal these days and renders in browsers without plugins (most of the time). Even Word can export to .pdf so you have no excuse!

Caveat: if it’s a large company or not developer-focused then using a Word format might be an ok (or necessary) choice.

Don’t: Oversell your capabilities

This is mostly for students/interns who are still quite new to programming. Coming from any college/university program and professing that you have mastered object-oriented design or have experience in all areas of software development/testing …etc. is just a bit silly and will cause me to look at the rest of your resume with a bit of an unfair lens. Key takeaway, don’t undersell your capabilities but don’t be unrealistic either!

Do: Keep your resume concise/short

I’m usually going through many resumes at a given time and I don’t have time to look through 7 pages of project and work history. Try to tell me what you’ve done succinctly and efficiently.

Do: Use a spell checker

Unless you’re using a typewriter, and sending your resume in by mail, then you have access to a decent spell checker (maybe even grammar), please use it!

Note: I recognize English is not everyone’s first language so I definitely take that into consideration. I would not exclude a good candidate just because there was a spelling or grammatical error.

Do: Have an online presence

This can be a point of contention but if you don’t have much experience or solid references one of the best ways to show that you know what you’re doing is to have code available online - github, gitlab, bitbucket there are lots of (free) options. And just having an account with repos from school assignments and forks of other people’s code doesn’t help much. I’d much rather look at a profile that has a single personal project, with a proper readme.md and code that’s formatted consistently (and works!) then dozens of the above-mentioned repos. For bonus points, throw in some CI/CD and automated-testing if you really want to impress me! Quality over quantity folks!

Do: Have an online presence (part deux)

Have a decent website (Github Pages is free and hosts this site!). Have a reasonably complete LinkedIn profile. You don’t have to be posting every day but it does lend some credibility to you and your capabilities and interests - make it so I want to learn more about you. If software development is going to be your career, I want to see that you’ve put more than a couple minutes into these things.

Do: Have an online presence (the third)

After doing all of the above, please be sure to include links to the actual repos, profiles and websites on your resume and/or cover letter - don’t make me search for them! It may seem obvious, but I’ve seen people talk about cool projects and then not provide a link or way for me to find out more - don’t be that person.

Don’t: Commit files/folders/libraries that you shouldn’t

To go along with the recommendations above, please don’t commit unnecessary build files to your repo like your node_modules folder or your .class files. Have a script that puts your output into a folder that’s not committed and don’t commit all those libraries and test files - use your .gitignore file! (Caveat: unless you’re doing it on purpose for a serverless setup or something). On a similar note, maybe think about the content of your commit messages on public repositories - you never know who might be reading those one day.

Do: Network (the human interaction type)

This is a little outside the resume/interview process but being involved in your local developer community is a great way to make yourself known, get a foot in the door, and help you learn about what tools & technologies are in demand. I know there’s a pandemic going on right now and in-person meetups are not really a thing we can safely do, but online communities can be a great source of knowledge and opportunities and lead to relationships that pay dividends during your career.

Do: Lead the conversation

I have a set of questions that I tend to ask - it’s written down, I refer to it when I need to. However, I would much rather if you were to ask me questions and/or lead the conversation. Asking questions about the position and problems the team or product are experiencing is great way to direct the conversation a bit. I know not everyone in tech is an outgoing, Type A individual (I certainly am not) but if you’ve got interests or experience, leverage that knowledge. I’m happy to go off-script and to be the one asking you questions, in areas that you’re a subject-matter expert in, because I want you to impress me.

Do: Differentiate yourself

For young devs and interns, it’s important to know that the above points can make all the difference. Your formal education is great but it’s going to be the same as 90% of the other applicants - same program, same course projects. How you set yourself apart from the rest of the pack matters!

Don’t: Get discouraged

The hard truth is that there are usually a lot more interested candidates than open positions (especially for an intern role). So even after following all of the above steps, there’s no guarantee that you’ll be the one to get the job but don’t let that discourage you. Tenacity, grit, determination and perseverance are important life and job-hunting skills so take the knowledge from each step and apply it going forward. Being a life-long learner is one of the best assets a person in software can have!

In conclusion

I’m sure there are lots of other topics I could have covered here (like “Don’t be a jerk/bad person” which I hope is obvious!) but these are the ones that have stood out to me and others developers that I’ve spoken with. I hope you take away something useful out of this post and maybe it even helps you get your foot in the door or land a job!