Allen Digital | SDE3 | Banglore | December 2024 [Reject]

allen digital logo
allen digital
sde3 backend engineerbangaloreRejected
February 3, 202526 reads

Summary

I interviewed with Allen Digital for an SDE-3 backend role, which involved machine coding, DSA, and system design rounds. Despite strong performances in the initial rounds, I ultimately received a rejection due to the system design round.

Full Experience

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 after being reached out to by a recruiter on LinkedIn.

Round 1 (Machine Coding)

I was given a problem to design and implement a logger library that applications could use to log messages to various sinks. The problem statement detailed platform capabilities, message properties (content, level, namespace), sink requirements, logger library functionality (configuration, routing, enrichment, non-impact on application flow), and message sending specifics. Bonus capabilities included no information loss and dynamic log level updates.

Verdict: Hire

Round 2 (DSA)

This round had two questions.

  • Question 1: I was presented with a list of locations, where each location was a list of regions from specific to general. The task was to find the smallest common area (region) that contained two given areas. The example provided was finding the smallest area for 'Bengaluru' and 'Pune' from a global hierarchy, with the output being 'India'. This was explicitly stated as an LCA problem.
  • Question 2: Allen had several classes, each with a certain number of students and a given pass ratio. The challenge was to admit new students in a way that maximized the overall pass ratio for Allen. I suggested an approach using a priority queue for this problem.

Verdict: Hire

Round 3 (HLD+LLD)

This round focused on designing AllenFit, a platform very similar to cult.fit. We discussed data models in detail, explored both Monolith and MicroService architectures for the High-Level Design, and covered API signatures.

Verdict: No Hire

Overall Verdict: No Hire

Interview Questions (4)

Q1
Design a Logger Library
Other

You have to design and implement a logger library that applications can use to log messages. Clients/applications 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 levels.
  • 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.
    • 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 (e.g., 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.
Q2
Find Smallest Common Region for Locations (LCA Variant)
Data Structures & Algorithms

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 :)

Q3
Maximize Pass Ratio with New Student Admissions
Data Structures & Algorithms

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.

Q4
Design AllenFit
System Design

Design AllenFit, a platform very similar to cult.fit. The discussion covered various aspects of the system:

  • Detailed discussion of data models.
  • High-Level Design, exploring both Monolith and MicroService architecture approaches.
  • Definition and discussion of API signatures.
Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!