Position: Fullstack Software Engineer II
Experience: 7 years YOE
Interview with HR: First I had a call with HR, who mostly talked up how small the company is, how big each engineer's scope is, and how they acquired Viagogo in Europe and are working hard to expand. Then they asked me to walk through a project I'd led before. I had originally applied for a Sr. SDE role — I have 7 years of experience at a FAANG — but after the call they told me they wanted to move me to their SDE II instead. The pay was still okay, so I figured I'd interview anyway. Next up was a 60-minute interview with the hiring manager.
Project Deep Dive with HM (45min): The manager gave me some background on the team first. What stood out was that this isn't just product engineering — they really need a lot of back-and-forth with PMs and stakeholders to nail down requirements, and he kept emphasizing how big their scope is.
Questions: pretty standard — introduce yourself, your most impactful recent project, what was the most challenging part.
After passing this, I moved on to the virtual onsite: one system design round and one OOD coding round.
Coding Round (60min): The problem was a common OOD question from the forums: a Strategy Recommending Engine. I used Python. Basically, a ticket-selling platform has a huge number of users and events, and needs an engine that picks suitable events for a user based on different strategies and sends them an email. It starts with a simple rule (same city) and the follow-up gets into more complex rules.
a. Recommend events in the user's own city.
b. Recommend events priced under $50.
So the rough logic was:
First define the data model: User, Event.
Define a service: PriceService, which can fetch event ticket prices.
Define an interface RecommendationStrategy as an abstract class, so multiple different strategies (by city, price, location) can plug in later.
Define an Engine, as the problem required.
EmailMarketingEngine: uses the configured strategies to send emails to the users it identifies for recommendations.
It ended up looking something like this:
price_svc = PriceService()
engine = EmailMarketingEngine([
LocationStrategy(), PriceStrategy(price_svc, 500.0)
])
Discussion
Loading comments…