Tech Interviews that Work
Tags: programming, hiring
Published: 2022-03-07 16:39:21

I've written about (and suffered from) the perennially broken technical interview processes.  One article ["Tech Anti Interviewing"](https://lynnlangit.medium.com/tech-anti-interviewing-106674655ea0) in particular, seems to have struck a chord.

## Doing It Right

Given that I've roundly criticized my experiences with existing practices, what then do I recommend?

It's simple really, talking about how a person would work is a poor substitute for actually doing work.  The trick is, of course, what constitutes _'work'_ in this sense?

## Keeping it Real

A practical technique I use is to do something similar to what I will be hiring for to get an understanding of a number of aspects of working together.  If I will be working on technology x, then try it out some non-work way. For example, for this month's interviews the candidate and I will be getting a one-process bioinformatics workflow working with [Nextflow](https://www.nextflow.io/) (a DSL for data pipelining).

What I am looking for during a **30-minute remote pairing session** is the following:

- Ability to communicate
- Openness to learning
- Ability to collaborate
- Background skills
- Interest in topic area

How I do measure these traits? By listening carefully and observing actual behavior.  Also, I tell candidates what I am looking for before the pairing session starts (this is somewhat similar the AWS focus on ['leadership principals'](https://www.amazon.jobs/en/principles)).  

I call my method -  _'active technical interviewing'_.  I supposed you could also call it _'anti-white boarding'_ because we do **not** do puzzles, algorithms or optimization problems, and we work **together**, as we will be doing in real life if the candidate is hired.

![Active Interviewing in Action](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qeqj0pdwxnlzcrbrbjzo.png)

## Hiring Small

As a small business owner who works on a contract-by-contract basis, I hire subcontractors hourly per project.  This limits my exposure, if a new hire isn't a good fit.  Also I tend to hire junior developers (often students and/or career changers).

## Getting Results

> 'What tech shortage?'
 
Using these methods, over 11 years, I've **never** lacked for qualified candidates.  In fact, I have MORE qualified candidates that I can hire, because I carefully select my clients and projects.  Also ALL of my subcontractors have gone on to get full-time roles as developers, devops pros, machine learning or data science engineers.

In fact I've had so much success, I've written a [series of articles](https://lynnlangit.medium.com/list/software-apprenticeships-b28b944a1ee9) about collaborative technical work (articles shown in the graphic below).

![My articles on Medium about Technical Hiring and Work](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z19nnu758egxb2g7tzek.png)

I've also delivered talks on this topic.  Here's a [link](https://www.beautiful.ai/player/-Mx_CNp8kYKAtNCPIzyF) to a presentation deck from a recent talk on this topic.

## Being Human

IMHO, all of of optimizations and algorithms applied to interviewing and hiring has actually made our _'shortage of talent'_ problem worse.  

So I strongly suggest when interviewing...spend some of your own time, work together, listen closely and remember that building software is a human-centered business.