I've failed 4 live coding interviews so far, which has been my wake-up call that I need to learn this skill.
I do question funny hat dances value in the real world...
I learned a different funny hat dance 8 years ago called white boarding.
I questioned its real world value back then too, but had no choice, it's what people wanted to see.
I'm not saying I'm the best engineer in the world. I'm saying I've provided tons of value for the companies I've worked at and my salary reflects that. I've had an above market rate salary for the last 3 years.
No, the company I work for isn't dumb, in fact, it's often seen as tackling some of the hardest problems in computer science (decentralized cloud storage). I know I provide value and I know I'm a good engineer.
However, I also suffer from anxiety.
It makes me appear dumb in these live problem situations. This week, I was awake half the night for two nights because my heart rate was going so fast. The week previous, same story. I don't understand it myself. I tell myself "who cares" to try to get my body to sleep, but it doesn't work. You can imagine how having no sleep can affect an interview. It makes me fail again and again.
So why don't you practice?
I'm going to. I just haven't had time yet. See my question at the end
Isn't your anxiety from not preparing?
Partially. I've had to deal with this my whole life. If I prepare and convince myself I don't care at all about the outcome, the anxiety goes away, but otherwise it's always there.
Why is this only a problem now?
I haven't had to interview since 2015, my last two jobs I got from being poached. Those who know me, are familiar with my work ethic and my ability to problem solve.
So here I am, like 8 years ago, I have no choice but to learn how to dance with a funny hat on, so here's my question.
How have you best prepared for live coding interviews?
I don't want to push drugs, and you definitely need to talk to your doctor, but I take a beta blocker in situations like yours. The heart pounding, overwhelming terror just melts away and I become (more or less) my normal self. Just knowing that I CAN take a beta blocker (and get symptom relief) often means I don't need to take it in the first place.
Drugs or not, too much anxiety is a real condition and professional treatment vastly improved both my professional and personal life.
Doing other activities that induce this sort of anxiety can help too. I've been a combat athlete my whole life, and the anxiety you get before a match is like no other. Not being able to sleep the night before is the norm, and I've seen people vomit before matches. Plus, it's not a few engineers watching you, but rather a whole crowd of people watching you, with half of them cheering for you to lose. After this experience, live coding interviews are a cake-walk. I get nervous as well with a pounding heart and nervous sweats, etc. But I tell myself I've been here before, and perform as best as I can in spite of it, like I've done before. I generally don't perform quite as well in the interview or match as I do when no one's watching, but that's just how it goes. Learning to perform under pressure like that is a skill that needs to be cultivated.
[0] eg https://youtu.be/gaGrHUekGrc
Bypass the screening interviews when possible (not everyone has to do all the live coding exercises) thanks to internal referral, etc.
Realize that even if you pass a leetcode screen, you might get bounced for some completely arbitrary reason at some other point in the interview process.
So, see the live coding as one aspect of an of an arbitrary and weird way people make decisions these days. (Remember your value and understand even if you ace that part it doesn’t mean you’re gonna get a job).
Know what makes you really amazing and unique. Whatever you’re great at, if the fit is good for the role they will be selling it to you the entire time.
If you’re fighting uphill for a job whether it’s at the live code stage or elsewhere, take note. Use that live coding session as practice for the one you really want.
As a recruiter that focuses on programming roles I've had many programmers share the same sentiment as you. Some companies understand this others don't care but I find being upfront about the programmers performance anxiety is often very helpful.
Please feel free to reach out (contact in bio )
Good Luck!
When enough people walk away from these interviews, they will get the message and the status quo will change. In the meantime, I will continue working for shops that do not feel the need to use such abusive interview tactics.
I would purchase leetcode premium and start working your way through the top 100 most common easy and mediums. If you are trying to land some FANG job offers, then I would also spend sometime working through the top 25 Hard problems too. But start with easy.
?
Having been on both sides of the interview process I've tried to think through possible solutions and in doing so I've identified two factors at play.
1. Organizations have to pull busy employees from their work and into interviews which adds even more overhead to the talent acquisition process. Once hired the onboarding and training represents further overhead costs- it's probably not uncommon for a new hire to not be able to render even 80% of their value until ~3-6 months into their new position. In short, even in the best case scenario hiring and onboarding has a lot of costs and represents a sizable investment.
2. In an ideal world a good engineer could just be given the proper time and real-world work to display their value. Due to factor #1 an org can't always take this risk and even if they did could they scale that process? Then if you try to imagine ways to change the coding interviews to more accurately reflect real-world work you might find a better balance but given all the arbitrary constraints which produce all the imperfect simulacrum exercises you're inevitably left with much of the same problems.
Clearly this is an area ripe for innovation (yc alone seems to always have a handful of recruiting/talent related startups in each batch) but those two factors seem to hinder the odds of real disruption.
I think there are also likely more dimensions to this problem. There's a lot of momentum behind these standard practices and it makes me wonder if there are latent motivations held by all various stakeholders to maintain the status-quo.
- The Human Resource actors have their education/training and want to optimize behaviors for their KPI's. Could both their training and KPI's be oversimplified legacy solutions in a "thorny-problem" space that no one has incentives to challenge?
- The Engineering Management actors are often dealing with the chicken-and-egg problem of "I don't have the proper time to try and improve this interview process because both my team and myself are overworked and until I hire more people I won't have more time"- by the nature of growth in tech orgs won't this chicken-and-egg always be occurring?
- The Recruiting Agency actors thrive on looking at the whole process as a numbers game- casting a wide net and pushing candidates through as fast as possible. If they bother to take too much time on higher-touch areas like actually making sure a candidate is a best fit based on many dimensions they sacrifice making the numbers their ambitious counterparts are making next door.
- The Innovative Talent Startup actors need to promise product-market fit, to-market strategy, a large TAM and an outsized ROI which likely means rather than challenging the momentum of this dysfunctional process (and all it's nuanced factors) they're more likely to succeed as a venture by leveraging the momentum and tapping into one part of the process or another.
- The Engineer/Candidate actor enters the process with a sort of unspoken precept that they are in a position of little-to-no leverage and are "unworthy" until proven otherwise (never mind your years of experience). Could this whole shared perception be a vestige of a time when a single employee could not represent enormous, outsized ROI to an organization? Is this just a cultural artifact reinforced by the thin veil of meritocracy that we want to share? Could something like a re-imagined LinkedIn invert this? Could our network of past and present coworkers, managers, etc. vouch for us in a verifiable way using a reputation system to reinforce the integrity of your "score"? Once a system like this proves effective couldn't it supplant most of the hiring/recruiting/talent industry and make everything massively more efficient? (This is mostly a mental exercise just to expose how arbitrary and invisible are the factors that dictate the whole process. I know some wouldn't like the idea of past coworkers dictating your "score".)
In the meantime, and on a more pragmatic level, if I were you and if you're not already, I'd try to start being more up-front with the org from the beginning around the interview process. In the past I've said from the start "I'm very busy at my current job so I don't have time to practice algorithmic puzzles so I hope the coding challenges reflect real-world problems cause if they are the standard algorithmic puzzles I likely won't do well.". I also will reiterate this at the start of the coding interview if I realize it really is just a puzzle from "Cracking the Coding Interview".
Lastly before going into these interviews try and meditate for a moment on how arbitrary the whole process is, how you're just as "victimized" by the process as the people interviewing you and that your value is in no way reflected by such a messy process. Because there's this unspoken agreement that this is a numbers game perhaps you too must, for now, play the numbers game and as such detach yourself from the outcome of any one interview.
I had a few remote live coding interviews, most of the time I just panic, quit in the middle of it and ghost the recruiter.
But I didn't need to do live coding interviews for my last 5 jobs.
Of course it kinda limits the kind of company that would consider hiring you, but it also filters out the companies that would be dumb enough to consider whiteboarding or live coding a reliable way of testing a candidate.