This was probably the worst interview experience of my 10+ years as a software engineer. It started typically enough with recruiter and tech phone screens. It wasn't until the on-site that the wheels fell off the wagon and into the river downstream from the wastewater treatment plant. The first yellow flag was their refusal to split up the six-hour on-site into two sessions. The rationale I was given was it allowed the hiring committee to make a decision within 24 hours (on which, they failed). The virtual on-site involved five modules: working on a project, presenting that project to a panel, and then three separate deep dives with panel members.
The day starts with 90 minutes of coding. You’re given product requirements to build a front-end app against in your local dev environment. The interviewer for this is more of a proctor than an interviewer. They’re there as a resource for you. You’re not expected to make decisions and weigh tradeoffs out loud. You can code in silence. While I really appreciated being able to work in my own environment, this process broke down when I was told to copy and paste my work into a shared text editor with only a minute left in that module as my panel began trickling into the Zoom. I created dozens of files: utils, fixtures, components, tests, CSS. It was a ridiculous ask that I was not warned about, nor was I given sufficient time to do it. Everything just got dumped into one file.
For the panel interview, I was told to prepare a few slides about myself: fun facts, and an overview of my career accomplishments. I found it weird that I had to make a deck for a SWE interview. From the literature, the expectation for this interview was that I’d be spending about 5 minutes introducing myself and 30-40 minutes of it demoing the app I had just built and then going over architecture, and diving a little deeper into specific focus areas that the panel members might be interested in. Although the interviewers were engaged, I found them to be overly obsessed with minutiae and implementation details. They showed no interest in the architecture of my app, how I modeled things, and the various tradeoffs I made. I can understand from the interviewers’ perspective that “if you write the code, then it’s fair game for us to want to talk about or even nitpick it,” but the extent to which they did this was confusing at best and hostile at worst.
The last stretch of the day consisted of three more modules. The first two with ICs about engineering topics and the last one with an EM covering standard behavioral questions. I was prepped by my recruiter to be ready for anything: system design, adding new features to the project, data structures and algorithms, etc. While I understand this process allows the interviewers more leeway to explore in greater depth specific things that come up, how the hell does someone prepare for this? Imagine telling someone that there will be a quiz and the outcome of it determines whether they get a job. Now imagine, when they ask you what the quiz will be on, you respond, “Guess ;)” Even still, I would’ve preferred doing ten Leetcode hards than what I actually faced for those two technical interviews.
Technical interview one was tantamount to hazing. I was barraged with trivia questions for the entirety of the sixty minutes. I use the word “trivia” specifically. Even now, days later, I cannot fathom why half of the interview was spent talking about cloud infrastructure and configuring a reverse proxy on bare metal when I was interviewing for a front-end job. That said, even though I found the questions to be extremely out of pocket, at least the interviewers here were not rude. I cannot say the same thing about the technical interview two.
The last technical interview started ok enough. While I was still being grilled on trivia, the questions were relevant to the position I was interviewing for. I was quizzed about front-end performance and React internals for a while. Then in the last fifteen minutes, the interviewer, as if activating his Trap Card, asked me to return to the shared code editor. He soliloquized about how he was “less than impressed” with how I implemented a helper utility function in my project and insisted I redo it. I found it laughable that of all the things I built that day, the thing he wanted to spend the most time on was this tiny helper function which converted currency strings to integers. I was instructed to implement it without using any “built-in functions,” which took quite a bit of cajoling to clarify that he didn’t want me to use String prototype methods. I was less than impressed.
The last interview with the EM was completely ordinary.
To Intuit: This interview process is bad. Train your interviewers. Short of that, find a different outlet for your engineers to blow off steam about layoffs and declining stock prices. Bless your heart.