On HackerRank And The Way Forward
So, before I launch into a cutting a promo here, I want to offer a quick context window. As I’m working towards graduation at Georgia Gwinnett College with a bachelor’s degree in software development, I’ve formally started to apply for career opportunities. I’ve been hitting a lot of the early-career, recent-grad types of postings. I was recently extended an invitation to interview for one of these opportunities. I did the asynchronous interview, 8 questions about what I’ve worked with, times I’ve failed and how I’ve responded, working in difficult groups, moments of triumph, standard interview fare. I was then invited to participate in a technical assessment, administered by HackerRank. The question involved a pair of pretty difficult algorithmic problems.
Well, gang, here we are on a Monday of a morning, and what’s the first thing I wake up to as I’m scrolling through LinkedIn? A faux mea culpa from the CEO of HackerRank announcing their new marketing campaign and a change in the way that they administer their assessments. That’s right — not even twenty four hours in the wake of this assessment costing me an opportunity to begin my career, this lot drops a weak apology and announces a new marketing campaign for a new and improved product with which to gatekeep prospective job candidates. Lovely!
Now, I don’t want to just make like a Dave Matthews Band tour bus on the Kinzie Street Bridge in beautiful Chicago in this post. I do, however, want to work through a couple of points of thought about this.
As someone for whom this demonstratively and anecdotally cost a job opportunity, it’s pretty difficult to not feel a little hard done by in this circumstance. Zooming out a bit, I can also see an employer’s point of view in being frustrated that they will now, ostensibly, need to subscribe to some new product if they want to continue working with this company and their tools. For just as many, this approach will probably remain unchanged.
Another thing to acknowledge is that this is the new reality of a field that is changing in significant ways by the day. New technology is multiplicative in an exponential manner with the tools meant to govern aspects of its administration. This is true in human resources, this is true in business operations, this is true essentially everywhere.
At the same time, I think it’s fair to acknowledge that in this instance HackerRank put a flaming bag of poop on my doorstep, rang the door bell, snuck off and giggled behind some bushes while I came out and stomped on it to put it out, and then rang my doorbell again and is trying to sell me flaming-poop-bag-proof boots.
However, the standard is still the standard. Life is not an exclusively boolean condition. I can acknowledge the shortcoming of, to quote the HackerRank ad, not being able to algorithmically determine “how many golf balls can fit in a 747” from right off the top of my head. If that’s the standard, then that’s the standard, and I didn’t meet it, and life goes on. That won’t change my approach.
In my previous LinkedIn post, I had mentioned how I had prepared for the exam. Getting back the lapsed muscle memory of programming in Java. Understanding data structures. Understanding traversal. Understanding sliding windows. Time complexity. How to document code. How to create readable code. How to use function and variable naming conventions that point to what the purpose of the variable is, and what it’s meant to do. Understanding the nature of algorithms and how to approach problems analytically and think critically through them remains an important core concept.
I worked as a civil designer in Atlanta for one of the city’s oldest land surveying and civil engineering firms. I was green as a pepper tree and didn’t know poop from apple butter about civil engineering. This company was kind enough to take a chance on me. During my time there, however, I developed the ability to use AutoCAD land desktop to plot street layouts, determine lot sizes, establish build pads, and cite city and county ordinance to create water service distribution plans. I started to learn the differences in what pipe material to call for depending on the application, whether it was PVC, ductile iron, or otherwise. I became NPDES certified as an erosion and sediment control professional. I developed understanding of how and where to deploy silt fencing to ensure earth-moving construction activities didn’t cause Georgia red clay to spill out into the street when it came a real good rain. I understood the principles of riparian buffers and call for certain plantings and grasses to mitigate stormwater runoff in a meaningful way.
If I want to be a software engineer, these are the types of concepts I need to expose myself to and master in order to put my foot in those doors when they open and try to get in. I need to understand the importance of meeting time complexity requirements. I need to understand how to group data in unique ways. The engineering concepts will never go away. These are among the most important skills I still need to hone and develop as I’m trying to break into this industry. Even when they keep changing the gates.
I remain undeterred in this pursuit. Just because HackerRank’s approach changes doesn’t necessarily mean that mine should. Just like I talked about in my LinkedIn post about my approach, once Web Development class is over, you can find me on campus refreshing my memory about Java lists because I want to be able to pass them into a hash map so that I can fully leverage the power of key-value pairs.
The standard remains the standard.