With the current environment of layoffs, you may be looking for a new position. Or maybe you want to prepare in case your position takes a turn in the next six months.
No one relishes the job interview process. The cringe LinkedIn DMs from recruiters. The 15-minute HR screens. Meeting the interviews. Looking for cycles in undirected graphs while they watch. Telling them about a time when.
How can you turn the process of an interview into a job from one that leads to burnout into one that teaches your career skills?
Interviewing, done right, can make you a better candidate and engineer, even when you don’t the job.
I call this my Antifragile Interviewing practice.
Antifragility: a 30-second primer
Antifragility is any object, person, or process strengthened by stress and disorder. People, systems, and items that break under stress are fragile. The term comes from Nassim Nicholas Taleb's book, Antifragile: Things That Gain from Disorder.
Note that this is different from being resilient; A resilient system doesn't care about stress or disorder one way or another. Antifragile systems crave them.
A common example is the muscular system. You strengthen muscles by putting them under stress.
It’s also a bitchin’ K-Pop song
Need more stress? Have you tried tech interviews?
Interviews start from a place of distrust.
Bad hires are expensive, so companies would rather have false negatives (disqualifying a well-qualified candidate) than false positives (hiring someone ineffective). From the interviewee's perspective, interviews are variant and random.
Evaluating candidates is difficult. As someone with experience on both sides of the table, I know how hard it is to measure someone’s confidence with limited interactions and work samples.
Any interview could consist of one or more exercises:
online quizzes
pair programming
take-home assignments
whiteboarding (virtual or in-person)
big-picture questions
architecture questions
behavioral questions
You might have to do hours of unpaid labor before talking to a human. And the human you get might not be thrilled to be proctoring an interview.
Remember: interviewers are developers too
They may not want to be interviewing candidates and would much rather work on whatever feature they have due at the end of their current sprint. They may have yet to spend time practicing their interviewing skills, and their managers may not have invested in helping them grow that skills. Sturgeon’s law is very much in effect.
So, how can you turn this process into a good thing for you?
The Antifragile Interviewing Process
First, you have to start viewing every interview as an opportunity to improve
You may be frustrated that you have to learn skills that seem irrelevant to the job you are trying to get, but that's part of the game. The sooner you can make peace with this, the better.
Think of interviewing skills as an investment in yourself. You are helping yourself get better opportunities.
Once you do this, you can start turning interviewers’ tactics against them.
1. Put in the reps
Clean up your LinkedIn and make sure you’re attractive to recruiters. Make sure your job descriptions contain all the right keywords and include all your best accomplishments. Posting daily seems to increase the number of inbound requests you receive.
You should get plenty of opportunities to talk to people.
If you haven’t interviewed in a while, consider getting a few practice rounds in before applying to jobs where you have more interest.
Interview for jobs you don’t want
One way to get practice is to interview for jobs you are not interested in. You can take the interviews, collect questions, record yourself, reflect, and review.
You may think this is unethical. Aren’t you wasting interviewers' time? Maybe, but interviewers build this into their process. They interview plenty of candidates who have little to no chance of getting hired.
2. Practice coding puzzles
Algorithm riddles you would never see in day-to-day work are more valuable than you think.
They are a waste of time if you view them as a part of your programming repertoire, but not if you view them as part of your career skillset. So what if they have no use outside of the interview process? The interview process is enough. Take note of the questions you see, and study up on common algorithms. Use guides like Cracking the Coding Interview. Protip: more things are graphs than you think.
You’ll want to focus on both the technical and soft skill questions you see, and prep for both.
3. Build your question & answer bank
Take note of questions that you are asked frequently or ones where you trip up. After an interview, take some time to write out answers. Refrain from showing up to an interview and reading from a script, but the act of writing will help you think through your answers and do better next time.
If you prepare, interviewers will only get to hear your first draft. First drafts aren't representative of your best work.
Treat interviews as a feedback loop. If you fail at certain points, that's a signal of a weakness you can work upon.
Here are some facts about yourself you should have down cold for interviews:
Your favorite project you’ve worked on, and why.
Your toughest technical challenges, and you how you tackled them.
A time you had a conflict at work, and how you resolved it.
Your approach to testing and documentation
How you evaluate new technologies
What you do with vague requirements.
If you’re brave, record yourself
Hear me out: record your job interviews and watch them back.
I wouldn't tell the interviewer you are doing this, and I wouldn't share it with anyone else. An interviewer may not take kindly to you sharing their questions. Watch it yourself and see how you come across it. I know it's uncomfortable, but if you can get used to it, you can get some insight into how you come across to others.
It’s awkward, but the rewards are worth it.
4. Embrace rejection
You’ll deal with rejection during your interviewing process.
Interviewing is a numbers game, and that makes it inevitable. Sometimes it won't be your fault. Realizing this is the first step to making peace with it. You’ll need to be able to handle rejections to bounce back, put on a smile, and jump back into your next interview.
We can’t change the interview process, the sooner we make peace with it, the better.
Embrace the interview, let it strengthen you
You could think of interviews like gym sessions: painful at the moment, but they make you stronger. Or think of it like iterative software development; You tested your interview system, digested feedback, added features, and fixed bugs.
As an additional benefit, you'll be more confident and at ease in your interviews when you're less stressed. That makes you a more attractive hire.
To summarize, the antifragile interview process:
Put in the reps
Practice coding puzzles
Build your question & answer bank
Embrace rejection
Repeat as needed.
Thanks to variability, artisanal careers harbor a bit of antifragility: small variations make them adapt and change continuously by learning from the environment and being continuously under pressure to be fit
Nassim Nicholas Taleb