The Coding Assessment

I recently applied for a developer role in one of the FANG companies. Just to put this in context, I have not had to seriously do one of these job interviews in almost a decade. I had to complete the online assessment in a week’s time so I decided to start practicing over the weekend. I tried some sample coding tests last night and had so much fun doing it that I fell asleep at 4 in the morning. It’s not looking good for me though as it took me an hour and 45 minutes to complete a test that should have been solved 30 minutes max. To be fair, I did solve it within 45 minutes but it took me another hour just to make it awesome 🤣. It’s interesting that tech companies like Amazon, Google, Facebook employ these type of interview tests if you ask me. These are things I have not had to think about in the last 2 decades of my professional career as they have not had any practical use case in the kind of work that I do. I would even say that most professional developers who have been working in the software industry are no longer exposed to these concepts at all.

I’m not saying that thinking about time/space complexity or knowing how to write a recursive merge sort has no value in professional software development but for the most part code readability and maintainability trumps those values in an environment that focuses on delivering business value first. I kind of regret writing that last part but that is the reality of most software development outside critical mission and operating system applications. Most frameworks and almost all business applications care more about accuracy and reliability of the result than they do about performance. Let any developer who has not committed this sin be the one to cast the first stone.

I read parts of “Cracking the Coding Interview” by Gayle Laakmann McDowell as part of my cramming. In her book she mentioned that the reason these screening tests are used is because companies are more concerned about getting a false positive as that is more damaging than letting a few good ones get away. I agree that is a good way to minimize the risk of hiring a really bad apple and not having an easy recourse to getting rid of them. I think this kind of hiring strategy does more than just let a few good ones slip away though. In my own personal opinion this encourages the hiring of a much younger demographic because concepts like binary trees and mathematical algorithms are still very much part of their regular thought processes. This effect might actually be intentional as tech companies do thrive better with a much younger, less experienced group of employees who are more likely to think of more relevant solutions that pertain to their age demographic’s needs because they do not carry the emotional baggage and bad habits of the more experienced veterans. I’m pretty sure they did not have mid 40s people in their minds when they were developing Snapchat.

The way I see it, to pass this coding assessment you do not need to be a creative coding genius or a seasoned software engineer with a proven track record of delivering software to actual users. The best strategy to pass a coding assessment like this is the exact same way you get to Carnegie Hall. Practice. Lots of it.

One Comment Add yours

Leave a comment