Why HackerRank Sucks

Published at 12:02 on 31 May 2024

Foreword

I have thought of writing this article more than once before. I just got assigned yet another HackerRank test as part of an interview process. Sometimes, I have blown such things off entirely. Sometimes, I attempt to do my best on answering them.

This time, I plan to do something different. I will have a link here in my response to the problem; if you are reading this as a result of following that link, then here is why I responded the way I did.

Introduction

HackerRank sucks for two main reasons:

  1. The general irrelevance of undergraduate computer science exercises to real-world programming, and
  2. The artificiality of HackerRank’s time constraints.

Irrelevance of Problems

In my experience, HackerRank’s exercises tend to be thinly-disguised rehashings of undergraduate computer science homework assignments. Such assignments tend to be heavily based on coding implementations of basic data structures, often trees of various sorts, that have very limited real-world relevance to solving problems on the job. I have written on this here before. It’s really not a surprise, given how the usage of such problems is basically mandated by the general nature of the constraints of the HackerRank platform.

Effectively, such tests screen for either recency of undergraduate coursework (and thus lack of practical, on-the-job experience), or willingness to spend time brushing up on a skill set whose real-world utility is extremely limited (and thus for unquestioning submission to authority and willingness to obey pointless rules). The first is diametrically opposed to the goal of filling a senior-level position, and the second is diametrically opposed to the sort of environment that I personally thrive in.

Artificiality of Time Constraints

Real-world programming tasks generally do not pop unexpectedly out of nowhere, with no advance warning. They are usually foreseeable as part of the natural trends of evolution of software systems and the organizations they support. As such, the prudent developer has usually already spent some time thinking about such issues. Sometimes, of course, they do pop up unannounced (long-latent bugs sometimes manifest, and sometimes have severe impact). Even then, they don’t come with a count-down timer and a hard artificial deadline. It is possible to take a walk (I get some of my best ideas outdoors) or to bounce ideas off colleagues.

With HackerRank, there is no such subtlety. The clock is ticking, the artificial deadline is rapidly approaching, and it will be enforced without mercy. (Sometimes you even get a so-called proctored test, in which you must enable a spy camera. Leaving the room is considered cheating. Lucky you.) You will solve the problem in one sitting, and you will do it now. And the problem has limited real-world relevance at best.

Conclusion

Maybe I will submit an actual solution, and maybe I will not. It will depend on the exercise and how I feel about it at the time I submit my response. At any rate, the link here will be the most important part of that response.

Really, there is not much more to say, so it is time to wrap this up. HackerRank sucks, and now you know why.

I May Have Found a Tech Job… in Vancouver

Published at 10:23 on 25 August 2021

It’s not 100% certain yet, and there’s still immigration red tape to go through (with a good chance, but not a certainty, of approval) even if the offer does come. So no celebrating yet.

One thing it does all show, however, is how effed-up and bigoted against older people the Seattle high tech scene is. I applied at literally dozens and dozens of positions in the Seattle area over the years. Got called for an interview at maybe 10% of those, and offers at exactly zero of them, even for the interviews in which I absolutely nailed every question. Contrast with Vancouver: three applications, two of which resulted in interviews, one which looks likely to result in an offer, and on none of those interviews did I absolutely nail everything (only did passably well).

Even if nothing does come through, this avenue has been productive enough that it will probably be worth trying again. I really have to thank the friend who encouraged me to check out Vancouver because the scene there was different.

Back to Work

Published at 21:28 on 28 June 2018

It really seems like one of the hardest job searches of my adult life is over.

This is not going to be a super-long-term solution. I simply know too much to ever reasonably expect it to be: none of my jobs ever has been.

But it is going to hopefully let me kick the can down the road a few years. By then, I really do think I will be in a much better position to transition out of tech work permanently.

One of the things I had been cursing was how I was becoming apparently unemployable in the tech industry just a few years too soon. Now it seems that the timing can be arranged to be much more convenient.

Job Interview Debrief

Published at 09:45 on 9 June 2018

It didn’t go as badly as the norm for such things, and they are desperate to hire new talent, so there’s a chance that I will get an offer. But only a chance, and not much of one at that. The effort to get out of tech work must continue unabated.

The effort must continue unabated even if I do land an offer, because past experience indicates such a result will be at best only a temporary solution to the permanent mismatch between me and where the tech world is today.

At least I got a lunch at an upscale restaurant and a free notebook (with paper that doesn’t bleed with fountain pen ink at that) out of the day’s efforts, so they weren’t a total waste no matter the outcome.

Another Job Interview

Published at 08:52 on 8 June 2018

I’m heading into the city for another job interview. We’ll see how well it works out. I would like to say I am cautiously optimistic but honestly I am not. This is not pessimism; it is realism. Everything I have learned in the last few years points to:

  • Overall trends in the computing industry running precisely counter to my own personal needs for a work environment, and
  • Persistent ageism, coupled with how I am not getting younger as the years pass, leading me to being rejected based on appearance alone.

At this stage, job interviews are something I am doing on a non-interference basis to the pursuit of other strategies for financially supporting myself. If I do manage to get lucky and land a job, experience has shown it will prove to be temporary anyhow, and extremely unlikely to last longer than a few years. It will be a means of kicking the can down the road and buying some time for me to complete the difficult process of securing a good alternate strategy to conventional tech work, nothing more.

Well… Here Goes Nothing

Published at 08:09 on 21 March 2018

Not quite “nothing,” but let’s be brutally honest: that’s the most likely outcome of my going to the Washington Botanical Symposium to do some job networking. First, I totally fucking suck at anything that requires social skills, and networking requires such skills in spades. Second, the odds in general are bleak, even if I do try a few strategies to cope with the first issue (which I plan to do).

Still, the odds are better than staying at home and not making any attempts at networking at all.

Tech Work and Alternate Plans

Published at 21:20 on 26 July 2017

Well, chalk up another blown interview. I’m not sure if it’s just age discrimination at work (and deliberately creating impossible hurdles as a pretext) or just trends moving in ways that I am fundamentally incompatible with (so much of the “agile” trend might more accurately be described as “give software developers as little privacy and personal space as possible, and maximize the number of interruptions they are subject to”).

Whatever the reason, it’s becoming increasingly clear that today’s tech workplace is probably not for me. I could make yesterday’s work, but that was yesterday, and yesterday is gone.

So I’m increasingly thinking it’s time to move on to something else. The big question is what.

Really? A Four-Hour Timed Test?

Published at 16:16 on 11 July 2017

Just to be able to talk to an actual person at the company? Does this anonymous employer have any idea how onerous a demand that is on someone’s schedule?

Demanding a four-hour time investment just to be able to speak to a human, even a personnel droid, is bad enough. Demanding it be in the form of a timed on-line exercise that cannot be paused takes the cake. Now it has to be four consecutive hours, blocked off in one’s schedule. That’s nearly as big a time commitment as a half-day on-site interview!

And realize, I do poorly on timed exercises. My style is to shelve things and think about them “in the background” for a while while working on other things. Timed exercises are fundamentally incompatible with that technique. So it’s hardly a surprise that the number of job applications that have gone further as a result of attempting such things are, in my case, exactly zero.

With those kind of odds, you can bet I am not falling over myself in eagerness to start the exercise. I may still attempt it, but frankly, there’s things right now I can do that have more promise than this particular time sink.

Why I Dislike Recruiting Firms (One More Example)

Published at 19:39 on 16 June 2017

So, I see a job listing. It’s obviously posted by a recruiting firm, but it’s a distinctly better than average match, and I haven’t sent anything to such people on a long time, so I decide to give it a try.

It almost immediately prompts a callback. There’s just something sleazy about the level of eagerness in the guy’s voice, and how it’s hard to get a word in edgewise. Finally he calms down enough to where I can ask a few questions.

At that point, it becomes clear that:

  • No such job actually exists; he just crafted the job description to prompt responses and pad his list of existing contacts (he even admits as such), and
  • Most of his clients are in Bellevue, despite his listing the job as being in “Seattle.” Bellevue is an unacceptably long commute for me, so I deliberately ask Indeed to search for jobs “only in” Seattle proper.

And that’s why I have such a dim view of recruiting and consulting agencies, and as such generally shun them. They misrepresent.

My Old Boss Just Quit Today

Published at 15:07 on 19 October 2016

Just by chance I met him as he disembarked from the ferry, and he shared the news with me. The short story he gave (it had to be short, as the ferry loaded soon thereafter) is that hs was demoted, saw that as completely unacceptable, and walked out the door for good.

My educated guess is that he was demoted for failing to achieve the impossible: bringing some of the least-maintainable code I have ever seen up to snuff. The only way to fix its problems is a complete rewrite, which is something that may in fact not be possible given the resources available to the firm in question. At any rate, it’s something that firm is unwilling to seriously entertain. The latter two facts were some of the things that was playing through my mind when deciding it was time to part ways myself.

The upshot of this news is that things would have gotten significantly worse had I decided to stick it out (he’s definitely one of the best people I’ve reported to, odds are the next guy wouldn’t be so good, plus morale and continuity would have suffered). I’d probably either be quitting myself of soon be asked to leave under that alternate scenario. In turn that would have put me in pretty much the same scenario I am now, but without the benefits of being able to make that late-season trip to Wyoming.

It all goes to show that honesty (with oneself as well as others) is almost always the best policy. Buying into a lie that there was a future in the work I was doing there would have simply made me worse off.