DEV Community

Cover image for The Joys of Job Interviews
Alex Hyett
Alex Hyett

Posted on • Originally published at alexhyett.com on

The Joys of Job Interviews

This week we have been discussing our hiring process at work, and it got me thinking a lot about the interviews I have had and conducted over the years and what that says about the company.

For many the interview is the first impression a candidate is going to have a company. It makes me wonder then, why companies insist on making the process as long and gruelling as possible.

Over the years the interviews I have had generally consisted of a combination of the following:

  • Telephone interview with recruiter/HR
  • Timed technical test (e.g. LeetCode/HackerRank)
  • Technical telephone interview with engineers
  • Technical project
  • Code review assessment
  • Live in-person coding
  • Whiteboard exercise
  • Psychometric tests
  • Presentation
  • Group Presentation

For some particularly prestigious jobs they can include all of the above!

I am now at the stage of my career where a long interview process is a definite red flag and will stop me from applying to a company. At the end of the day, if a candidate has had a long career with multiple jobs spanning a decade or more, chances are they are at least half decent.

Obviously, with junior candidates you might want to be a bit more rigorous in the interview process but at that level, it is more important that they have a willingness to learn, and no test is going to tell you that.

I find that if the interview process has been enjoyable, and I have left happier than when I went in then there is a good chance I will enjoy working for that company as well. It is often the people that you work with (or work for) that can make or break your experience at a company. Even a particularly dull job can be enjoyable with the right people around you.

If I look back at the companies I have enjoyed working at the most the interview consisted of a short technical test/exercise followed by a lengthy chat with either a senior engineer or the CTO. I wasn't grilled too much over my experience instead it was more about my enthusiasm about technology and my willingness to learn new skills.

A lot of these interview exercises are questionable and don't mimic the reality of the job. There are a couple I particularly dislike:

  • Timed technical test - For jobs with a high number of applicants I can understand the need to automatically filter out those that can't even code Fizz Buzz. Beyond that though these tests are unrealistic.
  • Live in-person coding - If my job consists of me coding while a manager is looking over my shoulder all the time then it is going to be a hard pass. Even as a staff engineer, I Google how to do a lot of things, including things I should know off by heart. Having someone watch what I am doing just makes me nervous and causes me to make mistakes I wouldn't normally make.

I think the perfect balance consists of a short telephone interview to see if they are right for the role, a small technical project, and an in person interview with an engineer with a code review exercise.

This is the interview process I try and follow when I hire candidates as well making sure that the interview process is as enjoyable as possible. If the candidate is a nervous wreck then it can be difficult to gauge what it would be like to work with them and whether they have the skills required for the role.


❤️ Picks of the Week #

🎓 Course - Google AI Essentials Course by Google - What better way to convince everyone to use and eventually pay for AI than to create a free course? I have used ChatGPT a bit for my own personal projects, but the results have been a mixed bag. 9 times out of 10 I end up writing my own code from scratch. Still there might be something useful in this course.

📝 Article - Printing music with CSS Grid - When I am not coding or gaming I am playing guitar. I have tried printing out music before and it can be a nightmare. It is really cool that this can be done with CSS. Is there anything you can't make using CSS these days?

🛠 Tool - cezaraugusto/extension.js: Plug-and-play, zero-config, cross-browser extension development tool. - I made a browser extension a few years ago for my startup and there was a lot of hacking around involved to get it to work. It is great to see that this should be a lot easier to do from now on.

📝 Article - The IndieWeb is for Developers - I agree with this. The IndieWeb is a great alternative to the corporate walled gardens we are used to today. However, setting up your own website outside of these is still beyond the average Joe/Jane, especially when you add in all the IndieWeb technologies such as web mentions in the mix.

📝 Article - How to Execute End-to-End Tests at Scale - it is getting to the point at work that we need to start introducing end-to-end tests. This setup is definitely overkill for a small company, but it is good to see what we could turn into in the future.

📝 Article - Forbidden Links- I didn't know this was a thing, sites that explicitly say you are not allowed to link to them. Seems pretty absurd and unenforceable.

📝 Article - Pair Programming, TDD, and Rotation - I have always wanted to do TDD but beyond writing tests replicating bugs I have never really got into it. I have done pair programming a total of 2 times in my 14-year career as a software developer, and actually they were both positive experiences. This seems like a good approach to combining both and if I didn't work remotely I might try it out. For now, I am stuck doing Paw Programming with my cat (sorry for the Dad joke, I couldn't resist)!


💬 Quote of the Week #

"Instead of wondering when your next vacation is, maybe you should set up a life you don't need to escape from.” - Seth Godin

Top comments (0)