top | item 29908958

Ask HN: Have anxiety, need help with live coding interviews (funny hat dance)

30 points| amozoss | 4 years ago

I don't have the live coding problems skill (funny hat dance).

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?

24 comments

order

xnyan|4 years ago

It sounds like you have an anxiety disorder. I do too! It's not a simple fix, but I've gotten huge value from therapy for my anxiety. CBT gave me fast and cheap results that really helped. Psychotherapy has given me a more long term solution, but CBT gave me a lot of relief in just weeks.

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.

amozoss|4 years ago

Thanks for the response, I really appreciate it.

For the most part, I've learned to live with it, but it has greatly been amplified by these interviews lately.

I've also had it happen to me when I'm on business calls when I'm acting on behalf of the business to make a good impression.

And of course, public speaking, but I feel like that's pretty normal.

I like what you're saying though, just knowing there is a backup plan when things aren't going as planned, in and of itself is treatment.

treebot|4 years ago

Practicing a ton can reduce anxiety, since you'll have confidence that you can most likely solve the problem. Plus, if you practice enough, you'll see so many problems that you might get the exact same problems in the interview. If you do something everyday, it becomes less of a big deal.

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.

amozoss|4 years ago

Thanks for the insight.

I've handled several high stress situations on the job. E.g. servers are down, customers are pinging support. Everyone doesn't know what to do.

I've solved problems several times in that environment. I have the battle scars and I'm used to doing that.

I am much more comfortable in a giant legacy codebase that I've never used before, trying to fix a critical bug that is losing the company thousands of dollars per minute than I am during these live coding sessions.

I realize tons of it has to do with practice so I plan to do that.

It's just confusing to have an entire decade of high performance (with references to prove it) to be judged on how well I can dance with a funny hat on.

I'm not whining, I'll do the work. I just don't have time right at this moment, if that makes sense.

fragmede|4 years ago

Practice, practice, practice. Since you're willing to do the silly hat dance; some thoughts on the type of practice you could do: Program with your laptop hooked up to your TV to your empty living room, to get used to the feeling of being watched. Then have a close and trusted friend be in your living room and just sit quietly. Add a cafe background noise track playing[0]. After you're comfortable with that, stream yourself solving leetcode/whatever problems on Twitch. Doesn't actually matter if anyone comes in to watch you, but talk out loud and explain your thought processes as you work your way through each problem.

[0] eg https://youtu.be/gaGrHUekGrc

neoncontrails|4 years ago

This is all great advice. I won't pretend that, after a slew of embarrassing incidents early in my career, I've learned to embrace the livecoding interview. No way. I still find the experience stultifying and a bit demeaning. After taking a part-time teaching gig, though, I can confirm that regularly coding in front of a live audience isn't just helpful practice.

This will probably sound hokey or hyperbolic to a fellow anxiety-sufferer, but solving problems in real-time while other people watch kind of... changed me. For the better, I think. In that it fundamentally transformed the way I approach the tech interview. No longer am I the obligate performer of "silly hat dances," but more like... an unflappably cool Jazz saxaphonist at a smokey cabaret, waiting for my drummer to give me a beat. The technical interview doesn't make me anxious anymore because I don't even think of myself as "interviewing" for something — I'm just a musician with an instrument in my hand, trying to figure out if we can make music together, if that makes sense.

bredren|4 years ago

Here are some tips:

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.

DevToRecruiter|4 years ago

As a former programmer I completely understand where you're coming from. Live coding with someone over your shoulder and doing productive problem solving work for your employer are two completely different skillets.

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!

voakbasda|4 years ago

I have decided that I will end any interviews where the process does not feel right. That means I will not work anywhere that requires leetcode, whiteboarding, live coding, take home tasks, or other exercises that have no bearing on my actual job or thirty years of verifiable past performance. These are all an insulting waste of my time, and I will have none of it anymore. They only demonstrate the willingness to squander enthusiasm and ability.

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.

amozoss|4 years ago

I'm lucky in that I don't actually need a job yet.

Hence the reason I decided to go in pretty much cold-turkey. I wrongly assumed a decade of shipping 5 SaaS products from scratch (some completely by myself), that have real revenue, and thousands of users, sometimes millions.

They only want to see me dance with a funny hat on

Nothing else seems to matter.

I mean I get it, they need to screen people.

Is there not another way to screen people though that doesn't amplify my anxiety?

decafninja|4 years ago

Curious what country/region and industry you work in, and whether you have some sort of niche specialization vs. being a generalist SWE?

Gortal278|4 years ago

Unfortunately you need to practice to pass these tests, that's it. It's not really reflective on your competence as a developer it's just a different skill set. The anxiety will become more manageable as you get better at solving the leetcode style interview questions.

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.

aliswe|4 years ago

Why hasn't anyone suggested what I think is obvious ... if you have anxiety on such a level that prohibits you from doing a certain activity during the interview, then you should say so.

?

amozoss|4 years ago

I do feel like it's rather mild most of the time.

As I said, I don't really understand it myself. It's very strange to lay awake at night though. I feel like it's triggered by stress, but like... not stress I feel like I even care about. Sometimes my body decides it cares to be stressed but my mind doesn't care.

I'm probably just normal and didn't prepare enough /shrug

yellowcake0|4 years ago

If the problem is mostly the physical symptoms of anxiety then get a prescription for propranolol and take 20mg or so an hour before the interview, it will help a lot.

zqna|4 years ago

The trick is to not want to be hired and treat the interviewers no different than your buddies. If you fail who cares?

jamesmcintyre|4 years ago

I totally agree that coding interviews are broken and if I had to guess the process results in a totally underestimated loss in productivity for organizations.

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.

throwawaynay|4 years ago

It's simple: I don't.

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.

throwawayvibes|4 years ago

I was struggling much like OP. Microdosing LSD turned my life around. Find a friend who has a friend who can help with this.