I’ve interviewed for and been interviewed by companies large and small. We all know software engineer job interviews suck. But it’s hard on the other side of the table too.
One of the better places I worked for had a lightweight process of one phone screen and a four hour on-site. The company also prepared offers before the on-site interview round.
When you finished interviewing, you got a same-day yes or no answer, and if it was yes, you had the offer in your inbox within an hour.
What interview practices have you found effective?
… And by what metric?
Bar is on the floor. This is easily my best interview experience:
- My prospective manager was clearly present and engaged in the process
- All other interviewers were also prospective team members, and very engaged
- I can’t state this enough, nobody didn’t want to be there. This is my absolute biggest peeve when interviewing, and I will leave if you clearly don’t give a shit. If you don’t care, you’re either just bad at interviewing and should not do it, or you know the role doesn’t really matter. You get an hour to judge me, perhaps erroneously, I’m going to do the same
- The questions were deep, offering plenty of ways to express my experience. I get that I need to do some coding because even very tenured engineers can be very bad at it, but making me do 3 leetcode questions is fucking dumb for a Rails interview, and they clearly knew that
- There was no punishment for answering with few words when it was warranted— the interviewers were good enough to riff off that to make the questions deeper. You can’t just put any random junior on an interview panel (do have them shadow if they are interested though), it’s a skill, and if you don’t respect that I won’t respect you
- My point of contact was attentive and helpful
Google’s interview process was at least twice as good as any other place I’ve ever interviewed. They do a phone screen where you solve not-very-complex problems on a screen share, just to make sure you have some baseline level of coding ability, and then they do one full-day tech interview.
They share with you way beforehand a video that explains exactly what the interview process is, and recommends that you practice at it so you’ll be getting tested on your actual ability level and not unnecessarily put on the spot. For the interview day, five different people will stand you in front of a whiteboard for one hour each, ask you to solve a programming problem on the whiteboard, and then give different further augmentations to the problem or ask questions about it. Some of the problems are straightforward, some are exceedingly difficult (I told one guy, I don’t think I can actually give you a good solution to this problem, and he said, oh I know you won’t be able to solve it completely and correctly, I just want to see how you approach it and what you come up with). With the exception of lunch which is more of an open chitchat type “interview,” it’s no bullshit, no brainteasers, just here, write some code, let’s see what you do.
The thing I appreciated most about it was the applicability to what you’ll be doing on the job. Now with AI tools, things are a little different in terms of what makes a “productive” programmer, but I’d imagine it’s still pretty similar and still effective.
When I was part of giving interviews for a company I used to work for, we actually used a pretty similar thing, but used a written test and gave people time to sit down with it. We found that standing people up in front of a whiteboard would sometimes make them super nervous (probably why Google does it one-on-one and tells you what to expect and has you prep beforehand). But I’ve never found anything that works as well as simply asking people to write code and then seeing what they come up with.
Hope this is useful.
Edit: Other random things which are helpful: Having a single point-of-contact who’s your “advocate” within the company is useful, so for logistical things you’re not just some random person on the phone with someone who doesn’t know what’s going on with you. Obviously the interview people being on time, being respectful of your time and effort to the interview, being upfront about salary, letting you know the answer quickly and directly whether yes or no, all that stuff is key too.