This is part of a series on my experiences and learnings after conducting 750+ interviews and reviewing 10,000+ more over the course of five years. From both the candidate and interviewer sides of the table.


Admittedly, out of the posts in this series on hiring, trying to define “cultural fit,” what its problems are, and how to address them is the least clear and most subjective topic . Which feels like the inherent problem with the concept of cultural fit. So what do we do about it?

The problem with cultural fit is that it’s generally used as a catch-all for a reason to reject a candidate for no specific reason. It’s natural to only want to hire a candidate that will work well with the rest of the team. After all, a brilliant programmer that creates a toxic working environment is still a bad hire. But what do we look for? For a team with a homogeneous culture you may be looking for candidates that went to a top CS school. Or are veterans of Google, Microsoft, Amazon, or Apple. For a startup it may be an early employee at a unicorn. Essentially, seeking merit and status rather than looking at the candidate’s actual skills. Or worse, it could be because of their ethnicity or gender. All of these are not valid reasons to reject a candidate, and possibly illegal as well.

Out of all of the times I’ve heard cultural fit mentioned I’ve never heard anyone define what they believe it is. Let’s first try to define what cultural fit is. If there is such a thing as cultural fit it should be able to be objectively quantified. For example, it’s perfectly valid to reject a candidate that doesn’t believe in code reviews when your team has a strong code review culture. Or maybe the candidate demonstrates apathy towards writing comprehensive tests when your team places a large amount of weight on tests. Maybe the candidate wants to work remotely when the rest of the team focuses on an in-person culture. There are a plethora of different software development methodologies out there and while you can argue for or against them, you can’t point to one and say “this one is correct.”

With that, when I hear a candidate was rejected for cultural fit reasons I think of a difference of opinion in software development methodologies and concerns about adapting to the one your team uses. This is generally a rare occurrence, however. Most engineers are happy to adopt the workflows that a team uses rather than trying to upend everything. Sure, there are the occasional non-team players out there, but those people are usually filtered out by other means when communication breaks down in the interview or with enough yellow communication flags raised during the hiring process.

Let’s assume that a candidate is a strong programmer, is closely aligned on software development practices, and is familiar with your stack; basically everything you want to hire for. But then two months into the job the work output is slow and sub-par. Assigned projects are late, code is buggy, and code reviews are taking multiple rounds of back and forth. The tax on the rest of the team is growing. What happened? Is this the cultural issues that you should have screened for better? Probably not, but it begs the question: what makes for a good hire? We need someone who is a competent engineer first and foremost, there’s no getting around that. When it comes to cultural fit and the ability to produce value for the company though, the important traits are universal: Someone you can rely on, doesn’t need to be babysat, and recognizes problems & their solutions on their own.

If we had a way to assess for those traits, well, we would have solved the problem of hiring for all industries! We would have found out who are the people that are going to make valuable contributions without needing to be put on a performance improvement plan. Unfortunately, it’s not that simple. So how do we go about determining those traits? I’ve seen it attempted a few different ways:

  • Reference checks
  • Free/open source projects or contributions
  • 1-2 week long sample projects
  • 1-2 month long paid trial periods with the team

Internships are great for this sort of thing. You have a roughly three month long period to work with someone which is typically how long it takes someone to get fully up to speed with your team. If they do well you can make a return offer, if not, there’s a natural breakpoint. However, that’s not a feasible recruiting strategy for non-college grads. Likewise, for the top-tier candidates they won’t always want to put up with doing week long sample projects. When other companies will make attractive offers on the same after a day of interviewing those best candidates won’t work for free to do a sample project for you for two weeks. And not everyone has free software contributions to share. Same thing with reference checks, they certainly don’t hurt, but former managers generally won’t speak poorly about a candidate in most circumstances, plus they’re easy to fake as well.

What I personally like to look for is for a candidate to demonstrate passion for the company & product. I mentioned in my article on soft skills for candidates how most of my decisions on an interview are made in the last 10 minutes left for an open discussion with the candidate for any questions they have. It’s fairly well known that for complex tasks such as engineering, money isn’t the primary factor for most people.

The biggest indicator of success is genuine interest in the problem space.

The best type of motivation comes from people that are naturally motivated to solve problems. In an interview setting asking questions to try to feel out what the candidate thinks of the mission of the company and product can be a great indicator of their interest. Someone that shows passion for the problem space will likely continue that interest and use it as self-motivation to drive quality and enthusiasm for their work.

There’s no single definition for what cultural fit is. At the end of the day, we screen candidates for it the best we can, but ultimately we’re still rolling the dice. We can stack the odds in our favor, but we need also to be more conscious about what we’re looking for. Cultural fit is not a catch-all reason for rejecting a candidate when we don’t have another reason to, it’s an important measure of a candidate’s ability to fit in with your team and overall be a valuable addition that solves problems, improves the product, and creates value for the company. The better we align to those goals the easier assessing for cultural fit will become.