How to Interview for a Software Development Job: Success in the Wild West

freeCodeCampfreeCodeCamp
8 min read

By Ryan Dawson

There are two big things I that I usually find missing in interviewing guides:

  1. Your chief aim as a candidate should be to make a connection and have a real conversation.
  2. You may not be given a good opportunity to make a connection.

There is no one formula for success in interviews because interviews are run like the Wild West. But you can maximize your chances.

How to Connect with Your Interviewer through Stories

Tech interview guides focus a lot on challenges, puzzles and tests. We should put more emphasis on the discussions to establish if you’re a fit for the role.

As a candidate it’s extremely valuable to be well prepared for the fit interview. It’s a chance to make a great impression at a personal level and not just as a test score.

A big part of this preparation is having stories that present the skills you want to present. Let’s consider examples of what this can look like.

Example Interview Question and Answer

Interviewer: Could you give me an example of something you worked on at company X?

Candidate: One of my favourite projects was a performance improvement project. I introduced a new library for mapping code entities to the database. I also introduced a benchmarking tool to measure the improvement. It showed a speed-up of 40% for some queries.

Interviewer: That's interesting, what did you enjoy particularly?

Candidate: I enjoyed seeing the difference it made to the user experience. I also liked that it was a well-defined task and it was rewarding to get it done. I can talk more about the challenges if you like?

Interviewer: Sure, what would you say was the biggest challenge on that piece of work?

Candidate: Well I knew which library I wanted to migrate to. But it wasn’t compatible with another library we were using. I saw that it would become compatible if we upgraded that other library. So I had to explain that and get agreement to do the upgrade. There were some code changes involved and one of the others was initially reluctant. I convinced them by doing a small PoC to show that the changes weren’t that big.

Preparing stories that answer the first question in this exchange is good preparation. But the big value is in the follow-on conversation. That’s where the interviewer really gets to see your problem-solving skills. And in this case, also your teamwork skills.

You don’t want to just aim to be telling stories. You want to be bringing the interviewer with you through your accomplishments. Those accomplishments don’t make sense unless you reveal what was difficult about them.

Sharing your experience effectively is even more important for more senior roles.

Interviewer: What was the best thing you did at company X?

Candidate: I led the implementation of a new feature to generate business insight reports. It was very well received and helped lead to doubling of sales.

Interviewer: How did you ensure the reports offered the insights the business was looking for?

Candidate: It took a couple of iterations to get them right. We agreed on initial specs but they were a bit rough and the business wasn't very clear from the beginning. In the second iteration they got more excited and could guide us more clearly.

Interviewer: Why do you think the business wasn't excited until the second iteration?

Candidate: I think the mockups we'd done for the first didn't feel real to them. We'd mocked the data and they needed to see it with some of the real records to see the value they could get from it.

Here the initial story doesn’t demonstrate much. It asserts an achievement but it doesn’t demonstrate. The answers to the follow-ups show an appreciation of stakeholder management and requirements solicitation. Getting a flow of conversation going like this also helps the interviewer to relate.

Both of these example exchanges do well at making a connection. The answers get to the point and are explained so that the interviewer can understand them. They tell stories of overcoming challenges. They show appreciation of tricky problems as well as good collaboration skills.

Have stories prepared that show off your experience. Be prepared to answer questions like “tell me about a time when…” If you’re well prepared you’ll look forward to these questions. They can lead to good discussions.

Get to Know the Company

Your conversations will be more productive if you tailor them to the company and the role. Look at what the company does and what tech they use.

When you know a little about the company, think about which stories you’d like to emphasise. Which of your experiences would be most relevant to this role?

The job ad likely says which skills are must-haves and how much experience they’re looking for. It’s ok to not match it perfectly. Think about where you are a strong fit and emphasise that. Acknowledge your limitations and stress that you’d be keen to learn to fill the gaps.

You’re more likely to get favourable questions if you tailor your CV to the job ad. This need not be a lot of work. It could just be re-ordering so that the most relevant skills and experiences feature more prominently.

How to Connect with Your Interviewer through Thinking

Of course it’s not all about stories. The tech skills are crucial. But the technical evaluations are not just a chance to demonstrate tech skills. They’re also a chance to relate personally.

Don’t treat the tech parts as simply a test of knowledge. They should be tests of reasoning.

Take every opportunity to reveal your thinking. Say why you chose one approach rather than another. Say what you like about a technology and what you’ve found awkward.

It is usually ok to not know an answer. Share your thoughts and be interested in how to get to the right answer, if there is one.

Expect to be challenged on exactly how far your knowledge and experience goes. Maybe you don’t have experience using technology X for millions of transactions. Acknowledge that. Talk about what scale you have dealt with and how you would scale higher.

Sometimes you’ll get ‘gotcha’ questions. Questions where the interviewer really wants some obscure piece of knowledge you don’t have. Try to turn them into conversations.

You want to show that you are flexible and that you’re someone the interviewer could work with. That involves being humble about what you don’t know. Try to show that you could go on learning journeys together.

You should be prepared to be challenged with coding exercises. Look up what you can about how the company hires. It’s ok to ask them what to expect in the process.

How to Achieve your Goals

“We do not learn from experience… we learn from reflecting on experience.” - John Dewey, Philosopher

Interview prep takes time. Getting your stories prepared has to compete for time with technical preparation. You’ll want to tailor this to the company.

The key point is not about what prep to do. It’s about how to approach the interview.

Making a connection maximises our chances. Even if we make mistakes in the process, the interviewer is more likely to be generous to us if they relate to our experience and thinking.

The process of thinking about what we want to emphasise is also a good growth exercise. It forces us to consider which of our skills are most marketable. And also what we most enjoy.

We’ve a better chance of landing a role if we can explain how it would fit into our personal growth story. We want to be clear what attracts us to the role and how we’d grow with it.

The interviewer will likely ask us why we’re interested in the role. We should have a compelling answer, both for the interviewer and for ourselves.

Interviews are the Wild West

Candidates tend to assume interviewers have everything together. We assume that it’s a great company with a great interview process. So obviously if the interview goes badly it must be our fault?

Even in great companies you get messy hiring situations.

There may be multiple people in the hiring process and they may disagree on what they want. You may get one interviewer open to more junior candidates with an aptitude to learn. And another interviewer who wants all the relevant skills right away.

The interviewer should be trying to have a conversation with you. They should be trying to see how you approach problems and whether you’re somebody they could work with.

Unfortunately the interviewer might not be looking for conversation. They may be rushed or having a bad day. They may have limited thinking space.

Rarely is anyone trained in interviewing. Some people seem strangely ok with making interviews an exercise in ticking boxes. Or a kind of chess game to find faults.

The most common weakness in interviewers is being under-prepared and rushed. This leads to a passive approach to interviewing where the interviewer basically sits back and waits for you to impress them.

Tell stories about good work that you’re proud of. Stories about overcoming obstacles and making trade-offs. Try to relate the stories to what you know about the role. Where you’re not sure how your experience relates to the role, drop in the odd question to show how interested you are.

How to Succeed in the Wild West of Software Interviews

Think about what the interviewer is looking for. Which skills are must-haves and how much experience they want. Even ask them.

Have stories prepared and think about how to relate them to the role. Use your CV so that it prompts the questions you want. Stories aren’t the whole interview process but they are typically the centrepiece.

Have questions prepared to show how interested you are. Really try to imagine what you’d be doing day to day.

Think about how relatable each of your stories are. Make sure you tell them in a way that doesn’t require too much insider language or context.

The way to succeed in the Wild West of interviews is not to be an awesome gunslinger. It’s by being awesome at making new friends.

0
Subscribe to my newsletter

Read articles from freeCodeCamp directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

freeCodeCamp
freeCodeCamp

Learn to code. Build projects. Earn certifications—All for free.