Have you been stuck for tech interview ideas?
I’ve had a lot of chats with people about this as of late (don’t really know why, I’ve never run an interview before), but it seems to be something that comes up a lot because there’s no manual on how to do it.
Having spent the last couple of weeks looking for work, I’ve had a few interviews now, and I’m here to give you some general feedback on my experiences and what I think worked really well and why, and the inverse where I just felt like I wasted my time.
The Good
The best interviews I’ve had (read: the ones I actually had fun in) presented me with an actual problem they’ve been having and discussed a potential solution. I know that it might seem a bit scummy to do this, but I think as long as you legitimately use it as a technique to find good candidates and not as a free source of ideas for your work it will go a lot further in assessing a candidate than a vague problem.
An example from this run is the company where I ended up accepting an offer, we spent the first 10 or 20 minutes chatting about various technologies and techniques and opinions on ways of working. Following that, I was given an example of something they’d actually run into and I worked with the interviewer to come up with a few ideas to get around it. It wasn’t me solving the issue for them, it was very high level talk about architectures and components and it actually felt like I wasn’t wasting anyone’s time, including my own.
I think a good interview also requires a chance for me to ask questions even on the most random things I’ve heard about the company. I’ve had discussions about all kinds of things that are just kind of tangentially related to the role, but I feel as if it’s important to be able to get insight into the way the company does work, particularly questions around company vision, relevant issues around government policy, and so on.
I had a good conversation the other day around recent changes in regulation that I knew my wife had had issues with at work, and it evolved further into a conversation about how that differs from similar policies overseas and the scaling issues they’d had around that and the effect it’s had on end users and the application suite in general.
I also had an interview where I mentioned something about Japan and then spent the remaining time speaking Japanese with the interviewer, a bit quirky but it was something I thought kept me engaged and interested in the people at the company.
A good interview, at least from my perspective of a candidate, is one where I’m given an opportunity to show how I will build solutions for you specifically and figuring out for myself if I’ll fit into your way of working, and also starting to build that all important rapport I’m going to need if I actually get the job.
The Decent
Slightly lower on the ladder we have the interviews with a tangible problem to solve then and there. I think these work well because it gives a candidate the chance to show off their thought process.
I had an interview in the last wee that would fit this bill. The problem was a little vague, but it was grounded enough that it felt like I was given a good chance to talk about what I’d done in the past and how it applied to the problem in front of me. We also chatted about various AWS services and golang, as while it was an AWS shop there weren’t many people that had done any of the formal training. Overall, it felt productive and that I learned something as well as maybe teaching a little bit to the guys on the other side of the table, but I also felt as if a focused problem could have really helped me show off a bit more.
My first full time job at LexisNexis had an interview with a tech problem like this, too. Their core focus was on algorithms, since the software needed to be performant on typical workstation setups. When I rocked up, I was handed a sheet describing the Mastermind game, and I basically just talked my way through how I would implement it, followed by a short piece of code to do a small part of it. I still think it’s one of the better interviews I’ve had in my career, so kudos to Niko and Andrew for organising that one.
The Bad
Having a HR suit that doesn’t know anything about the tech stack call first is never a good sign. You know you’ve got someone like this when it feels like they’ve gone to stackoverflow and just started reading off the categories. I felt like that when someone called to tell me about a role I’d responded to for a Java backend dev, I was then barraged with a list of technologies and a long winded job description that sounded like 4 separate roles jammed into one, and a salary package well below market rate.
Long hours with unpaid overtime and no coherent project structure or product vision? Sign me the fuck up, Burgo!
Needless to say, me saying I know how to build stuff in AWS and make it work at high traffic volume wasn’t impressive to this person and I got an email saying they were looking to another candidate.
It’s incredibly frustrating trying to sell what you do to someone that doesn’t know tech. I’m not a frontend person, so I rely on being able to talk to someone that actually has an idea of the tech I use because lord knows if I showed them the wall of text produced by my various services they’d get that glazed over, disappointed look my dad had when I told him I had gotten into D&D instead of joining a footy team.
Another time where I’ve wondered why I’m there is when we did a deep dive into the company values. All of them eventually boil down to respecting your team, respecting stakeholders and not being a dickhead, any variations thereof usually revolve around giving a fuck about the quality of your work. I don’t care, you guys know what atmosphere you want in your company and if I don’t seem to fit then it’s perfectly fine to not offer me a job, I won’t take it personally. I think a better alternative if you really want to go down this path is to ask me about how I think companies should treat their staff, how teams should work together and how I would like to work, I’m far more likely to speak candidly and give genuine opinions than if I read your 30 page company values manifesto and know what you want to hear, and as someone who cut his teeth in various hacking communities I know full well how I can use that information disparity.
The Ugly
The worst interview I’ve had was where I turned up and was immediately told “we do waterfall so we can get user requirements just right. Our dev cycle takes 3 months to complete”. Despite feeling as if I’d hit rock bottom already, it kept going downhill as I was pretty much told that it was a oligarchy run by the BAs (who didn’t actually talk to any end users) and the architects (who didn’t cut any code, not even prototypes or experiments). I was told that unit testing was a waste of time, and that that time was better spent fixing bugs in code.
Oh, also you had to manually package the release because setting up an automated pipeline to do it for you was also a waste of time.
I think this one sticks out because I was being told upfront that my opinions wouldn’t matter and there would be no wiggle room to try and automate anything they were doing. We work in a creative, collaborative industry, and we’re not interchangeable automatons on an assembly line.
On the same tangent, I don’t want execs that don’t do any hiring deciding on hiring processes. I applied for a job where the first “interview” was a series of prerecorded video questions with a spot to upload your own video response. It just felt dehumanising being talked at by prerecorded pixels on a screen and was clearly a decision made by some suit that
- Hasn’t had to look for work in 30 years
- Assumes that all millenials like me want to be YouTubers or something
- Thinks he’s saving on his phone bill
You were given two attempts per question to get an answer in. Would have loved to have used both attempts on some of them, but my cat decided it was a fine time to jump onto my desk and check out the webcam that’s been attached to my monitor longer than he’s been living here. A final take included me trying my damndest not to laugh at him because he was rolling around trying to get my attention on the window sil. Also of note was the instruction video at the start, which told me to “let your personality shine through”. Yeah, nah, I don’t think you want me to do a tour of my guitars, Norwegian black metal albums and 3D printer when I’m meant to be answering questions about why I’d make a good addition to your team.
The funniest thing to me is that I still had a half hour chat with a company recruiter where I mentioned the same things, so I have no idea why they bother with the video interviews at all. While I was still interested in working for the company, the fact that I couldn’t just have a half hour conversation with an actual human left a really sour taste in my mouth.
To fall into the worst of the worst, you have to actively try I believe. Telling me that my decisions won’t matter, showing me absolutely no regard as a person before a worker and falling for gimmicks instead of just having an honest and open conversation is something I think would chase away most candidates.
Bonus Round: The Coding Challenge
I’ve had a number of coding challenges issued to me over the course of my career, and I can say that they don’t bother me much. As long as the applications they ask for don’t take more than an hour or two to set up I’m not going to complain. My biggest issue is knowing how far they want me to go, I wrote one this time around and did up a full Cloudformation stack for it by the time someone got around to checking it out.
I’ve also seen some companies having a pair programming exercise as part of their interviewing process, which I think could potentially be a good exercise for the candidate as well. Sitting with someone from the team I could get a good read on them and how they do work. Without having done it for real, though, I’m not sure how useful my opinion on this one could be.
Most people seem to hate code challenges, though, so maybe it might be worth bringing people in and doing something in an interview setting instead.
Final Thoughts
I think a good interview has the following characteristics:
- Prompting questions that guide me into answering honestly
- A talk about real world problems I’d need to deal with if I took a job there
- Two way communication where I can ask questions about anything I want
There is always a very strong human element here. Both sides should be feeling out they would would work together and personally I’m going to push boundaries to see if I could butt heads in a constructive matter.
The worst interviews, on the otherhand:
- Tell me how I will interact with you
- Make me wear a tie
- Don’t let me ask questions
- Give incredibly complex coding challenges
- Don’t give me any promise of some sort of input into the decision making process
- Give me my first exposure to your workplace via pre recorded videos
If I feel like I’m going to be disenfranchised and ignored working somewhere, the interview is not going to go well.