I recently shared my thoughts on preparing for an interview as a software developer, and while I was in the process of writing that post, I could not help but revisit earlier interview experiences.
I still remember the first phone screen interview I did, and now I reflect on how unprepared I was, and how blissfully unaware I was as well.
The common complaint
One of the most common complaints in the tech industry today is that interviews are too unpredictable, and to an extent, I agree.
But, I do think that is an element of the interview process you can use to your advantage.
When things don’t stay the same, it becomes much harder to fall into a routine or experience lengthy periods without growth.
When I say growth, I do not mean solving the most LeetCode questions or having the most side projects.
Experiences shape you
When an interview process is not completely uniform, it allows the candidate (you) to think outside of the norm.
Without expectations or the right answer for every question you are expected to get, you have room to let your personality shine through.
These experiences can instill confidence and leave more of an open dialog between you and the person conducting the interview.
Are we there yet?
If you have interviewed at more than one company, you probably already know that the interview process has become quite long.
You pair that length with each step increasingly growing more complex, and you quickly can find yourself in a position of getting mentally fried.
While I do agree that most interview processes do seem long-winded, I can sympathize with the company conducting them.
Hiring someone is expensive, and not just in a monetary way.
If you rush one aspect of the process but slow down on another, it can yield some undesirable results.
You might end up with someone who is strong technically but lacks the ability to meld with your team.
The technical gauntlet
Everyone’s favorite part, the technical assessments.
This part of the interview can be the most eclectic aspect overall.
Sometimes you solely get hypothetical system design questions, while other times you find yourself getting grilled with technical problems on a whiteboard for 2 hours.
I think this area of the interview process has the most area for improvement.
While I think it is imperative to gauge a candidate’s technical aptitude, I do think it can be done in more of a practical manner.
This does depend on the company you work for.
Sharpen the right tool for the job
If you are applying to a financial tech startup, it might not make much sense to interview someone on MapReduce. It might be more prudent to have the candidate answer questions on common encryption libraries used in the finance world or gauge their familiarity with the Plaid or Stripe API.
My point is, keep interviews technical, but make them technical in a practical way.
What about data structures and algorithms?
This might be the most popular aspect of a modern tech interview. So, is it useful to know these?
In modern software development, the lines between frontend and backend developers are continually getting blurred.
I am not saying that every job you have will require you to know every data structure and algorithm to be successful; however, these topics are the bedrock of software development and will make you a better developer.
You might not use them every day, you might not use them for a month. But, you will benefit from having the foundational knowledge of them and how they work.
Brighter stars ahead
The interview process is not perfect, and probably never will be. But, I think it is getting better every day.
Thankfully, I think we are moving away from brain teaser questions, designed to stump the candidate.
These are being replaced with practical, two-way conversations that allow a person to show off their technical skills, and their personality as well.
Remember, it is as much of an interview for you as it is an interview for the company you are applying for.
So, are they broken?
I do not think tech interviews are broken. I think keeping a technical gauge is essential, and including personality (soft skills) questions are equally as important.
I hope to see the element of structuring questions in a non-uniform manner stick around.
The obvious factor I think we can all agree on is to try to find ways to cut down on the overall length of this process. I think we can get there.