Taro Logo
Profile picture

Interviewing Q&A and Videos

About Interviewing

Tech has one of the highest rates of job switching, making this skill incredibly high-leverage and vital to master. Understand what it takes to convince companies you are strongly competent.

I keep failing my ML/Data Science interviews and I dont know why

Junior Machine Learning Engineer at Taro Community profile pic
Junior Machine Learning Engineer at Taro Community

In the last month I had 5 companies I interviewed for. I made it to on-site for 2 companies and got rejected after first round for 3 interviews and i'm feeling so lost on how to get better or what I'm doing wrong

  1. a series A YC startup: they ghosted me after a first round which was a HM convo about my past experience. Didn't even send an email even after follow up

  2. Wayfair associate level role (asking for 1-2 YoE): passed OA. idk what happened i thought it went well but I got rejected after first round. It was a "case interview" for data science. Dont want to leak the exam on public forum but it was something along the lines of they said u have X data, what would you use it for? How to train a model on it? and a lot of follow up questions.

    I took a mock interview for a system design from and got passed at the mid level so im not sure why i got rejected here.

  3. a series B startup: passed OA/takehome. failed on site - 4x rounds (SQL, pandas, coding/pair programming, ML theory) I thought I did fine on everything except the SQL which honestly is not my storng suit. I did ok ok on it. I kinda fumbled on 1 question out of 6 questions of the ML theory round where they asked me a stats question (find sample size needed for calculating significance of an A/B test). But I think I did well on the pandas round and the rest of ML and coding/pair programming.

  4. a really really fancy AI startup hiring ML Scientist: I did a 4 hr take home which I passed and then a 5 hour onsite no DSA but really delving into ML research skills and system design and coding. I was totally unqualified for this (they wanted strong research/math skills) so im not surprised here

  5. Series B startup: Passed OA and I got rejected after the first interview the moment the HM realized I had 6 mos of experience he ended the interview right there

Didnt also make it past the phone screen for 2 companies. I presume they were looking for someone more senior based on the JD

Show more

How can I identify companies that have good work cultures where code doesn't have to be refactored all the time?

Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro Community

How can I prevent myself from putting myself in a job where I have to recode an entire code base after a long amount of time on a product?

More specifically, how do I identify good teams that have working styles where you aren't having to refactor an entire codebase and have a frustrating work environment? In the past, I've heard that at companies like Netflix that people can just code in whatever language they want, then when folks sometimes regroup/resync with a larger product team, one team in a particular language will win, leading to large parts of other specific devs on the team to hate it because they have to refactor their code.

How does one come up with certain criteria (and follow through with it) as they interview for jobs and specific companies about working styles on preferences of code base, tools, frameworks?

What other core principles and criteria folks consider as they're interviewing other people (not just the company interviewing for a role) that they should consider as a part of the dev culture, structure when it comes to these types of things so I don't make the same type of mistake?

And yes, I know people refactor code bases (ex. legacy projects, cleaning out whatever tech debt folks have), which people tend to hate because it's a lot of work--and that it's still bound to happen and unavoidable, but how can we eliminate cultures we dislike that are refactoring code bases as a result of a dysfunctional tech team? I want to avoid having terrible experiences at a future company I work (similar to an hackathon experience I had recently working on a small MVP can be frustrating when folks are not aligned / on the same page for things that might take to long to complete or have to refactor completely if they are not communicating well or upfront from the beginning).

Show more

API interview in a couple of weeks... what's the best course of action to take?

Entry-Level Software Engineer at Unemployed profile pic
Entry-Level Software Engineer at Unemployed

Hi everybody. Last time I posted on here, I was laid off. I'm still laid off, BUT I got an interview where I interned at! It's a medium-sized financial company, looking to expand soon. The people I know in there are pretty high up. I told the recruiter that I was interested in making an impact on the business, and he really liked that about me. They said that no matter what happens with this interview, they're still gonna try to get me a software engineer job within the company. I think it was in a Taro course I saw when I first signed up where Alex said this, but the recruiters are looking for trust that you'll be able to ship production-level code. I've already done this within the company as an intern, and given my manager there at the time is now one guy under the CTO and CIO (the CIO remembered me and approved getting that position open!), I got that company trying to get me back in. Fingers crossed it works, but I'll have a hard time typing if I keep them crossed rather than code to practice beforehand.

The team is trying to modernize APIs. In the behavioral/vibe check interview, the manager told me that he has a bunch of awesome APIs he'd like to convince other areas in the company to use, but they're stubborn because their current processes work as they are, and they don't want to put themselves at risk by implementing the new awesome APIs. I'd be expected to act as someone who can have these conversations with these groups about the code and APIs they currently work with, and get them to buy in on the said new awesome APIs. It was originally a senior software engineer role, but they're interviewing me to see if they'd like to lower that to a mid-level role, and then (hopefully) hire me.

The role itself uses Node.js, SpringBoot, GraphQL, and Docker. I want to know what plan you guys think I should implement to study this next week and a half before it's technical interview day. I've been building some Node/GraphQL projects, and just worked on a SpringBoot project yesterday, too. A project approach is what I'm doing for this. I can also ask ChatGPT for some good interview questions on these things, but is there anything you guys can lob at me that will help me achieve proficiency (if not mastery) of those technologies in a week's time? Advice, tutorials, strategy planning, etc.

I'd really appreciate whatever y'all can throw at me. Thanks so much!


Show more

Transitioning from Old Job to New One

Data Engineer at Financial Company profile pic
Data Engineer at Financial Company

I just signed an offer with one of my dream tech companies that significantly increases my comp. I'm excited to be starting, but nervous about hitting the ground running. Will be making liberal use of Taro courses to guide me!

I have 3 questions:

  1. should I tell people on my team where I'm going? I don't see how I get around this. My concern is I don't want people to be envious that I'm leaving for a better opportunity that pays a lot more. I think it's unavoidable, and I imagine this just comes down to being as considerate and professional as I can be.

  2. This is about balancing finishing up at my old job and preparing for my new one. I know good practice is to prep an offboarding plan and try and tie up as many loose ends as possible. Regardless, there are simply things I won't be able to do in the 2 weeks I have left. Then there's prepping for my new job. I don't have familiarity with a bunch of the tools we're using and want to do anything I can to prep for it since I want to make a good impression when I start and I know the pace of my new job will be at least 2x what it is in my current one. Basically, this comes down to should I take time out of my remaining 2 weeks to prep for my new job the way I did when I was interviewing and trying to get my new job? I feel like there's no right answer here, just a spectrum. What I'm thinking right now is I'll try working with my current manager and getting a reasonable amount done in my old/current job for every day I have left, but no more than that. All other time will go to prep.

  3. Should I post that I got my new job on LinkedIn? Similar to my first question, I'm sensitive to how others may feel. Equally important, I don't feel secure in my job and feel like I only want to post about it or switch my status after I feel a certain level of comfort there (if it ever comes) or time spent there (more deterministic). If I were not to list it on LI, I would either need to have myself still working at my old job or appear to be unemployed.


Show more

How to Effectively Divide Time Studying Between DS&A and System Design

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

I'm currently studying for software engineering interviews, but I'm having a hard time deciding how to divide up my time between doing LC problems and going over system design concepts. It can feel overwhelming since both categories have so much to cover. I also have a family, so most of my studying gets done after my kid goes to sleep at around 7 PM. Since my team is in the west coast and I'm in the east coast, I do get some extra time in the morning to work out at the gym and go through some LC problems. I'm currently going through Neetcode's course as a refresher. For those of you who have aced your interviews, how did you divide up your time on different topics? Did you mostly spend your time on LeetCode? I'd be happy to hear any recommendations.

My main goal: I want to be interview-ready no matter what. I currently work at a big tech company and I've been there for 4 years now, but I haven't seen much growth and now I'm seeing that I could have negotiated more when I first got my offer. I was asked 2 LC-type problems, and I feel I got lucky with them because I hadn't extensively gone through all the different patterns and data structures. It was my first time getting RSUs and I wish I had known more about negotiation tactics as well. I feel that if I be ready for interviews, I can apply and definitely increase my comp by a lot. The motivation is for me to overcome the fear of DS&A problems and not stop myself from applying to positions just because I'd be asked LC-type questions. I also know that I can double my comp with the right negotiation tactics and with my years of experience.

Show more

Choose a project for "most challenging project" question for me?

Software Development Engineer II at Amazon profile pic
Software Development Engineer II at Amazon

My latest position was SDE II at Amazon, backend. I was laid off. I have not worked for 2 years. I find myself struggling with which project I should talk about in my interviews. Here are the projects I had worked on.

  1. A project where I investigated how to create and analyze the right data to optimize something. This was at a previous company where we shipped highly technical software, and the software had nothing to do with the web. The project wasn't one where I built much of anything; the result was just an independent Python script. The technicals were in the weeds though. But I would say I spent more time on the project than the work needed me to.
  2. A React Native side project. I did not launch the app, but the app worked on testing. My favorite project, as I learned a lot about planning, learning a new stack, and structuring my code. However, it's a side project and the stack is not related to what I mainly worked on at Amazon.
  3. My 1st project at Amazon. A high level design of the project was done for me. The project was very simple technically: move a module from one service to another to support the deprecation of the former service. There were some choices of wiring where data goes in the new setup, but that was about it for the complexity. I worked with another team to discuss the data flow. I also broke down the project into small parts for a new grad SDE to do. I personally saw through the project to its successful launch.
  4. My 2nd project at Amazon. I was working under another SDE II and he was the one who had done all the design, assigned me the parts to work on, and drove the successful launch. I remember the end business product well, but what I do not remember is the key high level code logic behind the scenes that make it work. As a consequence, even though I remember some parts of what I personally had worked on, I cannot drive a coherent narrative about them.
  5. My 3rd project at Amazon. It was the first project at work I designed from scratch. I communicated with the technical project manager to get clear the requirements and thought about all the cases to cover to make a working design. I do not remember all the details of the cases I needed to cover but I can talk about them at a high level. The biggest downside of this project is that it was cancelled mid-implementation since another project it depended on was cancelled for reasons outside of my control. So this project never launched.
Show more

Learn About Interviewing

Interviewing is an essential skill for every software engineer. The tech industry has one of the highest rates of job switching, so learning how to get good at interviewing can elevate your career. Your ability to transition between roles and companies depends on how well you perform during the interview. Taro offers resources for helping you to excel in software engineering interviews. We provide insights on effective preparation strategies and guide you on how to master the interview.
Interviews are a test for you to demonstrate your problem solving and technical skills. The ability to navigate complex challenges during an interview shows how prepared you are to take on the demands of being a software engineer.
Interviews also assess cultural fit and communication skills. This is important because you’ll be working in collaborative work environments where you need to talk to your team and other teams to execute well on your projects. Having great communication skills means you are able to effectively outline a broader vision of your project, dig into the technical details of your project, and communicate any potential issues to your stakeholders.
It’s crucial to thoroughly research the company to get valuable insights and make a good first impression. You can filter our Q&A by company to see whether there are any relevant conversations about the company to help with your interview. You can also check Blind and Reddit to understand what people are saying about the company. Use our Taro Networking feature to reach out to people in a company to get an insider perspective of the company. The company page should include information about their values and culture. Make sure that you align with these values. You should get a sense of the company’s financial reports to understand their products from a revenue point of view.
You should have a solid foundation in data structures and algorithms to show your experience and problem solving capabilities. Pick a programming language that you are proficient in, and use it for the technical portion of the interview. Leetcode is recommended as the best tool to practice for data structures and algorithms type of interviews. The provide a large set of problems with a code editor for you to solve the problems, and they have test cases and performance profiles so you can evaluate your solution. it’s also recommended to prepare through mock interviews.
The above strategies, along with diving more into Taro interviewing resources, can help you effectively prepare for an interview at a tech company.
Show more