PSA: Stop cheating on your online assessments

Hi everyone, I really hope it is okay to post this here, if not feel free to remove, but I hope it helps.

I work for one of the big ones, and even I used LeetCode to prep for my interview way back then (and fully believe that the practice here made a difference). I have been working here a long while now, and part of my job is to review the coding assessments candidates take prior to/during their interviews. And I have noticed a disturbing trend lately, in that more and more people are cheating on their assessments.

And you all know you shouldn’t cheat, I am not going to get into the ethics discussion here, but I want to shine some light on how the system looks from our side, in hopes that I will convince some of you not to.

These systems have loads of ways to detect cheating, but the basics include logging every key stroke in the editor (including copy-paste), if the editor loses focus for any reason and how long (switch tabs, etc.), and even a to-the-second timestamp of every action on your assessment. We can replay your entire assessment as if we were looking over your shoulder. Creepy? Probably. But it is obvious when you go looking up answers. Often, when you take one of these assessments, you are going to end up in manual code review, just because the plagiarism detector is strict. And then we manually check for all these things and then some.

And once we see you are cheating? Well, it goes on your candidate profile and shows up every time you apply for a job with us again.

So, you’re stuck on a question, your time is running out, you’re desperate, and you want to look up a solution. Here is what you should do instead:

  • We grade on style too: make sure the code you already have is neat and clean, and you are using your language of choice properly
  • Comment everything: add comments, explain what you were trying to do, and why, what you want to do but ran out of time for, anything you can think of that will make your case. Engineers are reviewing your code, feel free to speak "tech" to us
  • Move on to the next question: not everyone knows how to optimize every solution, and us reviewers do not know all the possible answers either. Show us you know what you are doing, and if the test cases you are missing are because the code is timing out and you do not know what to do, move on and come back to it
  • Can't do anything else? Step through your code: we all have our favorite code editors, and we know they are a million times better than the editors the assessments force you to use, so by walking through your code line by line you might catch the small bugs that your IDE typically would have thrown a red flag for. Minor bugs do not disqualify you!

In all, if nothing else, assume a human is going to look at your code. The goal of the code assessment is not to get a perfect score, but to see if you know your stuff, and us reviewers are looking for any reason to pass you along to the next round. If you can demonstrate you know what you are doing (and that given more time/resources you would eventually get it right) you will move on to the next round, regardless of your score. It is not about getting the best score possible, and it is not a pass/fail system. Don't give up and throw your assessment away by cheating. I’ll take you getting a zero because of some bug in your code over a perfect score pulled from the first page of Google search results every single time. We want to hire you. Give us a reason to.

Don't cheat.

Comments (43)