I want to share a recent experience I had applying to a “high-end” freelance talent network, mostly just to get this off my chest, but also to start a conversation around current hiring practices in the data science field, and also to give others a chance to share any frustrating experiences they’ve had. I was very surprised by the process, and found it to be somewhat humbling, and at least a little bit farcical.
After the initial couple of screening steps, I had a live coding challenge with an interviewer who let me know that I would be given several problems to solve, and that I would have 15 minutes for each one. I was not allowed to use AI, not allowed to use code-completion/suggestion tools, or internet searches. The only thing I could use was the Julia documentation (obviously, I chose Julia to complete the tasks). My initial reaction to this was, WTF, 15 minutes is a really short amount of time, so I kind of thought the challenges were going to be trivial, but that didn’t turn out to be the case.
I don’t remember the details well enough to recount any of the problems very thoroughly, but one of the tasks involved a guy named John who would be vacationing in Hawaii, and I was asked to write a function that took a year and the names of two months as its inputs, and it needed to calculate the maximum number of weeks that John could spend in Hawaii, given some constraints around which days of the week flights departed and returned (oh, and it explicitly said I had to account for leap years too). Another problem had something to do with checking the results of an OCR output that might look like a??le or a2le, and the function needed to determine whether the different strings could have come from the exact same word (e.g., apple in this case). Again, I was given 15 minutes total, including seeing/reading the problem for the first time. By the time I was done reading through everything and making notes about the various constraints and requirements, I was really down to 10 minutes or less in each case. In only one of the cases did they even show what they expected the function signature to look like, and it was just a simple dynamically-typed Python function definition.
After performing quite abysmally on the first problem, I was getting kind of pissed off at the absurdity of all this and finding it difficult to stay relaxed. Needless to say, I didn’t complete any of the three challenges, and that was the end of the line for me in this process.
I guess I’m curious to know what others have experienced when applying for data science jobs. I thought these particular challenges were ridiculous and a really terrible way to evaluate the kinds of skills and experience that I bring to the table. To me, it’s a little bit like if a newspaper or magazine decided to recruit a new writer, and in the very first interview they start a 30-second timer and tell the candidate to spell antidisestablishmentarianism. Are they looking for a spelling bee champion, or a writer? Wouldn’t it be better to look at articles they’ve actually written, or maybe give them a topic to write about and have them send it in after a couple of days?
I’ve always worked on a small team and my job has always involved working directly with the stakeholders to understand the problem they are trying to solve, and then it’s up to me to figure out (and implement) what the best solution is, end to end. I am often trying to implement modern solutions on outdated government infrastructure with a tiny budget (or sometimes, no budget at all), so most of what I do isn’t even writing code – it’s big-picture thinking, strategizing, weighing pros and cons of different designs/architectures, researching potential methods that we can use, and importantly, designing solutions that are going to be robust and withstand the test of time.
What I found to be ironic about these challenges was that if a company just wants to hire someone who can bang out some fragile, dynamically typed Python code in 15 minutes, without considering potential runtime errors, tests, overall system design, etc., why not have an AI do that work? I wasn’t allowed to use AI or even code completion/suggestion, but the code I was being asked to produce was exactly the kind of shitty code that AI can reliably produce in a matter of seconds. I’m not sure if the interviewer was even aware of what strongly-typed, robust code looks like, to be honest.
Some people have told me that these kinds of challenges really aren’t designed at all to test your coding skills but are instead designed to test how you handle pressure. I guess I can see that for certain jobs, but I’m frankly not interested in working for anyone who likes to fuck with people like that. Unless you are in national security, or some other highly sensitive environment where you really might have to solve a life-or-death problem in a very short time frame, it’s just cruel and abusive. I know a lot of really talented data scientists, and I don’t think most of them could have completed the tasks I was given in the 15-minute timeframe.
So anyways, I’ve actually been able to have a good laugh about this process now and I’m mostly over it, but I’d love to hear thoughts or, even better, similar experiences folks have had!