The Technical Interview
The Problems
You cannot find good developers fast enough and you cannot keep the good developers you do find from leaving.
The Solution
What is one to do? Glad you asked. Below I present to you an interview process that is sure to shake things up and leave us in much better place than where we started.
The Hiring Process - A Step-by-Step Guide
Remove Engineers
You do not let the developers, engineers or whatever you call them screen anyone out. Not one soul. Developers are assholes. They are the biggest, best gatekeepers in the game. You have to take them out of the hiring equation.
A Skills-Based Screening Process
Your engineers should give you an outline of the general skills and experience they need and your HR and or Product people should proceed to identify candidates. These are general guidelines and not exact requirements. For example “experience with Angular 1.3.1” is too specific. “Experience with client side MV*M frameworks like Angular, Ember or Backbone etc..” is ideal.
Again, developers love to make themselves feel special by declaring there are few that can do their job. This is false. Remove them from the hiring equation as much as possible.
No Names
Resumes have no names. No first names, no company names, nada. Just skills and experience. We love names. Names tell us so much about a person. They provide for so many ways for us to artificially put people into buckets that automatically qualifies them or disqualifies them. Names be gone.
In-Person Screening
Anyone that gets past the Skills Based Screening process via resumes moves on to in-person interviews the Product or Project Management departments. Developers who cannot talk to people are so 1970's. Great developers, even the ones on the dorky, introverted side can hold a conversation and talk shop. Again, Engineers are on the sidelines for this one.
Code Review
Candidates are then given 1 hour to sit with the in house development staff to look over the company’s code. Candidates ask questions. Your interviewers answer questions.
Developers worth their salt will reveal themselves. Where did they dig into the code? What interested them? What threw them and confused them? Did they have meaningful questions? Did they notice how fucked-up our spaghetti code was? Did they provide any insights and recommendations for improvements? This hour will yield much fruit.
Again, developers do not remove anyone. They stack rank the candidates.
The Offer
The terms:
- A 5 week contract-to-hire position. Five. Weeks.
- At the end of week 4 you give the new hire notice if you will be picking them up.
- You do not make a decision about hiring until the evening before you must tell the new hire
Anyone can have 1 bad interview hour. Anyone. It is very easy to find a reason not to hire someone and that is the wrong way to hire. Hiring for strengths makes so much sense, but that is too hard for most people to exercise. So we need to put a system in place to facilitate this practice.
Four weeks is enough time for someone to fill whatever shoes they signed up to fill. If it is not, then they were not right for the job and no one knew it better than they did when they accepted the position.
Simultaneously, once candidates find out your hiring process the number of job applicants will plummet freeing you up to spend time on fewer candidates and on other things like running your company. In fact, only two kinds of people will ever apply to your postings:
- Those are have nothing to lose like Jr level people and people in between work. The process will be able to filter many of unqualified from this group.
- Those who are extremely confident in their ability to get past the 4th week. The people are worth a look at
Bonus Benefit
If candidates would present their past performance based on this process we could learn a great deal about the value they deliver. I am sure someone could build a tool to anonymously and accurately capture data and recommendations from participating employers
Why?
If there were enough companies using this process there would be significantly less turnover in the industry. We could debate whether or not this is good thing or not. It gives more power to companies in many ways and puts employees at risk. But I tend to think it would be a good thing because I am a fan of competition. Competition breeds excellence and who does not want to be excellent?
Over time, and not much time we would weed out the 80% of the industry that are doing only 20% of the work. That leaves a great big void to fill by many women, Latinos and African Americans who are currently sidelined. In the process we create more diversity and that as we all know leads to more innovation.
Fewer gatekeepers. More excellence, diversity and innovation. Who is not down for that?
Mediocre developer, Software Engineering Manager, Entrepreneur, & Independent filmmaker
7yMy own slight changes to your great write-up: 0) If rejected based on the technical screen and the code showed some merit I offer a code review as a courtesy 1) Phone Screen after the tech-screen. In-Person is a big commitment. Hiring is my number on job but the developers I interview ... perhaps they are busy. The phone screen helps them save some time 2) (this is the only real divergence I have) Commitment culture trumps. As such the people being interviewed must gel well with the team. Thus the in-person needs to involve the team in some 1:1 capacity and Agile is about empowered teams. And yes, I screen all the applications myself. Hiring is too important to delegate to H.R.
Senior Software Engineer at Disney Streaming
9yI agree with some parts of this such as removing the names and the code review but I don't really agree with the 5 week contract to hire, especially in the current market. It's a seller's market for Software Engineers and if you are any good at all you can easily get a full time job without the risk that you want to introduce. Why would I want to leave a job that I currently have, where I am already well paid to risk losing a job because of some perceived failure. I'm very confident in my abilities but I can't control what an incumbent employee may claim about me.
I help leaders in human service nonprofits and philanthropy create solutions to little problems that get in the way of the impact they seek to make in the world.
9yGregorio this should be called "The Hiring Process"....period. I can think of a million way to correlate these ideas to non-profits. In the "3rd sector" as we enjoy calling it, we can sometimes reject anything we seem too "corporate", and we do so to our own detriment. Because with that rejection go systems, operations thinking and good sound business principles. My soap box right now is to remind people that "nonprofit" is a tax status not a business model. We think we are too asset based and too altruistic to fall into the behavior traps that your process protects us from, but we aren't , and often lack the self-awareness to realize it.
Co-Founder & CEO
9yMy personal favorite "remove the names!"