On Interviewing and Hiring

Two sides of the same crappy coin

Posted by Clint Cecil on February 17, 2018


This post got out of hand as I started putting all my bitchiness to words. I didn’t start out to be so negative but the entire process is pretty negative and is still an open wound to pick at for me.

Due to unforeseen circumstances at my previous company, I started actively looking for work again a couple of months ago. After taking a few weeks off to try to organize myself and get my head straight, I started applying for jobs. After numerous interviews and a brief stint as a contractor I landed at the University of Wisconsin supporting researchers at the Great Lakes Bioenergy Research Center. As a lead developer, it became my job to find some developers to fit our needs at the center. This switch has given me insight into how broken both sides of the interviewing system are.

Why Interviewing Sucks as a Candidate

  • Applying is a pain - The number of companies which required me to upload a resume, then spend an hour filling out every piece of information from my resume in a 20 part web form is ridiculous. Repeating this process over and over again is defeating.

  • Recruiters - Putting your information out there on Dice / Monster / LinkedIn / whatever other sites you feel appropriate is awful. I get daily calls asking me if I’d be interested in moving across the country to work on a three month contract working in wordpress for $12 an hour. I get email after email of recruiters that have obviously never read my resume sending me jobs I have no interest in or am nowhere nearly qualified for. Do yourself a favor and create a google voice number and new email for the job hunt that you can abandon afterwards. You can share your normal contact information with anyone you feel is worth keeping in contact with, I’m sure they won’t be offended as they’ve probably experienced the same thing. (A few recruiters were awesome to me, and worked hard to get me a job. I’m going to reach out and see if I can mention them by name, but if they’re on my linkedin connections they’re probably at least OK. If you want a reference to a good recruiter in either Madison or DC let me know.)

  • Getting through HR is hard. - I’ve seen job descriptions requiring 6 years of HTML 5 experience (released late 2014). I’ve gotten math quiz questions that were unsolvable. I can’t count the number of times somebody thought Java and JavaScript were the same thing. It all boils down to non-technical people given a list of attributes being looked for and not having the common experience or even language to have the flexibility needed to filter good candidates from bad.

    That doesn’t stop them from filtering. It reminds me of this classic post

  • Having the specific combination of experience expected is often impossible - The requirements for many positions posted are ridiculous and should be regarded more as a wishlist than requirements, but the people involved are often choosing beggars looking for someone who is an expert at all flavors of JavaScript while also being an expert in System Ops and Ruby / Python / etc. I’ve had people suggest that I couldn’t learn .net because I was a Ruby programmer. The truth is that the ability to learn new things and adapt to whatever is required is infinitely superior, but much harder to grasp from a resume.

  • Interviewing is time consuming - At this point, most companies I interviewed with had a multi-stepped interview barrage that seemed to be designed to eat up all of your time and happiness to browbeat you into giving up your search. Starting with a time consuming web application, fighting your way through HR and ignoring the impossible requirement posted, you land a phone interview with an HR person. Then another phone interview with a developer. Then a video call. Then an in person interview or two. Add in a couple coding exercises, in languages you’ve never used and with a time limit on when they’re due. The time limit doesn’t take into account your time spent watching the baby, dealing with a death in the family, other interviews, or any other number of more important things in your life than dropping a days worth of work on the hopes of it leading to a job interview and that the position is actually something you want to do.

    The in-person interviews range from a couple of hours to an entire day. There are a flurry of people in and out while you sit there answering the same questions and contemplating how long it will be until you can take a break and use the restroom.

  • Interviewing is intimidating - Having a group of strangers sit in a last supper format staring you down while pounding you with questions feels like you’re the subject of a Congressional Investigation. Add in the fact that you’ve worked a remote job for the last four years without talking to anybody in a professional setting like this and it’s unsettling. There is also the inherent need to land a job piling extra pressure on you to perform. As I’m sure many feel, socialization and public speaking aren’t the most natural skills for developers and the interview process is daunting.

  • It’s hard to compete - There is stiff competition out there for many positions, especially nationally posted remote positions. You’re competing with people from around the country for the chance to work remote. Those impossible requirements mentioned above? They had five people that blew those out of the water interview before you so good luck selling yourself.

  • It’s hard to get what you’re worth - Companies use any weakness they can find as an excuse to lowball you on an offer. Sometimes it’s hard to stand up for yourself and demand what you’re worth when you’re stressed about finding work and defeated by the whole process.

  • Interviewing costs money - When unemployed, you start thinking about where every dollar is going and things like gas, parking, and dress clothes start to add up.

  • Interviewers want to hire themselves - People tend to judge people more similar to them less harshly. Whether it’s race, sex, or background, people are more likely to hire someone that they see a reflection of themselves in. This isn’t always the case, but is prevalant and may mean the effort put in is for nothing if the wrong person wants to hire someone of the same race.

    This can be taken advantage of if you can find someone from the same town, same college, same former company, etc.

  • Coding tests are BS - Remembering how to balance a binary tree doesn’t make you a good hire and forgetting doesn’t make you a bad one.

    Coding on a whiteboard or even just without using google and stack overflow is unrealistic to what daily jobs look like for most developers.

    Take home coding tests are time consuming and exploitable. Many are expected in the language / tools of the new position, which may be a foreign language to you. Most are delivered via github, thus exposing every applicant’s entry to each other. It’s usually rushed and finished with a lack of enthusiasm in my experience.

    The best coding tests I had were on the spot, given a computer with common tools and told to go as far as I could in a half hour. It’s respectful of time and a realistic examination of how someone works.

  • Interviewing is a skill that gets worse without practice - If you haven’t interviewed in years, it’s hard to interview. It’s a skill that like most, without practice will wither away. Combine this with the fact that if you’ve been employed, you probably haven’t interviewed in a while and your odds go down without putting in leg work to practice interviews.

  • It’s hard to sell yourself - Nearly every good developer I know fights impostor syndrome constantly. Whether it is in a small office or on a global scale, it’s hard not to see the incredible things other people are doing and compare to the misplaced semicolon you spent a day debugging. It’s easy to see accomplishments in others and harder in yourself, and the reverse is true of shortcomings. This results in making selling yourself feeling like a lie.

  • You may just not connect - I had an interview where the company liked my resume and experience, liked me, but said I “wasn’t enthusiastic about working for them.” This was a misread on their part, as at the time it was a job I had talked about with my family and friends about how I hoped to land it. Sometimes the interviewer just misreads the candidate or the candidate doesn’t convey their skills or attitude well enough and it results in a missed connection.

  • Being ghosted is awful - Interviewing at a place, completing coding tests, investing gas and parking money and time to jump through all the hoops, only to be left without any contact at all is too common. It’s killer.

  • Sometimes it all comes down to luck - It’s been suggested that researchers rate later candidates lower than ones interviewed earlier in the day. People judge harshly when hungry, thirsty, or needing a bathroom break. Maybe the interview you scheduled a week ago coincided with a production issue popping up that pulled the guy out of the room you had the best chance of connecting with and turning to your side. There is a lot of random luck in making a good impression and being competitive for a position.

  • In general it is pointless - Many interviewers lack the ability to make the best decision for who to hire. Interviewing skills and the skills needed during the course of work are often vastly different and success at one isn’t strongly correlated to the other.

Summary of Why Interviewing Sucks as a Candidate:

Interviewing is time consuming, depressing, and largely fruitless.

Why Interviewing Sucks as an Interviewer

  • Finding candidates is a pain - Posting a job requires work to match the job description to the actual skills being hunted. You have to consider where you’re posting it and how to promote it to catch the eye of the perfect candidate. Being too descriptive leads to people not applying, but being to vague is also a turn-off.

  • Most candidates aren’t good - Half of all people are below average, and most of the good ones already have jobs. Your selection pool is bound to draw a plethora of bad candidates for every good candidate.

  • Your HR department doesn’t know what makes a good candidate - It’s like a bad game of telephone: you say you want someone with 5 years of experience and that has used VueJS and it somehow comes out that someone is required to have 5 years of VueJS experience (out for 3 years now). You and your candidate may speak a common language, but the HR department may not be on the same page.

  • Requirements are vague - On the flip side, trying to hire for a position you don’t know much about is a common task, and doing your best is all you can do. But, like with many things when it comes to programming, requirements are vague and what is wanted and what is described are two different things.

  • Finding experienced candidates is near impossible - Outside of some of the more common languages like Java, finding something like an experienced Ruby on Rails developer that can hit the ground running and contribute within a short period of time can be a daunting task.

  • Interviewing is time consuming - Honestly reading resumes is very time consuming, as is contacting candidates, organizing interview schedules, doing phone screenings, writing interview questions, designing process around interviews, actually interviewing. Add in extra time for trying to advertise the position, recruit at meetups or contacting your network to find people. Throw in reviewing code submitted in a language you’ve never used for a coding test written a few years ago. You’re now in the time sink.

  • Candidates blend together - When you read 40 resumes, you get tired. The ones at the top get a fairer shake due to fatigue, hunger, or whatever other distractions are going on. Same thing for interviews. Doing phone screenings, video calls, or actual interviews with multiple people leads to most of them seeming the same. It’s a hopeless feeling to have a dozen resumes on the table without a good way to tell them apart and having to roll the dice and be stuck with your decision.

  • Budget and other issues may limit what you can offer - Maybe your company doesn’t have the budget for the salary someone wants. Maybe you can’t offer the time off they need. Maybe your benefits aren’t as good as another company’s. If all goes well, you’re going to be competing for the top candidate with other companies and sometimes you fall short when making an offer.

  • Interviewing is a production killer - You want your best people doing the interviewing. Talent is attracted to talent, and not only do the better people have a better eye for talent, they’re the better representatives of your company when you’re trying to recruit. Taking an hour of production from your best people is a huge sink. Taking an entire afternoon or morning (or day) is even worse.

  • Saying no feels bad - A majority of candidates you interview would have their life significantly improved by taking the job you offer, so saying no to someone that’s already down on their luck is tough. Doing what’s right for you and your company is selfish but it’s survival of the fittest.

    The alternative may be that super nice guy you can’t get rid of that never accomplishes anything.

  • It takes luck to find the right candidate - The candidate pool is constantly in motion, churning out people and having others poured in. It may be that the perfect candidate just accepted another offer, or that at the moment they’re not looking. Odds are the perfect candidate exists and is already employed somewhere else.

  • People suck at interviewing - Especially tech people. Being able to sell yourself doesn’t make you a good programmer, and you may pass on someone that didn’t interview well that would have been a great asset to your team.

Summary of Why Interviewing Sucks as an Interviewer:

Interviewing is time consuming, depressing, and largely fruitless.

So What is Good About Interviews?

  • Meeting People - Interviewing as an interviewer or as a candidate is a great way to meet interesting people with similar interests and in similar fields to your own. I’ve hit it off with multiple interviewers, even when the job didn’t work out.

  • Interviewing gets easier the more you do it - Sure it’s always depressing and a time sink, but as you practice more, it’s slightly more cheerful and slightly less time consuming.

  • You might get lucky - With persistance, you can find good jobs and good candidates. It pays off in the long run, but can be a brutal process whilst in the midst of it.

  • It’s better than not interviewing - The reason we interview is that we have to do something. You need a job or you need an asset. Focus on the end goal and not on the process of the first step on that path.

How can you make interviewing for jobs better?

  • Find jobs that aren’t posted - Talk to your contacts, go to meetups, talk to people in tech circles. If you can apply through a contact, the odds of you getting the job increase exponentially.

  • Start by applying only for jobs you want - Sometimes this isn’t an option, but if the situation isn’t too dire, be picky about where you’re investing your time. This allows you to better prepare for the interviews at the ones you do apply for as well.

  • Discuss salary early - Don’t waste time only to find out what you’re worth is outside what they’re willing to pay.

  • Apply for jobs that don’t exactly match your resume - If the requirements are impossible to meet, odds are they’re having a hard time finding the right person and you might be able to show that you’d be a good fit.

  • Practice interviewing - Do practice interviews as much as possible to hone your skills. If you have a contact who actively does interviews, ask them to do a mock interview. If you have the chance at your current position to participate on the other side of the table, the experience will be invaluable to you when you need to interview again.

  • Don’t get too discouraged - Something will come along and every interview you do you’ll get a little bit better.

How can you make interviewing candidates better?

  • Limit time spent on interviewing candidates - It’s always going to be time consuming, but finding ways to filter out candidates early and taking out ineffective parts of the interview process can make it go smoother.

  • Find the good candidates - Try going to meetups, tech hangouts, or searching through connections to find worthwhile people to hire.

  • Put your best people on it - While it is a hassle to “waste” the time of your all-star people, they are more than likely the best equipped to filter through to find the best candidates.

  • Don’t be afraid to move on - Keep from dragging out a bad interview. Don’t be afraid to give up on this round of candidates and repost the job to find someone that is the right fit.

  • Don’t waste time on somebody outside the salary range - Salary expectations should be discussed as the first question. If what you’re looking for an what they’re expecting doesn’t mesh, be honest and move on.

What else can be improved?

If you’ve got some other ideas about improving interviews, hit me up on twitter or email. I’ll add them on here or make another post.

Header photo taken by Clint Cecil at Rocky Mountain National Park, Wyoming.