Upcoming book:

Modern .NET Development with Azure and DevOps

Related posts

Career

A story of a 22+ hours interview process

Introduction

At one point in the last few years, I had what appeared to be an amazing opportunity with one of the big companies of an industry. Over a month and a half later, I regretted ever contacting them, having had wasted at least 22 hours in the interview process.
I will not mention the company and I will try to generalize the code challenge, because the company does not really matter, the experience and reflection does, and it is likely that the company still uses the same hiring process.

The interview process

The summary of the process was as follows:

  1. First, an initial screening interview of around 30 minutes to 1 hour.
  2. Then, I was sent a coding test.
  3. And finally, I had a 4 hours long interview that consisted of 3 or 4 interviews.

The screening interview was similar to most other screening interviews I had, so I will skip it and focus on the interesting parts of the parts 2 and 3 of the process, and the overall process.

The coding test

After passing the screening round, I was sent a code challenge that I had to complete within one week of receiving it. I have had similar rounds in the past, so it did not surprise me at first. This one, however, was by far the longest challenge I have ever seen! The test was like this:

  • Implement the requirements by creating a UI (I chose Angular) and a back-end (ASP.NET Core).
  • There were a total of 9 functional requirements. Each of those requirements consisted in at least one UI page/component and one back-end endpoint. There were also 2 non-functional requirements, but those were not interesting.
  • Some of those functional requirements were "optional", whatever that means for an interview.
  • The workflow (how I went through the requirements and the solution) had to be written down in a Markdown README file.
  • The only thing I had to begin working was an ASP.NET Core solution with a database and a repository service with methods to get data from the database.

Writing the solution to the test

This part of the interview process took me as much as 18 hours to complete. Why? Let's go through the requirements:

  • The backend requirements were simple endpoints in ASP.NET Core, so in total it was only a couple of hours to get all those endpoints done.
  • The biggest part of the 18 hours were spent on the UI, as I had to create an Angular app from scratch. This means:
    • Create the project, decide on an architecture (I used NgRx), 'choose' an UI approach (I used Angular Material for faster styling), but also decide on how I was going to present the UI/UX.
    • I also had to take the time to see a few of the company's products to "create something akin to their UI/UX" (meaning: similar structures, similar colours, etc).
    • Adding log-in and supporting authenticated routes (only /login was open to anonymous users).
    • I ended up with as many as 11 components and 4 separate stores.
    • Probably the most time-consuming (set of) component was a list that displayed products with images and some metadata like the name. I took the time to do it similarly to what the company does in their main product.
  • I mentioned before that I had to document the workflow when developing the solution, and the way I did this was to have a private GitHub repository, with an issue for each requirement. I had a total of 21 issues, 23 pull requests, and 61 commits. My hope was that the company would request access to the GitHub repository (which I suggested), so each commit and PR had an appropriate description - akin to what I would do at work.

All in all, that was a lot to do, especially considering that I did all that in a single weekend.

After I sent back the coding test

I was surprised that after such a long coding test, I was called for a 4-hours long interview, which consisted of multiple parts. I won't give too many details here, again just to protect the (yes, flawed) interview process of that company. Of interest, however, is the fact that they were not interested in looking at the private GitHub project I had made, and I had several technical rounds.

After the interview, however, I was surprised even more. I was told that both the hiring manager and the project manager were going on a 4-weeks long holiday, and I had to wait for those 4 weeks to get an answer.. In my mind, I was sure that I had the job and that they just needed to formalize it and the managers needed to be in the office for that. Needless to say, I was wrong.
I was sent a quick email saying that the company had chosen another candidate because "they had more experience with JavaScript". Should I mention this was for a full-stack position?

TL; DR: Between the initial interview, the technical screening, the coding test and the final interview (plus emails, etc), I had spent over 22 hours in the interview process.

Conclusion

Believe it or not, I learned a lot from that interview process:

  • How to set up an Angular + Angular Material + NgRx project - I had never done this entirely from scratch.
  • That companies don't value the candidates' time, and so that interview processes should not be so long.

After this process, I decided not to accept interview processes that take more than 5 hours. It stands to reason that if FAANG companies have "long processes" that take around 5 hours, smaller companies most certainly do not need more than that time. Furthermore, I have been in and seen very few processes that require that amount of time from a candidate.