How I Like to Hire Engineers
A gentle reminder that culture fit is not a substitute for knowing Big O.
In a nutshell, I believe a company should always hire people who are better than the employees currently in the company. Therefore if this trend is extrapolated into the future, it should be harder and harder to get into the company over time. This is a Good Thing and has been a tried-and-true hiring technique for successful companies including Google and Amazon.
To find a software engineer that matches my company’s needs, I like to group the candidate’s skills into the following 4 categories for further analysis. To be honest, I borrowed a lot of this from Google, where I think they have quite a clean way of assessing a candidate:

Candidate Skill Groups
Role-Related Knowledge comprises how much experience they’ve had in computer science and engineering, both academic and professionally.
Cognitive Ability comprises how sharp their intellect is–from problem solving, to creativity.
Leadership comprises how much of a self-starter they are, and how much they empower the rest of the team to be better, implicitly if not explicitly.
Amazing to Work With comprises culture fit. I must hire people that make us want to come into work and collaborate on hard problems with. Let’s dive into the line items of each parent category to inform what I might interview a candidate for:
[Left Side]
Cognitive Ability
- Creative
- Learns Quickly
- Analytical
- Logical
- Innovative
Role-Related Knowledge
- Algorithms
- Data Structures
- Computational Complexity
- Concurrency
- Databases
- Big Data
- Data Locality
- Architecture
- Test Driven Programming
- Functional Programming
- Imperative v. Declarative Programming
- Framework Choices
- Security
- Puts the User First
- Etc…