Part of it is the fact that whenever I apply for a job, I rarely know what the interview process is going to be like. There are some companies that legitimately think 8+ hours of inteviewing with multiple technical challenges is the correct approach. While on the other end of the specturm, one company scheduled only three interviews where I simply talked with the hiring manager, the engineers on the team, and finally the CTO. A rather more friendly, informative, and personable approach in my opinion.
And the technical screenings are a complete toss up. I had a company ask me to build a Binary Tree from an array on a whiteboard. Another wanted me to solve the Maximum Index problem in my preferred language and then answer a dozen Computer Science questions. You know...those really important problems that always come up when building a web application. 🙄
My personal favorite recently was a take-home coding challenge that had an expected completion time of five hours. Naturally, the requirements for this challenge were poorly thought out and were written in a text file with two mistakes in it. Definitely the sort of challenge that a software engineer with two decades of experience is eager to do. I waved goodbye and moved on.
I was also tickled pink when a Director of Engineering admitted he had learned coding from software that I wrote...and yet still wanted me to take their coding challenge. A little flexibility on this point may have been wise, just saying.
Skipping past the time commitment, which is truly fun when you remember I am interviewing at multiple companies, and also the wacky technical screens, I would like to talk about the ghosting. Two weeks ago I finished a company's entire interview process and then heard nothing for 10 days. I had to poke the outside recruiter to contact them and when he finally heard back, he was brushed off with a vague "We're moving in a different direction." with no additional details or feedback. It was the second company to ghost me like this. Seems incredibly unprofessional.
So, here I am fours weeks later, and I am starting my entire job hunt over.
Now, I expect job hunting to require some effort. It is you and a company trying to see if you're a match because it is an investment into what is hopefully a long term relationship. I also expect some manner of screening by a company to ensure that my resume is legit. There are scammers out there and a smart company will want to confirm one's credentials, so to speak.
However. Throughout my long (looooonnng) work history, I have been a CTO (twice), VP Engineering, Software Architect, Lead Engineer, Principal Software Engineer, and Senior Software Engineer. My resume includes building blog software, a CMS, a framework, multiple SaaS applications, and rewriting or maintaining numerous large scale applications. And my skills have me able to handle everything from creating a new icon, designing a website, building an entire frontend application, building the entire backend, managing servers, and deploying. I've got some skills and experience.
I have also been the primary technical interviewer for multiple companies and I truly believe an experienced technical interviewer can assess someone like me with an in-depth conversation. In fact, my most positive interview experiences were when exactly that happened. Further, anecdotally, the companies with the most exhausting technical interview processes tend to have the worst applications and engineering culture problems.
With all that in mind, if you are looking for a software engineer, I highly suggest you keep the following in mind:
- Post your salary range in the job description. It is one of the most important pieces of information to a candidate and is now legally required in Colorado and California.
- Post your interview process in the job description. A short description of each step and expected time duration.
- If you have more than 4 hours of interviewing for candidates, seriously reconsider your process and determine if this amount of time is really necessary. Candidates are interviewing at multiple companies, may have a current job, and need to schedule around their own life. Also, the mental strain is already intense, do not make it worse.
- Evaluate your technical screens for what information you really need and want. Keep them short and tight. Train your interviewers and standardize on questions and how to evaluate answers.
- Coding challenges should be no more than 2 hours, unless you are paying candidates for their time. The instructions should be clearly written, concise, and presented well.
- Do NOT ghost candidates. A simple email within 24 hours of every interview step, even if turning them down, is better than having candidates left wondering. Be honest and straightforward; you are representing your company here.