How to pass a HackerRank test for a coding job without cheating
It's no secret that finding a new job as a developer in a bank or hedge fund can be a tortuous grind. This is largely as a result of the coding tests that have become a common part of the recruitment process and that usually require weeks of preparation. As one technology associate told us in January, most people who want to swap jobs simply don't have time to prepare for the tests.
One of the most popular providers of coding tests is HackerRank, the online test provider used by banks like Goldman Sachs. Last year, CEO Vivek Ravisankar says HackerRank assessed 10 million candidates on behalf of its clients. This was up from 5 million candidates in 2020. Ravisankar says many of the company's new clients are in areas like fintech where hiring is "red-hot." These days, you'll come across HackerRank tests if you apply for developer jobs at Coinbase or Stripe too.
As HackerRank's popularity grows, though, there's a problem: more and more candidates are trying to game its tests. "Cheating has increased and people are getting more creative about it," says Ravisankar. "We're building new functionality to tackle it."
As we wrote last year, HackerRank has a machine learning algorithm that looks for plagiarism in the answers provided to its questions. "We have a code matching service that tells us how close the code a candidate writes is to code submitted by someone else, and that flags code that's very similar," says Ravisankar. HackerRank also looks at behavior - how quickly did a candidate submit a difficult answer? And now it's looking out for impersonation too: "We have a proctoring service that can detect whether there are multiple people in the room when you turn on the camera."
Many of the HackerRank cheaters are university students, says Ravisankar. "They are young and desperate to get a job, and they want to share questions." But cheating risks getting you disqualified from the recruitment process entirely.
Most people who want to prepare for HackerRank tests go to Leetcode in search of questions. Ravisankar says HackerRank is aware of this issue and is mounting a two-pronged attack. On one hand, it regularly demands that Leetcode take its duplicated questions down, and on the other it's building its own practice space: "It's like we want to kill Napster by building Apple Music," he reflects.
Some of the most vigorous opposition to coding tests on platforms like HackerRank comes from senior coders who feel that solving what are often algorithmic puzzles is beneath them. Ravisankar says the company is aware of this too and is pivoting to different sorts of problems: "If you're going to test a senior engineer, you need to be asking them real world problems."
However, even at the junior level, he says there's a move away from the kinds of esoteric algorithmic questions that have given coding tests a bad name. The intention increasingly is to pose questions that anyone should be able to solve, and that don't require a lot of previous specific practice, says Ravisankar.
Passing this new generation of HackerRank questions isn't just about getting the right answer to a problem. It's increasingly about code quality, says Ravisankar. Potential employers want to see examples of best practice in test-takers responses. For example, if you're coding in C++, you shouldn't be using the kinds of unused variables that are seen as waste of space.
Before you sit a HackerRank test now, it's therefore worth understanding what high quality code looks like in your chosen language. As Coinbase states in its own blog on the subject: "Practice writing well formatted and well-structured code with relevant method and variable names, good state management and error handling." This may be more worthwhile than spending long hours on Leetcode.
Have a confidential story, tip, or comment you’d like to share? Contact: firstname.lastname@example.org in the first instance. Whatsapp/Signal/Telegram also available (Telegram: @SarahButcher)
Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)