
The Farmer's Dog Software Engineer Interview Questions
& Process
Real candidates share what happened, how many rounds they had,
and how the experience turned out.
Based on 23 interview experiences · FREE TO READ
Candidate interview experiences
First-hand accounts from people who interviewed at The Farmer's Dog.
Software Engineer
The interview process involved a recruiter call, a coding question, a system design question, a behavioral interview, a reference check, and finally an offer call. I really liked interviewing at TFD; the questions felt practical for the job and not like tricks. Everyone was nice and smart. The only downside was the reference check, which feels a bit outdated and unnecessary now, plus it inconveniences former coworkers. Despite that, it was a good interview experience overall, and I'd recommend TFD.
- How would you implement an Object-Oriented Programming system for hotel bookings?
Software Engineer
So I went through the interview process at The Farmer's Dog and man, it was a bit of a headache. It dragged on for like a month, and there were at least 4 stages, plus some unexpected twists. First up was the Recruiter Screening (30 mins), which was actually great. Then the Engineering Manager Interview (45 mins) – pretty meh. After that, a Systems Design Interview (60 mins), which was also great. But then the Live Coding Challenge (45 mins) was just terrible. One of the biggest frustrations was their coding skills test. They totally threw me off midway through, which left me feeling confused and annoyed. They used so much technical jargon, it felt like they expected me to be a walking encyclopedia. Honestly, I think it's enough to know how something works without needing super deep knowledge of a coding language. What really got me was the hypocrisy in the coding interview. They said there wasn't a 'right' answer, but then they pushed me to use their specific class methods with some obscure utility function. I've built messaging queues before, and it was infuriating to be forced into making a less-than-ideal solution just because they weren't flexible. The whole coding challenge didn't feel like a real test of my skills as a software engineer. The pressure was intense, and it seemed like they were more focused on catching errors than seeing how I could contribute to a team. You can't say collaboration is important and then penalize someone for trying to collaborate when they're stuck. For other engineers, think about it: do you have someone breathing down your neck while you code at work, just waiting for you to mess up? This interview felt like being interrogated by people who didn't seem to know how to interview well. The general feeling was that I was wasting their time, except for the Systems Design interview, which was enjoyable. The Farmer's Dog's talk about their company culture didn't match what I experienced, at least on the engineering side. I'm over just accepting this as the industry standard. We need to improve, and that's why I'm sharing this.
- Could you design a Javascript Messaging Queue class that handles promises, executing up to 10 requests concurrently until the queue is depleted?
- The Queue class should include two methods: add() and start().
- A utility function will supply an array of anonymous functions (jobs), passed using the rest parameter syntax to the add() function, like so: add(...jobs).
Software Engineer
It started with a call with the recruiter, then two scheduled technical interviews: a 90-minute system design and a 75-minute pairing session. The system design was standard, but the pairing session involved a tricky, gotcha-style problem, as others have noted. I think I passed both, though not perfectly. My main worry was having three leadership interviews scheduled for the same day, right after the technicals, which I took as a good sign I'd passed them. After one leadership interview, they cancelled the second due to a conflict. A few hours later, they also cancelled the third and told me I was rejected, partly because of my knowledge of the event loop during the technicals and a level mismatch. It’s a bit weird to schedule three leadership interviews after failing a technical. It was a tough process, but at least it was over in about two weeks.
- Can you create a Queue class that takes a list of Promise-returning jobs and has a set capacity? It should add jobs up to its capacity, and once they resolve, it should remove them and add new ones if available. For an extra challenge, how would you implement error handling with a limited number of retries?
The Farmer's Dog Software Engineer Interview Questions
Quoted word for word from The Farmer's Dog interview reports.
“Can you build a class using vanilla JavaScript?”
Read reports →“What are some common Array methods?”
Read reports →“Can you explain runtime complexity?”
Read reports →“Could you implement a Queue class with Add and Start methods, where Add takes an array of promises and Start executes them with a constant concurrency of 10?”
Read reports →“Can you detail all the aspects of the API for this IOT service?”
Read report →“Could you provide specific details about JavaScript syntax?”
Read report →“How would you design an app to display temperature from many thermometers?”
Read report →“Can you implement an algorithm for a "dog hotel" where given a list of dates, you return available rooms based on prior check-in and check-out dates?”
Read report →“How would you implement an Object-Oriented Programming system for hotel bookings?”
Read report →Formats, difficulty and experience
Across all 23 The Farmer's Dog interview reports.