Ask HN: Tell me about how you bombed a technical interview

63 points by kevin_vanilla ↗ HN
Context: I was just listening to the latest Soft Skills Engineering[1] (a podcast I highly recommend, by the way!) and they were consoling a junior eng who bombed an interview by saying everyone has a story about doing this at some point. I thought it'd be nice to crowd-source these stories in case others are feeling bad about their interview experiences :)

I can start: My first tech interview ever was the summer going into my Junior year of college. I was still very raw and had no idea what to expect, and got asked a pretty standard string manipulation question. I fumbled around for a while before frantically trying to Google the question in a manner that I now realize was likely very obvious. Needless to say, I didn't get the job. I did learn from the experience, though, and studied my butt off for the next summer, which paid off in much harder interviews :)

Looking forward to hearing yours, thanks!

[1] https://softskills.audio/2023/04/03/episode-350-bombing-a-te...

129 comments

[ 4.8 ms ] story [ 162 ms ] thread
I, a React developer, took three months off developing in React, only to forget how `useEffect()` works when you pass it no dependencies (vs when you pass it an empty array.)

Idea: Build a map of things that are easily forgotten and treat it as a map of places where the API needs improvement. (Following ye olde Law of Least Surprise. Thanks, Larry Wall!)

The fact that it’s unintuitive and different is why hooks are a joke. Class components just make sense.
TBH I disagree, I prefer strict functional programming, mostly for composability. Class components feel like translating everything into latin numerals and then back out again.

Hooks help me avoid that pain. But is the API perfect? Nope.

There are also frameworks like solidjs which have similar syntax to React but avoid the complexity of hooks with a simpler API and no hook rules. Classes are not the only solution
Lately I've been investigating Svelte. It looks really good, but I think I'm going to stick with React/Nextjs simply because of the ecosystem and switching cost.

Again, this isn't 'American Idol for frameworks'; I'm not picking React because I think it's the best, or even better. I'm picking React because of the habitat, and because that habitat is now, in a sense, my hometown.

Yeah of course, you always have to do what is best for your company/clients and React is always a great choice (can't beat the ecosystem)

It's the same reason why I non-ironically recommend Wordpress to a lot of people that have super limited budgets and want the moon.

I do enjoy trying all the different new approaches to UI development though, especially as I'm not a frontend developer so most of the time I write frontend code I'm building either internal tools or personal projects, so I get to experiment a lot.

I never had a problem with the explicit lifecycle methods in class components, and the concept of a functional component effectively being the render method in isolation. To me there’s only one clear advantage to hooks and that’s sheer reduction in raw lines of code. Having said that, it’s a pretty huge advantage for something like redux.
I, a React developer for ~8 years, don’t really remember what useEffect does without the second param. I never needed it, so I forgot. I almost feel it should be a required prop, and I doubt that that knowledge alone would fail or pass an interview.
One of the things about React is that local codebase conventions really influence what parts of the API are high-touch for you.

I too have been coding in React for that long (precisely that long, oddly enough ;D) and I used `useEffect()` in pretty much everything I was doing.

There are reasons for this that are local to the project I was on for most of that time.

And yeah, I'm pretty sure my embarrassing confusion cost me the interview in question.

Coding is a lot like playing a musical instrument, or singing. Without daily practice, you get musty. You can scrape off the must in a matter of days or weeks, but in the meantime, you can be expected to bomb any audition.

This is why it's so good to have something on the go on GitHub. It's not about the star-count, it's about keeping your hand in.

I can think of a few.

Uni interview at Cambridge for physics, I was asked to: derive the equation of motion for some coins sliding into each other on a table, and identify the oscillatory nodes of a tea cup struck with a spoon. Needless to say I didn’t get in and have the utmost respect for those who did!

First technical job interview I was asked whether a heavy or light element is better for absorbing nuclear radiation. Now that one I am embarrassed I didn’t get having completed my physics degree. Lighter is better.

Was that for an undergraduate at Cambridge?
Google relies on writing syntactically correct code in a google doc with no autocomplete/auto indenting during their interviews. The cognitive load of this plus having to answer very difficult obscure algorithmic questions was too foreign from my normal workflow and too heavy of a cognitive load for me to be able to answer the question accurately in the time given. I hope they don't build production code this way.
Now I'm just imagining an april fools event where they replace the really nice internally hosted code editor with google docs, disable code search, and call it interview awareness day.
I interviewed at Stripe, pre-COVID, and it was an onsite interview after I suffered a concussion. I should have cancelled the interview, but I was excited about the opportunity, and had underestimated how disabled the concussion left me.

Objectively I think I interviewed fairly strongly, however for the hands on coding portion of the interview, I basically couldn't even write more than a few lines. I couldn't remember simple things like function or class definitions. I had to look up a few syntax things, and my already challenging dyslexia was exacerbated to the point where I could barely type.

I recognize looking back on it that I had a freaking concussion and wasn't even supposed to be looking at screens or reading, but it was still really embarrassing.

I have so many stories that I bombed the interviews, but this is probably the most interesting one.

In 2008 I was searching for my first full time job. At the time a social network company flew me out to SF from Toronto for interview. I was promised a 5-hour block but only lasted 3 hours before they walked me out. I don't remember the questions, but I do remember that the VP of Engineering at the time was browsing his BlackBerry and weren't listening to me. Needless to say, I felt humiliated for awhile after that experience.

Fast forward to 2018, I interviewed at this startup in SF and I did well in the first 2 sessions. The 3rd session was the CTO and he was the same person that ignored me 10 years prior. This time I did well enough that he immediately got the CEO to meet with me and offer me the job on the spot. I thanked them and ended up not taking that job due to a better opportunity elsewhere.

The CTO didn't remember me nor I confronted him about it, but it's a small win in my book.

Wow! It's amazing how much stuff can come back around in the tech world... A nice reminder to not burn bridges :) Thanks for sharing!
manager at netflix told me that i used an older java version in my take home which indicated that i am not someone who keeps up with latest tech.

Some dude at airbnb asked me if had gone to IIT ( indian institute of tech) and ended the interview early when i told him i didn't. This was after they flew me into sfo.

This is not an example of bombing an interview, if they wanted a recent java version they should have stated that.

Unless you chose a java version old enough to have a driving license, in which case I could understand that response.

it was java 7 when the latest release was java 8.
That's dodging a bullet rather than bombing an interview.
a very high comp cushy bullet :)
I left my job in 2021 to create a startup that raised $6-7 million and in late 2022 I exited for about $2.5 million. I wrote about half or more of the code. I consider myself a very proficient full-stack engineer and I know typescript, react, databases, and Rust, among other things. Over a decade of experience.

I’ve since decided to apply for two different software engineer jobs (since I don’t want to make another company yet) and didn’t get an offer for either. No idea why but I think it has to do with the technical interview. On one I didn’t even get past the first screen.

I amusingly find it harder to get a good software engineer job (let’s say which pays $200k+) than to create a company and raise millions (at least in the bubbly 2021 market). The technical interviews are just ridiculous and almost feel like a mild form of harassment. It’s like just because I don’t ace whatever esoteric code exercise they come up with, I’m ineligible for the job.

Wrote an O(n²) solution not thinking n would be 1000000000.
CEO: "please sit down"

Me: *sits down*

CEO (whispers to my ear): "this is my chair"

I found myself interviewing with a hedge fund last year because they liked some of my open source stuff (and approach to API design)...

I had about six conversations with a bunch of the team and a conversation with the CEO to sell me on the position. The last step was a seventh “conversation” with the Chief Data Officer to figure out if this was something I really wanted.

The CDO had different ideas… he joined the Zoom, started sharing his screen (with no introductions), opened a Google Doc and told me we were going “write some code together”.

I was pretty confused and flustered but tried to roll with it. He first asked me to “reverse a string”. OK. My lil Python snippet was fine but he didn’t like that it wasn’t “the most memory efficient way to do it”. He then asked me to write a function to approximate “e”. I just ended the interview right there.

(comment deleted)
That’s not bombing the interview in my book, that’s just being thrown in front of a bus. Seems like they have terrible hiring practices.
The whole process was pretty informal as I never actually applied (they reached out because of my code!)

I’ll never know exactly what happened, but it I had to guess I think the CDO felt undermined by the “rogue” employees who sourced me as a candidate and pushed me through the process without his consultation…

Still sounds like a terrible hiring practice. You can have an informal hiring but still do it proper; at least make sure all the stakeholders are aligned.
I came into this thread to comment about a similar experience. Had a call set up with the company founder for a consulting role, for me generally this means an informal chat where they share the pains they're experiencing, I share my background and thoughts related to fixing those kind of pains and, if we both determine we can see it working, I put together a proposal.

However, instead of the founder, an engineer ambushes me in the zoom call and starts a full on technical interview. In retrospect I should have ended the call there and then but I had already committed the time and it was only 30 minutes so I did my worst technical interview ever.

I'm still annoyed at their behavior, the company ended up folding so that's the silver lining.

I’m sorry that happened to you. Do you think that the engineer that ambushed you felt threatened by your candidacy? I’ve been around a bunch of engineers who hate hiring to “raise the bar”…
It's possible, I have also seen that, especially in small companies where everyone is very protective of their turf. I also had a terrible interview experience years after that where I was being interviewed for a CTO position by the company COO and the CTO that was leaving.

The CTO was really harsh in the interview, he gave me a bunch of brain teaser questions, followed by some algorithms questions where he was expecting one correct answer and would interrupt me if I was going a different way. We barely had any of what I would expect would be proper questions for a CTO interview (eg stakeholder management, people management, technical architecture)

It was so bad that the COO sent me a personal note apologising after the interview, but said that they had to go with the CTOs judgement on who was better qualified to succeed him. That was a pretty surreal experience and I think it was because the CTO already had someone in mind to replace him.

I had a small consulting firm for a few years, and spent a few years as a solo consultant as well... what you describe is probably above all else what drove me away from that business model. Often I would walk in as "the sales guy" and they would want to turn it into a full blown technical interview. Disrespectful and a waste of everyone's time.
Isn't it just great? In my experience it's often the in-house technical team that ends up being overprotective about their turf.

And I kinda get it, I've been in-house tech leadership for companies where consultants have been pushed on me because they're someone's cousin or because they're a big company and therefore immediately trusted. But it can be frustrating...

presumably regarding the string reversing: they probably wanted a reverse in place (then making sure you handle the even/odd edge condition). however, Python strings are immutable, so you'd have to use a bytearray, but if you have a huge string, converting it to a bytearray, reversing the array, and converting back to a string would likely take longer than having python's string reverse function allocate a new string and write the reverse into it (I would have written both implementations, a timer, and test with increasingly long strings, assuming coderpad).

For the 'e' question: I mean, we learned functions to approximate e in high school. There's a summing series you can do to approximate it- were they expecting you to remember that off the top of your head (if so, you probably dodged a bullet). Otherwise, e*x is its own differential, so i wonder if you could write some terrible routine iterating from a random value to the right one by computing finite differences of various values.

If I remember correctly e can be defined as the limit of (1+(1/X)^x as x approaches infinity, so could simply plug in a very large x to approximate. Super simple, but something you have to know, and not very useful in the typical se job. these kind of trivia maths questions are really obnoxious.
> For the 'e' question

They were just expecting exp(x) = \sum_{i=0}^{\inf} \frac{x^i}{i!}.

Depending on the role it might be useless trivia, but it's not exactly an impossibly high bar tbh.

It's a rather stupid question because there are plenty of libraries that can do it better than you could come up with. It's the kind of thing that if I saw a developer wasting their time with at my company, I would immediately fire them, it's akin to rolling your own cryptography.
That series is the definition of the exponential function, literally high-school math.

As I said depends on the role. Normal SWE? Sure, it's trivia and a rather stupid question. For a more science-y or finance role, I'd be very concerned if the candidate doesn't know it.

What about a finance role requires one to know how to inefficiently produce approximations of known constants?
The real question is what else you don't know if you don't even know that...

The power series definition of the exponential function is basic mathematics, and is widely used in financial modeling. This cowboy attitude towards math is just depressing.

An alternative closely related interview question that's a favorite of mine is "please compute the monthly payment for a $200,000 mortgage over 20 years at 3% yearly interest".

You shouldn't be allowed to graduate high school without knowing how to do that, and you'd be surprised how many self-described economists can't answer it.

(comment deleted)
But the farther from high school the less likely to remember.

Yes I did that in my C++ class in high school. But no I couldn’t do it now and end up with the right answer without some review. I’ve spent a decade and a half doing other things that should matter more than sword drills.

I'm curious to how you ended the interview
jesus christ, similar experience.

this kid wanted me to sort an array without using array.sort method in js.

that was the most stupid thing i was asked to do in my life, i had to end the interview.

i went as far as telling the founders they made bad hires. other red flags was overengineered web app, too buggy, no seo, no ogp, shit in mobile responsiveness.

their startup was defunct within 6 months, no wonder.

1. I froze during a whiteboard interview where I was asked to pretty print a tree in front of two people. Performance anxiety made me implode and stumble so much that I failed to implement basic recursion :')

2. I froze again during a live coding interview when I was asked to correct code under test for a coin change problem. I couldn't get over the fact that someone was judging me based on what they were seeing live and I messed it up so badly that I told them I'm not good at live coding and left it at that >_<

FFS after ~15 years in the field having worked on firmware all the way up the stack one would think I'd be great at throwing out solutions to trivial problems off the top of my head...nope not my brain :D

I've found for myself that there's a massive difference in how someone approaches live coding. If it's a colleague or even my entire team I know that we are doing this together because we have a common goal and will support each other...unlike in an interview where it's set up to be antagonistic and that throws me off completely.

To be fair, I've forgotten how to do basic recursion (and a lot of other basic stuff) while coding with no one watching me haha. Thanks for sharing!
I interviewed for an ML scientist role (remote) while I was feeling a bit under the weather. I got through to a round with the founder/CEO and things were going well. However, this was a few days later and I was beginning to feel not so good, lots of brain fog and fatigue. The interviewer asked me a fairly basic question about a certain module and why one would use it and what the effect would be with given parameters. I sort of dropped the ball and said something reasonable but not super rigorous, and I could tell the interviewer wasn’t very satisfied.

The next day I took a COVID test and it was positive. I should’ve postponed the interview as soon as something was off but it would be weeks until I felt better. I ended up getting a better offer at a better company but it still hurt to be rejected at least in part because I wasn’t feeling 100%. Live and learn.

Definitely bombed my very first interview.

After sending almost 150 CVs I had the opportunity to schedule a call with a manager at Apple for an internship, this was supposed to be the classic "get to know each other for a couple of minutes and then talk about how this is going to work".

Everything was fine until the manager asked a very basic problem (checking if a sudoku solution was valid), I did not expect a coding question during this very meeting so I was very nervous at the time and messed up.

They told me that they had found another candidate for the position saying that they do first come first served. I don't believe a single word of it, they took another candidate just because I was not good enough during the coding part and that's okay!

Moral of the story: don't believe what they say about the interview that it's going to take place, don't make assumptions, just be prepared for everything that could happen.

I had an interview with a startup, completely owned the questions on the technical interview. When time came for the 1 - 1 interview with the CTO I had luck to ask them about their growth rate and investors. No regrets.
10+ years ago I've been applying for junior ruby dev roles while still at university.

At one company they gave me a pen and a piece of paper, told me to sort an array and gave me a couple of minutes to write my answer.

I assumed I'm at command line, so I generated a rails scaffold (model, controller, view, db migrations), created and migrated the database, opened a database prompt and wrote a SQL "select ... order by" statement.

I think I wanted to demonstrate that I know rails and related tools; but I was also stressed and didn't communicate well. After looking at my answer they quickly ended the interview, told me "we'll be in touch" and I got a rejection email on my way home.

I laughed out loud at this one. Nice one!
I was given two hours to answer two questions and to program two algorithms. I answered the two questions right. Finished the first code challenge but my tests only passed 75% (forgot some edge cases?) and the second problem I was two mentally exhausted to give a crap, so i described the solution in natural language and called it a day. I was not thrilled about the position (i had something better lined up), just took the code to see how hard it would be. It was not so hard, if given more time.

Update: first problem I solved with a breadth first search, the second was a minimum spamming tree.

If you've bombed an interview in a skillset that you've done productive work in, the fault is with the design of the interview. This doesn't mean that you won't be expected to skill up in the different set to pass those interviews, but don't take it personally either way.

As an example, almost no bit of coding work is done in an environment with no reference material, no autocompletion, no compiler feedback, and no debugger, yet many companies expect people to do whiteboard interviews with syntax and language features from memory.

That's exactly why so many of us get so frustrated with the state of technical interviews / technical hiring / HR at tech firms in general. The interviews seem designed as some kind of frat-like hazing gauntlet rather than a legitimate discussion / demonstration of how this professional could contribute to and benefit the organization.
I like the just talking approach. The best jobs I had when the interview was just talk.

But on the other hand so many people totally lie about their experience I can't believe it. People tend to have misleading cvs and overexaggerate their responsibilities very often. It makes me sad, because we can't just hire and continue the project, we need to spend few months getting people into the project, "giving a chance", to finally discover they just can't code, until we finally find the right person.

I think we've all seen this scenario you describe... I'm not opposed at all to there being some code in an interview - assuming it is a coding role. Too often though the exercises seem to be designed as a "gotcha" or to show how "smart" the interview is, rather than to augment the discussion. Or, as others have pointed out, actually end up demonstrating incompetence on the part of the interviewer as they don't understand their own question or the possible alternative solutions to their question.

At least twice been invited to interview for roles that were not hands-on-keyboard roles, yet the entire interview process was coding activities. That's the kind of thing that drives me nuts, as it makes it obvious that the company doesn't even know what they want to hire. At least one of the times was a company that shows up on HN as a "darling", which makes me even angrier...

Tbh I disagree.

Just talking means a "talker" can bs his way through.

I ain't got nothing against a white board question as long as it is understood that syntax errors can obv happen but aren't the "point".

> misleading cvs

If you want a real chuckle, go look at the LinkedIn profiles of some of those "few-monthers" and take a look at how epic and groundbreaking their contribution was when they worked for you.

Whenever I interview vendors or contractors, I have a little bit of leeway from following company policy, so I sit them in front of a computer with Visual Studio and internet and tell them they can use whatever resources they want to solve the problem.

From the other side, I haven't had a technical interview for a few years, but back when I did, I eventually addressed the whiteboard thing by bringing a laptop and telling the interviewer that I suck at whiteboarding code, and I'd like to do it for real instead. I think I've tried that in three interview loops and gotten the job twice.

I'm unable to feel shame or embarassment in interviews anymore. Have encountered sufficient share of assholes, had enough time and hopes smashed and thrown away. If your point is to find incompetent fraud, let me be your incompetent fraud.
My son was only a few months old. I had made it to the final rounds the interview process at a FAANG. He hd kept me up the night before as he had a cold I tended to take care of him in the night so my partner could sleep.

Next day I was asked all kinds of fun, esoteric questions about the C specification. That’s was hard. I was frazzled.

The final question I was asked to implement knn. Which I did brute force. And then I was asked to optimize it. And I was basically falling apart at that point and couldn’t recall a k-d tree. I blundered my way through some dead end.

This was for an engineering position embedded in an ops team. Sensing my interviewer’s frustration I asked if they’d ever have to implement knn on a page in a limited amount of time in order to bring the system back online. They said no. I never got an offer for that one.

All of the people who admit their process is flawed A) don't change the process and B) don't hire people who point it out
Imagine the people who don't know the process is flawed and treat it as sacrosanct. They'll sacrifice you at the alter of their process-god if you complain about it.
Worst interviews are ambushes. Things are going fine, you're discussing tech stuff, guy decides you need to "code" right now in an alien coding environment.

First time, guy asks me how I'd do some problem, I talk him through it, I mention there's an easy O(n^2) way but with a bit of thinking there's probably an nlogn way. He doesn't want to let me think for half a minute, just rushes me into the inefficient solution. So I do that, and at the end it's "oh I think there's a better way".

Second time I've been through a bunch of rounds, 3rd party recruiter calls me to ask to go into the office to meet the boss, to discuss terms and numbers. I get there, he wants to code some BS algorithm on a piece of paper. I do the whole thing, he finds a bug. Won't tell me what it is. As far as I can tell, he isn't a compiler. So I search around a bit, find the bug, whatever, I don't get why he can't just let it go when we've talked through the algo. So we go on, second problem, I nail it again. Again there's some bug. I tell him listen, if this wasn't on a damn piece of paper in crappy handwriting, it wouldn't be a problem. Why are you trying to hire a head of trading technology using a piece of paper and a pen?

Didn't get the job, funnily enough.

>Worst interviews are ambushes.

That's a great description that hiring managers / HR / people who design and conduct interviews should contemplate. Are we ambushing candidates or are we seeking to understand their strengths and weaknesses?

I'm shocked at how many of the responses here describe ambush interviews, I did not know this was a thing! Thanks for sharing :)
I don't know why you'd ever do an ambush interview for a developer position. Programming is very much a 'think and plan' type of activity.

Actually, I wonder if the prevalence has anything to do with the fact that an ambush interview style has certain advantages if you're hiring an HR person and therefore the people designing interview norms think it's a good idea?

(I can see this style having some utility for positions where the candidate has to deal with high-stakes social situations with very little prep, like HR or PR. "Prove your ability to calmly handle the unexpected and reorient.")

(comment deleted)
"How would you deal with a problem employee?" Without missing a beat, I asked, "Does he have a weapon?"
oooofff... I had to fire someone once with a serious anger management problem. This was legitimately one of the scenarios we considered in how to best let them go and not have anyone get hurt.
My boss years ago had to fire an employee when a background check indicated that they were an IRA member. He fired the guy, got in a cab to the airport, and got the next plane out of Ireland back to the US.
I have pretty severe C-PTSD and structural dissociation and this has resulted in some moments... Usually this is just a tendency to have memory issues under stress. I have blanked on everything from the names of my own projects to names of companies I have worked for.

When I get triggered in an interview very "interesting" things can happen. Probably the most "legendary" is when I started uncontrollably crying and sobbing in an interview. They obviously wanted to bail and reschedule but I composed myself and was like "no keep going. I am fine". The irony was that they completely lost focus and did a terrible interviewing job but I did pretty good. Shockingly, I did not get that job.

(comment deleted)
(comment deleted)