Taro Logo
17

How to figure out why I'm not passing onsite interviews?

Profile picture
Mid-Level Software Engineer at Taro Community9 months ago

I've noticed a trend where despite passing recruiter screens as well as initial technical screens, the "on-site" phase with a full interview loop has been a barrier for me. This has happened at both start-ups as well as public companies (not Big Tech, but publicly traded). As for any glaring mistakes, maybe I just go too far down a given rabbit hole, or just don't code up the perfect solution immediately and instead have to actually work through the problem-solving and having that dialogue with the interviewer.

How much of this problem is down to the market or forces out of my control, and how much can I actually influence? The technical questions themselves are easier than the ones I answered when I interviewed (and got hired) at FAANG two summers ago.

I really don't feel good blaming things on blind luck or random chance, but it's either that or the hiring bar is literally absolute perfection.

2.9K
9

Discussion

(9 comments)
  • 21
    Profile picture
    Team Lead (people manager) at Mistplay
    9 months ago

    This is tough. The job market is tough, figuring out why we don't get an offer is tough, getting interviews at all and then performing well through all of them is tough. Interviewing when you're not just passively looking but in fact need a job is very tough.

    Here are two things from your post that tell me you can succeed sooner and more easily than 90% or even 99% of people though:

    • You have a FAANG company on your resume
    • You've passed more difficult interviews before - the tech screen part of it seems to be a non-issue

    This means you will be getting a lot of interviews relatively and the part that most people spend the most time worrying about isn't a big deal for you.

    So what is in your control that you can practice?

    • Rehearse, conversationally, your background story about where you've been and what impact you've had. Since you might be going down rabbit holes, this is a good one to run by a few friends. Make it crisp, measurable, clear, and allow the interviewer to ask for more follow up as needed.
    • Practice behavioural questions as if they were leetcode questions for most people. Steven Zhang talks about how he got 18 offers and what he did is he wrote out answers to many many behavioural questions commonly asked. He answered each with a vignette from his experience and practiced reciting them, recording them, and listening back to them like a podcast.

    Perhaps most importantly, stay positive. As a both a hiring manager and a candidate, I think a huge signal is if one is relaxed, happy, confident, open to conversation, present, and engaged. This is hard to practice, but possibly there are a few things you can do here:

    1. Keep in mind it is a super tough market right now so normal to have it take longer, there's nothing "wrong".
    2. Don't practice too much, relax and take care of yourself too! Eating well, sleeping well, exercising, socializing are all keys to feeling good and being ready when the right team presents itself.
    3. Write down successes as you go and feel good about them. If you keep track of how you are getting through phone screens and first rounds, it will be a matter of time before you have enough shots on goal in final rounds that you land the offer.
  • 13
    Profile picture
    Senior Software Engineer [IC3] at Nvidia
    9 months ago

    Ryan gave a great detailed answer. I'd like to add a small thing: you need a feedback mechanism. You'll never know why you failed unless the company tells you, which is rare, especially for them to provide the objective reason. And a lot of it is not dependent on you, such as the performance of other candidates interviewed for the role. To improve on the part that is within your control, you need to get feedback.

    Try to get some mock interviews. Get them with different people who have experience interviewing for the roles you are applying for (e.g. software engineer roles). There are services to do this, but I'd advise getting friends, colleagues, or fellow Tarodactyls. You want to get different, quality perspectives, so you can filter out the noise. Getting that feedback is invaluable.

    Again, there are a million reasons that someone may not get a role. A competitive market. Funding drying up for a role. A manager looking for a specific skill. A start-up CTO finding a candidate who is incredibly passionate about their company. A lot of that is not in your control. However, if you want to become the best candidate you can be, you need to get and integrate interview feedback. Mock interviews are a great place to do that.

    Note: After typing this up, I realize Ryan mentioned recording yourself and creating a feedback mechanism that way. That is a great approach. I do think mock interviews get even closer to a real interview situation and get you feedback from others, so they are a valuable addition, but that's a pretty ingenious approach to bettering yourself that I'd definitely give a try.

  • 9
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    8 months ago

    Ryan and David knocked it out of the park with their answers - Definitely take their advice 100%. I'll add 2 more things as well, one of which is much more important than the others.

    Self Reflection

    • This is the main lever you have access to after the onsite 90% of the time.
    • Within the same day as your interview (i.e. while the experience is still fresh in your brain), play back your entire interview by writing down what happened (Google Doc, Notion, whatever your tool of choice is).
    • Split up the information by round as that's what's important: Figuring out which ones you did poorly in and which ones you did well in. By organizing the information this way, you'll be able to spot trends after you do multiple interviews (e.g. "I'm almost always struggling in the behavioral interview").
    • For each round, have +'s and -'s. A + is something that went well (e.g. "I got the run-time correct"). A - is something that didn't go well (e.g. "The interviewer had to ask me 5 times what my code was doing.")
    • Give yourself a score out of 10 for each round as well. For each score, deduct 2 from what you put down initially. So if you thought you had an 8/10 performance for the system design round, you probably actually did 6/10. From my experience, candidates overestimate the quality of their performance 95%+ of the time, and this 2 point de-buff is surprisingly quite accurate. It is very rare for the reverse to happen (i.e. you thought you did poorly but you passed).
    • Look at all the round with a score of 6/10 or less. Those rounds are probably why you didn't pass. Go through the -'s across these sections and level up so they don't happen again. You'll get 'em next time - Don't let any rejection get to you, and keep on going! 👊
    • It's important to remember that even a good interview performance may not be enough in this economy as the market is so competitive. It's very possible that you get a "Yes" in every round, but there was some other brilliant engineer who happened to get "Strong Yes" across the board. That doesn't mean you're a bad engineer - It just means that this industry is chock full of talent. Again: Don't let it get to you.

    Getting Feedback From The Company

    • This will happen in the remaining 10% of cases (maybe even less). Even if the company does give you feedback on why you didn't pass, you should still do that self-reflection.
    • When communicating here, make sure to come off as nothing but polite. It's easy to get salty after failing an interview (and to be frank, a lot of interviewers are just bad), but you don't want that to come across as it will hamper the feedback you get and burn a bridge.
    • The important thing with this feedback is to truly treat it as a gift. Failing an interview is such a painful, visceral experience that it's tempting to lash out and discount the feedback. Don't just immediately react with a thought like "They said I didn't do well in system design, but I totally crushed it and handled all the edge cases! Their tech lead is just incompetent and can't design their way out of a paper bag." Seriously question your own perception of yourself and really try to put yourself in their shoes: Why did they perceive you as having these gaps? What could you have done better?
    • Here's another good thread around interview feedback: "Learning from interview rejection - What kind of questions should I ask?"

    Lastly, I recommend going through this playlist if you haven't already: [Taro Top 10] Effective Interview Prep

  • 2
    Profile picture
    Mid-Level Software Engineer [OP]
    Taro Community
    8 months ago

    Thank you all for the input. I've also been seeking out platforms such as Interviewing.io in order to get interview reps in an environment where the interviewer can safely give detailed and actionable feedback. My challenge with behavioral questions is really when there's some sort of new or novel question. I could script and prepare all sorts of answers, but what's the backup plan if I have to come up with something new on the fly?

  • 8
    Profile picture
    Junior Software Engineer at Series B Startup
    8 months ago

    I love that you raised this question and the responses it brought forth.

    To your follow-up Q, I think this is the more the life part of this entire process. We can't expect to be prepared for everything; optimistically speaking, this is the serendipitous part of our every day, ultimately what keeps us on our toes, challenges us, makes living interesting. That said, I do believe we can train to be adaptable, (be agile as a human being not just in software development); I think this applies in every area, physically, mentally, socially, etc. For interviews, I want to say it would be great to train to be socially (conversationally) agile. This is quite difficult to practice in solitude, here are some ideas:

    • As others mentioned, mock interviews (with friends or friendly acquaintances, but if not, pretend the other party is a friend) but the key is to respond conversationally, as opposed to how one might blurt out as if in some spelling bee from so much rote practice. And have them throw in curve-ball questions (tell them to come up with something uncommon or even bizarre, but still thoughtful and interview-y, not like "what's your favorite food"...).
    • Go out and meet new people on a regular basis (minimum bi-weekly); do the uncomfortable thing of starting conversation and asking sincere (friendly) questions; practice being curious of other people.
    • Take an improv class to learn how to think on the spot, but even more importantly how to communicate in a genuine way with absolute strangers and keep a conversation going in a positive way.
  • 9
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    8 months ago

    I could script and prepare all sorts of answers, but what's the backup plan if I have to come up with something new on the fly?

    Start from first principles and generate an answer on the fly. Your goal is to say something that reflects one or more of the following:

    1. You’re passionate about software engineering
    2. You’re passionate about the company you’re interviewing for
    3. You work well with others

    I talk about this in-depth in my article here: Software Engineer Interview Guide - Behavioral Questions

    As Grace also mentioned, you also want to build the muscle of being flexible and able to go with the flow when you get an unexpected question. This is just a core social skill, so there's no way to really "game it": You get better at it by doing it more. Mocks are super helpful here, but if you want a single-player experience, you can ask ChatGPT to generate a random behavioral interview question for you, respond, and record your response.

    In 95%+ of interviews, you are going to get a question you have never seen before. Instead of just trying to memorize everything which creates a very brittle mental state (unexpected question -> crumble into immediate failure), it's best to also train up your "recovery" state where you can bounce back quickly when random stuff comes flying your way.

  • 2
    Profile picture
    Mid-Level Software Engineer [OP]
    Taro Community
    8 months ago

    For what it's worth, I have received some interview feedback from recruiters saying positive things about exuding enthusiasm. I also got some more detailed feedback from a connection who pointed out that I can be unknowingly letting my frustration/resentment about this whole process leak through in my interviews.

    What I try to do is if I am talking about a negative experience, I try to frame it as a challenge and then explain how I dealt with the challenging situation. I hope that's a helpful framework.

  • 2
    Profile picture
    Mid-Level Software Engineer [OP]
    Taro Community
    8 months ago

    Chalk this up as another point in favor of networking and having strong connections, but I've been able to lean on them for more detailed pieces of feedback. This has led to creating more action items after discussing and getting into the details. If you're able to get a referral or get connected with an opportunity, then that gives you another possible source of feedback that won't be generic or purposefully vague.

  • 8
    Profile picture
    Senior Software Engineer [5A] at Uber
    8 months ago

    You are not looking closely enough at your performance or your approach to problems. You are only matching result to effort. That is, you believe that your thinking is right only when you get the right answer and vice versa.

    That's incorrect. What matters is the thought process and questions you ask yourself to get to the right answer. Think about how you scope, plan, design, test, and improve solutions to DS&A + system design problems. Is it systematic? Do you have a set of questions you can ask to parse the problem down to a unique and stable design? Can you scale the system? Do you avoid obvious pitfalls and repeated debugging of code?

    The name of the game is efficiency and risk in the procedure you take. Not result.

    Your quote: "instead have to actually work through the problem-solving and having that dialogue with the interviewer" indicates that this is lacking.

    The way to beat out luck is to become skilled. Over a large enough sample size, skill beats luck and results that derive from luck revert to the mean. Which means that over time, the underserving may get 1 offer but never will never get them again.

    If you disagree, here are some things you should ask yourself:

    1. Is your approach to problems consistent? Can you prove that across 30 random problems, you can get the answer or close to it on at least 70% of them?

    2. Are you keeping track of every time you fail to answer a question? Are you considering the questions you need to ask yourself to avoid failing in the future?

    3. Are you able to explain your thought process clearly and simply to a 5 year old on how you derive the answer? Are you able to defend your approach and answer?

    PS. You will not get an answer from the company because they do not want to say anything that might get them sued. It does not do them any good either to help you. Worse, they may give you misleading information to make you feel better. Bad information is worse than no information.