Level: Mid-Level
Round: Onsite · Type: Multiple Types · Difficulty: 7/10 · Duration: 240 min · Interviewer: Unfriendly
Topics: Object-Oriented Programming, Data Structures, Algorithms, API Integration, Debugging, Behavioral Questions
Location: San Francisco Bay Area
Interview date: 2026-01-15
Technical: Email Subscription
I was given the following inputs:
user_accounts: A list of users, each with a name, plan, duration, and account date.schedule: A dictionary with keys for start, end, and a negative number representing the number of days before plan expiration to send an upcoming expiry email. Values are email titles (e.g., Welcome, Upcoming Expiry, Expired).subscription_change: A list containing change_time, name, new_plan, or extension_days.I needed to generate outputs like:
0: [Welcome] Subscription for John (Silver) where 0 is the time, Welcome is the email title, John is the username, and Silver is the user's plan.
Tasks:
user_accounts and schedule, print emails in chronological order.subscription_changes. On the day of a plan change, send an 'Updated' email. Subsequent emails should reflect the new plan.extension in subscription_change. On the day of extension, send a 'Renewed' email. Update upcoming expiry and expired email times accordingly.Follow-up:
Integration: Bikemap API
I had to work with the Bikemap API to:
Debug: Mako (Python)
I chose Python with the Mako template engine. I encountered these issues:
Behavioral Questions:
These were standard interview questions.