In late March 2025, I began interviewing for a Senior Front-End Engineer position at Analog Garage, a corporate incubator within Analog Devices (ADI). I had reached out to someone I know at ADI, which led to securing my first interview. The process took a little less then two months.
The initial interview was a one-hour conversation with an engineering manager at the Garage. We started by discussing my background and experience. Around halfway in the conversation shifted to general computer science questions; for example, “What’s the difference between a process and a thread?” and “When should you use a linked list versus an array?” Most of the questions didn’t feel tailored to a front-end engineering role and leaned more toward classic comp-sci fundamentals.
I advanced to the next stage, which was a take-home project. It took about a week for the team to finalize the requirements. The core task was to use a modern front-end framework to visualize real-time data over WebSockets, with a backend provided. I was excited about the opportunity, so I invested a lot of time into the project and was genuinely happy with the result. I submitted the project about a week later.
Nearly two weeks later, I heard back that I would be moving forward to the next round: a 2.5-hour onsite interview. It would include two parts:
A 15-minute presentation about myself, open to anyone at the company.
A panel interview focused on the take-home project, including potential feedback and minor changes.
I was explicitly told that there would be no live coding, other than potentially making changes to the submitted project. The hiring manager was out on vacation, and I was given the option to wait for their return. Since I wasn’t in a rush and liked communicating with them so far, I agreed to wait the full two weeks. Unfortunately, the day before the interview, I was informed there had been a scheduling mix-up; the hiring manager would actually be returning the day after my interview.
Since I had been told there would be no live coding, I focused my preparation on the presentation and follow-up questions about the take-home project. I had just started applying to roles, so my live coding practice (e.g., LeetCode-style problems) was a very rusty.
The onsite interview started with the 15-minute presentation, which went smoothly. Then came the panel. The first 15 minutes went as expected; we discussed my take-home project. But then, unexpectedly, I was presented with a HackerRank-style coding challenge: to take a deeply nested object and convert it into a string in a specific format. I struggled with it. I was caught completely off guard, having been told explicitly there would be no live coding component.
A few days later, I was informed that I didn’t get the job. I was pretty disappointed; not because of the rejection itself, but because I had spent a significant amount of time on the process and would have prepared differently had I known there could even be a chance of live coding. It felt disrespectful and misleading. I sent a email to the hiring manager explaining that the interview did, in fact, include live coding despite being told otherwise. The hiring manager responded and apologized for the miscommunication.