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)