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...
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.
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.
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.
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.
Unfortunately, this problem has an easy and ultra-straightforward solution using deques with O(N) space complexity, and an another slightly tricky solution with O(1) complexity. I had spent some time the other day cracking this O(1) solution. I decided that I would take the risk of reproducing the tricky solution and wow the interviewers.
Naturally, I didn't. I got confused and had to start from scratch several times. And the interviewer kept hinting that I could use a data structure to make this simple, but stubborn me thought I was just minutes from a working perfect solution.
I deeply internalized the saying "Perfect is the enemy of good" after I was marched out of the building after only two interviews instead of the usual 4. I've had my fair share of interview bombs but I consider this the worst because I was lucky enough to have faced a problem I had solved recently, and for which the interviewer was willing to accept the easier solution, and yet I managed to nuke it to oblivion.
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.
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.
The first round grilled me about bond coupons and asked why I would apply to a bank if I didn’t know what that was. Completely flustered, I was handed a pen and paper Java assessment, and I completely froze up. Not even algorithms, simple stuff about scoping and how primitives and Objects do or don’t retain mutations after you return from a method. I bombed. The last interview was a clearly coked-up trader making fun of me, calling me an idiot, and asking me “how the fuck you got into MIT.” I cried on the way home.
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.
Me: *sits down*
CEO (whispers to my ear): "this is my chair"
So I didn’t prepare at all, anticipating a chat where they did most of the talking and I maybe talked a bit about my work history.
I get on the call and the guy starts peppering me with specific questions about a technology I had said I liked but hadn’t worked with for like 5 years.
I made the mistake of BSing a few things. the guy immediately caught on to the BS and seemed to have a good time calling it out. Very embarrassing. It felt like I was getting cross examined or something. After about ten minutes I managed to get off my back foot and end the interview, salvaging some of my dignity.
He weirdly became extremely friendly after I said I didn’t think this was a good fit. Still not quite sure how to interpret that.
The funny part too is that I had been preparing for interviews with Leetcode and practicing big O notation, but I was just so excited by the seeming simplicity of the question that I completely threw out all of that prep. I'm glad that happened though, it taught me a good lesson :)
Most recently, I was asked to implement os.path.normpath in plain python, getting it right, and then told I failed with no feedback. Later I realized the problem is in leetcode and I had answered everything right, so I'm still curious what I did wrong.
I don't understand why folks are asking leetcode questions straight off the website without even changing the test cases, or not providing a function signature, docstring, and some test cases.
Ultimately, I've learned you have to simply accept when an interviewer is an idiot and move on. Even if you've been blocked for moving forward on a role that you're perfect for. Now when I administer and interview I work extremely hard to allow the interviewee to demonstrate their positives.
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’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.
So I joined. Person who made all these assurances is on, as well as this younger guy. Proceeds to ask some rather academic type questions about features of languages I haven't looked at in 20 years. To be clear, not bad questions, but more suited to someone just out of CS, or from Java/C# land.
Rather than just BS my way through, I declined to answer and said I'm not comfortable speaking to it.
The original guy who asked me to interview got flustered, cut it short after the third question, and said I'm not so and so material.
The whole thing was a bit surreal to me, to be honest.
It quickly became clear that I wouldn’t want to work there and the CTO thought I was such an idiot they didn’t even seen me a rejection email, despite having passed 3 other interviews. Soon after the iPhone was released and mobile became significant.
During a remote interview I was asked to code up Fibonacci, an algorithm I'd implemented plenty of times before. The interviewer wanted me to share what I was thinking as I did the work.
I struggled and struggled and just couldn't get it. I lost my train of thought every time I described what I was doing.Eventually I was told I could stop.
After I hung up the call, I banged out the correct code in thirty seconds.
It's easy to walk someone through my code after it's written. But apparently I don't get to consider a problem space in $LANG and in English at the same time.
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.
The core of the interview was a series of puzzle questions, some of which were domain questions, some of which were not. The interviewer would frequently answer a question before I had sufficient time to think about it. I could have figured out the answers had they not been fired off in rapid succession. I think they believe these questions are fundamental in some sense, but I'd question the importance of most of them. And scientific software developers rarely need to solve problems 30 seconds after hearing the problem statement.
People say that the interviewee should be interviewing the interviewer too, so after the interview I wondered how they might have reacted if I started asking them some puzzle questions that I think are fundamental as well. I want to make sure that they know their stuff too, right? I bet they would have absolutely bombed that.
I think their process selects for people who memorize answers to questions, as I skimmed the company's Glassdoor before the interview and saw many of the questions posted on there. So I doubt this process is actually selecting the most qualified candidates. Plus, these days I think ChatGPT might do a fair job of quickly answering these questions...
Cool; let’s talk by phone, I replied.
The phone interview was insane. I asked the woman what about my work history made her suspect that I’d be a good PM and she was not able to respond. I asked her what product she anticipated that if work on and she said we would figure that out after I started, as if that was the most natural thing in the world. And I asked her how they handled remote employees, to which she replied that the person who took the role would be moving to Mountain View.
“So,” I said, “you do not know why you are hiring me, and you do not know what I would be hired for, but no matter what it is, the job is in Silicon Valley?
She said yes, already sensing where this was going. I asked her if she could make sure Google never contacted me again for any reason and she agreed that was probably for the best.
I did not get the job.
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.
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.
I was sooo deep in specific wireless network protocols I had to take a step back and really try not to go too deep too fast. I got way too deep into the specifics of wireless networking and everything that can go wrong. They seemed disinterested, and that killed my confidence. I mumbled over my words quite a bit and struggled to keep at the right level of abstraction. I felt rather intimidated. I had a strong vibe this person interviewing me didn’t want to be there anyway and they weren’t helping me along.
Update: first problem I solved with a breadth first search, the second was a minimum spamming tree.
I stayed for pretty long time at my last company. In mean time, interview processes changed and it was all about LeetCode. I knew a little bit about it but all I thought was that it is similar to FizzBuzz problem. And I enjoy puzzles, so I thought that it would be fun.
I applied at Facebook, the recruiter tried to warn me but she also told me that since I have been programming for so long, it should be no problem. I didn't really looked at real problems, instead just tried a few examples that were there to get to you familiar with Facebook interview environment. They were pretty easy, so I was feeling very confident.
Needless to say in the actual interview, I could not even decipher problem. The interviewer helped me understand it. I was able to create brute-force solution but could not optimize it. Felt pretty dumb.
After that I looked up LeetCode, spent hours practicing it. I forgot about everything else.
Eventually, I restarted interview process. The next company I applied for was to warm up. I passed all their 3-4 LeetCode and System Design rounds. I started to feel good about it.
But I was so focused on technical aspects that I forgot about behavioral interview part. My brain was so focused on puzzles that I thought all those normal behavior questions were trick questions. I blanked and mumbled mostly. I really liked the interviewer too, I thought he had similar personality as me.
Then I went back to basics and wrote down answers to various behavior questions. And tried to revise those questions before my next few interviews. There I got still rejected but got a few offers. However, this experience also taught me that I cannot rely on my previous good luck anymore and should spend time preparing.
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.
> Had a 6AM interview with a developer in India with a very thick accent and who didn't have a good microphone, which made it very difficult to communicate. He didn't have a copy of my resume, wasn't completely sure what job he was interviewing me for, and started asking me React trivia questions for what should have been a primarily Python role.
> Had a technical interview with a cool startup doing some dumb leetcode style problem. We had some repeated video connection problems and started the interview 15 minutes late because we couldn't get a connection. Because of this, I was pressing and stressed out to finish the task on time and made a few silly errors because I didn't have time to think the problem through. Got most of the task done despite this, but it's frustrating to think that I missed out on this position because of some dumb video chat glitch.
Was interviewing at a super friendly seeming company that happened to also do a ton of government and security work. They asked me how I've dealt with someone on a team I didn't work well with and I mentioned someone from a senior project who wasn't pulling their weights. I basically said pulled up his slack and moved on but then "destroyed him during reviews." I didn't realize how much of a faux pas this was for this type of interview and was told I didn't get the job because of issues working with others.
Having conducted hundreds of interviews now I realize the error of my ways but I still maintain writing a bad review of someone is not that bad when compared to the other unhealthy ways to handle it.
In the end I lucked out because that would have put me in the world of high clearance government worked that I've grown to hate these days, they may have been able to Stockholm syndrome me into liking that kind of work.
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!)
Also failed at Amazon because they brought me for an interview and it started 9am and ended at 5pm. I was too tired and they kept trying to make simple question harder by adding constraints. I gave up because it wasn't worth it.
Do yourself a favor, if you don't like the interview and interviewer just leave in the middle of the interview. It's not worth the emotional and mental cost. Also there is a good chance you don't like the company and the company culture if the interview is not going accordingly.
I'm probably in the minority here, but I prefer live coding exercises. Definitely more confident showing my competence than trying to explain it.
Got asked how to manipulate a collection, showed the interviewer 10 different ways how to do something, each time a bit different as he rephrased the question to get me to the result he actually wanted to see (I knew what it was but tried to be snarky, if that's the right word).
Actually fucked up the right answer at the end because I lost track in the process...
Also forgot that remove(obj) will actually iterate through the whole list each time it wants to delete an element if the element was added last..
The other interview was even worse because communication was bad.
Phone screen interview with Google. Interviewer asked about how I would keep track of the nth highest value in an infinite stream of values. I said I would use a heap. Then interviewer asked to me write the code for that heap in a Google Doc. I can't remember what I wrote, but I'm pretty sure that I barely got started. Boom.
Lesson here is that simply knowing something in general might not be enough. If you think you know something, try implementing it from scratch to be sure.
(I've since been told the position is still available, because there are two available and they haven't decided who is filling that other position on top of the one I applied for)
I didn’t even bother. I just said I didn’t know the answer, and that them asking those kinds of questions made me not want to work there.
I guess that counts as bombing, but I really could not have cared less.
Consequently, you don’t get the kind of employees who are good at solving the problem, rather they are good at social chit-chat and taking your asinine…
Truly, truly asinine… “Test”
Did a full loop with a company notorious for asking Leetcode "hard" coding questions. I've been practicing "medium" questions for months, but I practiced about 10 "hards" specifically for this loop and was feeling unusually good - or at least more nervous about the behavioral interviews than the coding.
After 2 behavioral & system design interviews that went OK-ish, there was a coding interview. The first part of the question was to check if a binary tree is a valid binary search tree. I solved that part easily using the first familiar pattern that came to mind, with tests. However, the interviewer seemed confused by/skeptical of my solution, which spiked my anxiety that I had overlooked something horribly obvious or had even solved the wrong problem entirely.
For the second part, he asked me to come up with a plain text representation of a binary search tree and write code to build a tree from its text representation. This isn't even an objectively difficult problem - perhaps "Leetcode medium" at most, and it's the kind of problem I could solve alone in a quiet environment, but I have always struggled to think about recursive problems under time pressure and while "talking through my approach". I have to think hard when I tackle a recursive problem that is new to me (or even a familiar one I haven't seen in a while) - once the pattern clicks, it's dead obvious, but I definitely don't have the kind of brain that finds these problems easy. And in an interview situation, it's as if the talking part of the brain suppresses whatever other part is somewhat capable of grokking recursive problems. Particularly when there is a coding interview immediately following several very "talky" design & behavioral interviews.
Anyway, I flopped around for a while trying to get it right, but quickly ran out of time. The interviewer tried to offer guidance a few times, but this mostly just broke my train of thought, unfortunately.
The interviewer was a soft-spoken guy with an Architect job title, and my anxious, stereotyping brain, insecure about its own algorithmic ability, decided that this is the kind of engineer who can solve Leetcode hards in his sleep, so he's going to consider me extra dumb and incompetent for messing up this pretty "easy" problem. A talker who can't actually code, even. Of course, it's possible he sucks at solving algorithm problems under pressure almost as much as I do :-)
Waiting for the result.
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.
This culminated in the Engineering Manager saying to me at one point: "Wow, you have a lot of experience, it's sad you didn't show us that in your assignment."
TL;DR: Bombed a take-home assignment with the vague requirements of "over-engineer it on purpose" because my "over-engineering" was not over-engineered enough even though it completely fulfilled all requirements. If you're going to give take-home assignments please define hard requirements up front and avoid vague guidelines like "over-engineer this please k thanks"
The first part was a system design interview. I had never done one of these, and my experience up to this point was basically working on small scale web apps at a local software development agency.
Next I continued on to an algorithm-focused white board exercise. It was something about trees, but again I was not able to articulate anything. I remember saying something like, "Recursion is bad", and immediately I could sense that that was a mistake. What I meant was that with Python you have to be mindful of recursion because you can get that "Maximum call stack size exceeded" error.
Next we ate lunch. I attempted to engage in conversation with an engineer by asking her where she had studied. She replied, and I then made the mistake of speaking negatively about the school that I knew was her school's competitor. Basically my attempt at comradery fell flat and I just looked like an idiot. The thing is that in reality I could care less about people's schools. I was just trying to be conversational, but failed.
After lunch, I had a meeting with a person who held a high-ranking position in the engineering department, possibly a director. His spacious office with a window indicated his significance. During the meeting, he inquired about my academic background and what I had learned in school. This particular part of the interview left me with the impression that I had failed to learn anything of value.
He had me work on some problem about a "Bipartite Graph" - Like prove that this graph is bipartite, or something like that. He had me do it on his window with expo markers, and it was taking me so long to get through this problem he actually left the room for a good 5 minutes and left me in there to mull it over.
The final part of the interview was with the front-end people. I don't remember much about this other than talking about React, since it was the hot new thing at that point.
By the end of the day, I knew I had done a bad job, and I felt very dumb. I remember emailing the guy shortly after leaving, basically apologizing for doing such a bad job, and that, "I promise I will do a good job if you choose to hire me".
I still cringe thinking about this experience, but it's also kind of funny that I could have this type of experience at a company who literally made an interviewing platform. I thought that was pretty ironic. I recognize that I did a pretty bad job, but nobody deserves to feel like I did after that interview.