Round 1
Given a sequence of words written using a scrambled alphabet, determine whether the strings are sorted in ascending lexicographic order.
The input is a string array (e.g. cat, bat, tab) plus a sorted char array giving the alphabet order (e.g. C, B, A, T). Return true or false.
Design a VersionedArray class that implements the following interface:
- Init: pass in a length to initialize the array, all default values set to 0.
- int saveVersion(): saves the current state of the array and returns a version number (starting from 1, incrementing).
- void update(int index, int value): updates the value at the given index to value.
- int getValue(int index, int versionNumber): gets the value at the given index under the given version number.
Round 2
Define a database schema and write code for the following three APIs:
- Database schema design: define the Interviewers, Availability, and Interviews tables along with their primary/foreign keys and fields.
- MarkSlots API: lets an interviewer mark time slots when they're available to interview.
- GetAvailableSlots API: gives the candidate a list of all available interview slots over the next 14 days.
- BookInterview API: lets the candidate pick a slot to book an interview, with the system automatically assigning an available interviewer.
Onsite - System Design
Design Uber
Onsite - Behavioral
Behavioral interview with the Chief, covering these questions:
- What's your favorite SaaS product? What improvements would you suggest?
- If you were a Senior Product Manager, what would you do?
- Conflict management experience.
- What kind of energy do you bring to work that makes people see you that way?
- What's your weakness?
- Why do you want to join TrueFoundry?
Discussion
Loading comments…