Panda Guru LogoPanda
Guru

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

Round 1 (Machine Coding)

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

  1. has content which is of type string
  2. has a level associated with it
  3. has namespace associated with it to identify the part of application that sent the message
    Sink
  4. This is the destination for a message (e.g., text file, database, console, etc.)
  5. Sink is tied to one or more message level
    Logger library
  6. Requires configuration during sink setup
  7. Accepts messages from client(s)
  8. Routes messages to appropriate sink based on the level
  9. 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.
  10. Enriches message with additional information (like timestamp) while directing message to a sink
  11. Should not impact the application flow.

Sending messages

  1. Sink need not be mentioned while sending a message to the logger library.
  2. A message level has a 1:1 mapping with sink.
  3. Client specifies message content, level and namespace while sending a message.

Logger configuration

  1. Specifies all the details required to use the logger library.
  2. One configuration per association of message level and sink.
  3. You may consider logger configuration as a key-value pair.
  4. Example:
    • logging level
    • sink type
    • details required for sink (e.g., file location)

Bonus Capabilities:

Verdict: Hire

Candidate's Approach

No approach provided.

Interviewer's Feedback

No feedback provided.


Round 2 (DSA)

Questions: 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 maximizes the pass ratio for Allen.
Suggested an approach using priority_queue.

Verdict: Hire

Candidate's Approach

No approach provided.

Interviewer's Feedback

No feedback provided.


Round 3 (HLD+LLD)

Questions: Design AllenFit (very similar to cult.fit)

  1. Discussed data models in detail
  2. Discussed High Level Design, both Monolith and MicroService architecture
  3. Discussed API signatures

Verdict: No Hire

Candidate's Approach

No approach provided.

Interviewer's Feedback

No feedback provided.


Overall Verdict: No Hire

Microsoft Interview Experience
Flipkart Interview Experience
Linkedin Interview Experience
Groupon Interview Experience