10 Tips to CRUSH Your Software Engineer Job Interview
There isn’t a large amount of advice out there on developer job interviews.
I’ve found that many talented people who became developers have difficulty with job interviews, because they spend more of their time focusing on what they are truly passionate about, technology and development, and not much time prepping their interview skills.
It’s unfortunate, because having good job interview skills can really help you advance your career by giving you opportunities you wouldn’t be able to get without being skilled in this area
1. Hire an expert to create your resume
I’ve mentioned this idea before, but it is so important that I’ll say it again. Unless you write resumes for a living, you are not a professional resume writer.
There are people who write resumes for a living and those professional resume writers probably don’t try and write their own software to use on their computer.
So, if resume writers don’t write software, why would software developers try and write resumes?
Perhaps you can do a good job, but chances are a professional can do a better job.
My advice, if you want to get the largest number of possible opportunities for a job, bite the bullet and pay the dollars to have your resume written professionally. It is a relatively small investment for the potential gain of landing a much better job based on the large number of opportunities you are likely to have.
2. Research your interviewer
I’m always amazed when I conduct a developer interview and I’ve sent an email out to the developer I am interviewing ahead of time, which had my full name and my blog address, yet when I speak to them in the interview they seem to know nothing about me.
On the other hand, I’ve had interviews where I’ve interviewed someone and they worked into the interview a mention of a blog post I had written or a course of mine they had watched on Pluralsight.
Guess which developer I was more likely to recommend for a job?
We are all human, we like to know that someone is interested in us. Dale Carnegie taught me the easiest way to get someone interested in you is to show a genuine interest in them. (Yes, I’m recommending this book again for like the 8th time, and yes, that is an Amazon affiliate link.)
Whether this is fair and objective is besides the point. If you are interviewing for a job, it is just ludicrous not to research the company you are interviewing at and the interviewer, (if you know who it will be,) ahead of time.
Today it is easier than ever to find someone’s Facebook page, Twitter handle or blog. You can learn quite a bit with just a little bit of research and it shows that you actually are detail-oriented and care about your career.
3. Get an inside referral
Want to know the absolute easiest way to get a job? Get an inside referral.
Yeah, that’s right, it makes that much of an impact!
It isn’t even very difficult to do, if you are willing to plant a few seeds ahead of time to make sure there are plenty of apples on the tree, when you need to pick one.
A while back I found a company I wanted to work for. So, what did I do?
Well, I found a developer at that company that I felt had some common thoughts and ideas as my own and I started following his blog.
I commented on his blog and showed an interest in his work and the company he was working for, and eventually I had an opportunity from that situation to get an inside referral.
Many developers say, “well, I don’t know anyone in XYZ corp.” Ok, fine if you want to give up there, go ahead, but I bet, if you try, you can find a way to meet and befriend someone in just about any company.
But the secret is, you have to network before you need a job, so start doing it now!
4. Learn to solve algorithm based problems
I’ve got a 6 step process I use to solve algorithm based problems that often come up in developer interviews.
It is an important skill that every developer should have and it isn’t really that difficult to learn.
Many touch job interviews include 1 or more questions where you are asked to solve some programming problem, either on a whiteboard or at a computer, yet many developers, who are otherwise great programmers, become completely paralyzed when asked to do so and flub it.
If you take the time to learn how to solve these kinds of problems, you’ll easily put yourself in the top 10% of developers who interview for most jobs and you’ll be much less nervous about being asked to solve a problem on the spot.
The reason why we get nervous has nothing to do with performance anxiety, it has everything to do with familiarity and confidence in solving these types of problems.
For example, if someone asked you to do 10 jumping jacks, you probably wouldn’t get all nervous and flail around… why? Because you are confident you can do it.
Build your confidence in this area and you won’t be nervous either.
5. Answer questions with passion
One word answer to questions or one sentence textbook definitions may technically be correct, but if that is all you do, you are missing an opportunity to showcase one of the greatest assets a developer can bring to a team—passion.
If I ask you what polymorphism is, I am not just asking to find out if you can read a textbook and memorize a definition to repeat back to me later. I am trying to find out what you think about polymorphism. I want you to expound upon the subject and use it as an opportunity to have a conversation.
Now, not all interviewers think the same way, and you have to be a little cognizant of when it is time to shut-up, but the point is you should try and show some passion in your answers and expound upon them if possible.
6. Avoid “trap” questions
Why are you looking for a new opportunity?
Name your greatest strength and your greatest weakness.
What was the result the last time you and a coworker disagreed on a technical issue?
You should really know how you are going to answer these types of questions before you are asked them and what the interviewer is looking for when asking these questions.
I’ve got some recommendations on exactly how to answer these questions in my course, but you should at least consider these kinds of questions ahead of time and reason through some of the possible answers you can give.
For example, if we look at just that first question about why you are looking for a new opportunity…
In many cases interviewers are trying to find out if you are going to bad mouth your current or previous employers. It is a sure sign you will do the same to them, so don’t do it.
If you don’t think about this ahead of time, you can easily fall into the trap of saying something negative about your current job and severely hurting your chances of landing that new job.
7. Don’t ever lie!
One of the worst things to do in an interview is to lie.
If you don’t know something, don’t make up an answer. Don’t pretend like you worked with some technology if you haven’t or make up some story of how you used something in your last job.
Instead, either say, that you don’t know or that you aren’t 100% sure, but you can try and give an answer based on what you think. It also doesn’t hurt to follow up by asking the interviewer what the correct answer is, because you are genuinely interested.
There is a good chance whatever an interviewer is going to ask you about is something they are familiar with, because they don’t want to look like an idiot if you start talking about the subject. For that reason, even if you consider yourself a good BS’er, most of your BS will be instantly detected and you'll immediately lose your integrity, which is very hard to ever gain back.
8. Don’t ever be brutally honest
Many developers go overboard the other direction and reveal too many personal details about themselves, thinking that honesty and complete transparency is the best policy.
While you shouldn’t lie, you also shouldn’t spill all the messy details of your life and all your personal flaws to your interviewer either.
People are drawn in by a bit of mystery and generally don’t like to gamble on whether or not your OCD or obsession with World of Warcraft will cause you to be a flop at your job.
Personality is good, character flaws are bad.
Don’t ever lie, but don’t volunteer up information that is going to paint you in a bad light. Not only will that information likely hurt you, but it also shows a lack of judgment as well.
9. Know your computer science basics
I also cover this in my Job Interview course, because it is so important and can be learned in less than an hour.
Yes, so many developers claim that they don’t know what linked lists and stacks are, because they don’t have a formal education in computer science or it was too long ago when they graduated college.
I agree that we don’t use deep computer science concepts in most programming jobs, but as a professional software developer, you should at least know the basics.
I seriously doubt you’d want an electrician to rewire your house, if that electrician didn’t know anything about the basics of electrical engineering, so don’t assume that someone wants to hire someone who can code, but doesn’t understand the fundamentals of their profession.
You don’t have to be a computer science professor, but you should at least know the basics that I am sure can be taught in an hour, because I do so in my Job Interview course.
10. Build experience creatively
Last but not least, many developers, especially developers starting out or moving from another career field, lack relevant work experience and have no idea how to get it.
How do you get experience if you don’t have any?
The answer is to be creative. There are many ways to get experience that doesn’t involve working directly for a company as a software developer.
Here are just a few ideas:
- Join an open source project
- Start an open source project
- Build a mobile app and put it in the app store
- Build a small web app
- Start a blog
- Present at code camps or other user groups
There are many ways you can get experience that will look good on your resume and give employers confidence in hiring you, you just may have to be a little creative.
Hopefully you’ve found these tips helpful. I’ve found that there isn’t a large amount of good information out there for developers looking for good job interview advice, so I actually ended up creating a Pluralsight course on the subject, which you should check out if you want to find more about the tips I mention here.
If you are astute, you may be thinking to yourself, ah, that John Sonmez character writes a blog post to secretly promote his Pluralsight video, pretending to give free advice.
Well, I definitely got the idea to write this blog post to help promote my Pluralsight video, because, hey that is what I do, I make Pluralsight videos— but I hope that you found these tips themselves to be useful as well.
If you do have the skills but you just aren't seeing the success you deserve in your career, then do check out our Simple Programmer course “How to Market Yourself as a Software Developer”.