Allen Digital | SDE3 | Banglore | December 2024 [Reject]
Hey everyone, hope you're doing well!
I currently work as an SDE-2 at Amazon and recently had the opportunity to interview with Allen Digital for an SDE-3 backend role. The recruiter reached out to me on LinkedIn
Round 1(Machine Coding) -
Problem Statement:
You have to design and implement a logger library that applications can use to log messages.
Client/application make use of your logger library to log messages to a sink
Platform Capabilities:
Message
- has content which is of type string
- has a level associated with it
- has namespace associated with it to identify the part of application that sent the message
Sink - This is the destination for a message (e g text file, database, console, etc)
- Sink is tied to one or more message level
Logger library - Requires configuration during sink setup
- Accepts messages from client(s)
- Routes messages to appropriate sink based on the level
- Supports following message level in the order of priority: FATAL, ERROR WARN, INFO, DEBUG.
- Message levels with higher priority above a given message level should be logged.
Ex: If INFO is configured as a message level, FATAL, ERROR, WARN and INFO should be logged
Fatal, Error,Warn, Info
- Message levels with higher priority above a given message level should be logged.
- Enriches message with additional information (like timestamp) while directing message to a sink
- Should not impact the application flow.
Sending messages
- Sink need not be mentioned while sending a message to the logger library.
- A message level has a 1:1 mapping with sink.
- Client specifies message content, level and namespace while sending a message
Logger configuration (see sample below) - Specifies all the details required to use the logger library.
- One configuration per association of message level and sink
- You may consider logger configuration as a key-value pair
- Example:
- logging level
- sink type
- details required for sink (eg file location)
Bonus Capabilities:
- No information loss. Logger library should log all the messages before the client application shuts down.
- Log Level for the application can be updated dynamically.
Verdict: Hire
Round 2(DSA) -
Question 1:
Given a list of locations, where each location is represented by a list of regions from specific to general (e.g., ["Bengaluru", "Bellandur", "Marathahalli"]), find the smallest area (region) that contains both Area1 and Area2.
Example:
Input:
Locations = [["Bengaluru", "Bellandur", "Marathahalli", "Kormangala"], ["Karnataka", "Bengaluru", "Mysuru"], ["Maharashtra", "Mumbai", "Pune"], ["India", "Karnataka", "Maharashtra"], ["Italy", "Rome", "Venice"], ["World", "India", "Italy"]]
Area1 = "Bengaluru"
Area2 = "Pune"
Output:
Smallest area containing Area1 and Area2: "India"
LCA problem :)
Question 2:
Allen has a few classes, each with a certain number of students and a given pass ratio(number_of_students_passed / total_number_of_students_in_class). New students need to be admitted in a way that it maximises the pass ratio for Allen
Suggested an approach using priority_queue
Verdict: Hire
Round 3(HLD+LLD) -
Design AllenFit(very similar to cult.fit)
- Discussed data models in detail
- Discussed High Level Design, both Monolith and MicroService architecture
- DIscussed API signatures
Verdict: No Hire
Overall Verdict: No Hire
Microsoft Interview Experience
Flipkart Interview Experience
Linkedin Interview Experience
Groupon Interview Experience
super.money Interview Experience

