Allen Digital | SDE2 | Banglore | June 2025 [Ghosted]
SDE-2Allen Digital SDE Intern Interview Experience
SDE InternAllen Digital | Allen | SDE - 2 Backend | Machine coding round
SDE - 2 BackendAllen Digital | SDE3 | Banglore | December 2024 [Reject]
sde3 backend engineerAllen Digital | Machine Coding Interview | SDE-1 | Backend
sde-1 backend2 more experiences below
Summary
I interviewed with Allen Digital for a Backend SDE-2 role, covering machine coding, DSA, and HLD/LLD rounds. Despite performing well and discussing approaches, I was unfortunately ghosted after multiple follow-ups.
Full Experience
Hey Community,
I’m currently working as an SDE-2, and recently had the opportunity to interview with Allen Digital for a Backend SDE-2 role. I applied through LinkedIn.
Round 1 (Machine Coding) – Cab Driver Billing System
Problem Statement:
You are part of a cab aggregator company, Allen Cabs, similar to Ola/Uber. As part of the Driver Billing team, you need to build a system that periodically generates bills for drivers based on the distance they've driven.
Platform Capabilities:
Drivers are onboarded to Allen Cabs and assigned a unique ID.
Vehicles are classified into three categories based on their model:
Economy
Premium
Luxury
Billing is based on the distance driven during trips, which can be:
Intra-city
Outstation
Billing Rates:
Intra-city:
Economy – ₹5/km
Premium – ₹12/km
Luxury – ₹15/km
Outstation: Charges are 2x of intra-city rates.
Cancellation Policy:
If a driver cancels the trip → fine of ₹10.
If a customer cancels the trip → driver is compensated ₹10.
Bonus Requirements (optional):
Variable cancellation fee based on trip type and vehicle category.
Ability to generate bills for a given time interval.
Drivers can either use:
Personal vehicles, or
Leased vehicles (leased from Allen Cabs, Allen charges x% of the bill as commission).
Method Signatures & Sample Inputs
AddDriver
AddDriver("Sachin", "+91-9936673000", "D101")
AddDriver("Ramesh", "+91-9936673011", "DL_02")
AddDriver("Manjunath", "+91-9936673010", "DL_03")
AddVehicle
AddVehicle("KA-01-2222", "Maruti Suzuki", "ECONOMY")
AddVehicle("KA-01-2223", "Ertiga", "PREMIUM")
MapDriverToVehicle
MapDriverToVehicle("Ramesh", "KA-01-2222")
MapDriverToVehicle("Manjunath", "KA-01-2223")
AddTrip
AddTrip(50, 1723116023, 1723117023, "INTRACITY", "COMPLETED", "Ramesh")
AddTrip(1050, 1723116023, 1723117023, "OUTSTATION", "COMPLETED", "Ramesh")
AddTrip(50, 1723116023, 1723117023, "INTRACITY", "CANCELED_CUSTOMER", "Ramesh")
AddTrip(50, 1723116023, 1723117023, "OUTSTATION", "CANCELED_DRIVER", "Manjunath")
AddTrip(70, 1723116023, 1723117023, "OUTSTATION", "COMPLETED", "Manjunath")
GetBill
GetBill("Ramesh") => (50 * 5) + (1050 * 10) + 10 = ₹10,560
GetBill("Manjunath") => -10 + (70 * 12 * 2) = ₹1,670
I was able to pass all test cases. For the bonus requirements, I discussed my approach with the interviewer, and he seemed satisfied with the direction I took.
Round 2 (DSA)
Search in Rotated Sorted Array - https://leetcode.com/problems/search-in-rotated-sorted-array/description/
Meeting Rooms II - https://leetcode.com/problems/meeting-rooms-ii/description/
I solved both problems starting from the brute-force approach and then optimized them step-by-step. These are fairly common problems and I was well-prepared for them.
Round 3 (HLD + LLD)
The interviewer was quite experienced. We began by discussing my previous projects and work experience. Then, I was asked to design a Ticket Booking System similar to IRCTC.
Here’s what I covered:
- Identified and discussed core entities and their relationships.
- Asked for and incorporated the interviewer’s feedback throughout the discussion.
- Transitioned into the High-Level Design, covering components and request flow.
- Toward the end, I was asked to add support for User Preferences (like berth choice).
I discussed possible design patterns that would allow such changes to be accommodated in a scalable and maintainable way.
The interviewer seemed satisfied with my design and thought process.
Final Result
Unfortunately, despite multiple follow-ups with the TA Coordinator, I never received any concrete feedback. The only response I got was:
“I’ll get back to you soon.”
Hope this post helps others preparing for backend interviews!
Interview Questions (4)
You are part of a cab aggregator company, Allen Cabs, similar to Ola/Uber. As part of the Driver Billing team, you need to build a system that periodically generates bills for drivers based on the distance they've driven.
Platform Capabilities:
Drivers are onboarded to Allen Cabs and assigned a unique ID.
Vehicles are classified into three categories based on their model:
Economy
Premium
Luxury
Billing is based on the distance driven during trips, which can be:
Intra-city
Outstation
Billing Rates:
Intra-city:
Economy – ₹5/km
Premium – ₹12/km
Luxury – ₹15/km
Outstation: Charges are 2x of intra-city rates.
Cancellation Policy:
If a driver cancels the trip → fine of ₹10.
If a customer cancels the trip → driver is compensated ₹10.
Bonus Requirements (optional):
Variable cancellation fee based on trip type and vehicle category.
Ability to generate bills for a given time interval.
Drivers can either use:
Personal vehicles, or
Leased vehicles (leased from Allen Cabs, Allen charges x% of the bill as commission).
Method Signatures & Sample Inputs
AddDriver
AddDriver("Sachin", "+91-9936673000", "D101")
AddDriver("Ramesh", "+91-9936673011", "DL_02")
AddDriver("Manjunath", "+91-9936673010", "DL_03")
AddVehicle
AddVehicle("KA-01-2222", "Maruti Suzuki", "ECONOMY")
AddVehicle("KA-01-2223", "Ertiga", "PREMIUM")
MapDriverToVehicle
MapDriverToVehicle("Ramesh", "KA-01-2222")
MapDriverToVehicle("Manjunath", "KA-01-2223")
AddTrip
AddTrip(50, 1723116023, 1723117023, "INTRACITY", "COMPLETED", "Ramesh")
AddTrip(1050, 1723116023, 1723117023, "OUTSTATION", "COMPLETED", "Ramesh")
AddTrip(50, 1723116023, 1723117023, "INTRACITY", "CANCELED_CUSTOMER", "Ramesh")
AddTrip(50, 1723116023, 1723117023, "OUTSTATION", "CANCELED_DRIVER", "Manjunath")
AddTrip(70, 1723116023, 1723117023, "OUTSTATION", "COMPLETED", "Manjunath")
GetBill
GetBill("Ramesh") => (50 * 5) + (1050 * 10) + 10 = ₹10,560
GetBill("Manjunath") => -10 + (70 * 12 * 2) = ₹1,670
The interviewer was quite experienced. We began by discussing my previous projects and work experience. Then, I was asked to design a Ticket Booking System similar to IRCTC.
Here’s what I covered:
- Identified and discussed core entities and their relationships.
- Asked for and incorporated the interviewer’s feedback throughout the discussion.
- Transitioned into the High-Level Design, covering components and request flow.
- Toward the end, I was asked to add support for User Preferences (like berth choice).
I discussed possible design patterns that would allow such changes to be accommodated in a scalable and maintainable way.
Summary
This post details my interview experience for the SDE Intern role at Allen Digital, covering three rounds: two technical and one non-technical.
Full Experience
Hello!
This post is about my interview expereince for sde intern role at allen.
Comp. and other details - https://leetcode.com/discuss/post/6046603/sde-intern-allen-bangalore-by-anonymous_-1k73
round - 1 q1 - explain linkedlist datastructure and how do you reverse a linkedlist (more of a warmup question after some intro) q2 - was asked about heap and it's internal implementation q3 - explain Tree data structure and 2 easy qns around it like diameter and height (dont exactly remember) q4 - alien dictionary (graph)
round - 2 non-technical, talked about background a little bit and about the role's responsibilities
round - 3 this was dev focused mostly js and react. I dont remember the exact questions asked but the format was like for js there were some code snippets and you were expected to tell the output, If you have good knowledge of js like promises, event loop, some keywords like typeof you can easily crack this and for react it like you are asked about some topic lets say useContext you have to explain about the hook and write some code using it explaining it feature, the same followed for few more topics. Also I was asked about the projects that I built and I explained it completely from scratch like problem it solves, techstack used, critical areas e.t.c..
Interview Questions (5)
Explain the linked list data structure and describe how to reverse a linked list.
Describe the heap data structure and its internal implementation.
Explain the Tree data structure. Additionally, two easy questions related to trees were discussed, specifically referencing problems like finding the diameter and height of a tree.
Solve the Alien Dictionary problem using graph algorithms.
Explain the React useContext hook, including its features, and write code demonstrating its usage.
Summary
I had a machine coding round for an SDE-2 Backend role at Allen Digital, where I was given 90-100 minutes to code a solution for an Online Test Proctoring System problem.
Full Experience
I was shared this google sheet and this was the question
What happened during the interview ? I Wrote the code in intelli j , Java 15 minutes : We discussed question and my doubts 90 - 100 Min : i coded out the solution last 15 - 30 min : discussed the solution
I submitted my solution to him on mail by sending the complete folder
Interview Questions (1)
Allen Digital is developing an online test proctoring system to monitor students during remote examinations. As part of the development team, you need to implement the core monitoring and alert system.
Expectations and Guidelines: ● Time Allotted: 90 minutes ● Internet Usage: You may use the internet only for syntax references. ● Programming Language: You may use any language of your choice. ● External Libraries: Do not use any external libraries. All code should be written by you. ● Make sure that you have working and demonstrable code for all requirements. ● Use of proper abstraction, separation of concerns is required. ● Code should easily accommodate new requirements with minimal changes. ● Proper exception handling is required. ● Code should be modular, readable and unit-testable.
Important Notes: ● Do not use any database store, use in-memory data structure. ● Do not create any UI for the application. ● Do not build a Command line interface. Executing test cases or a simple Main function should be sufficient. ● Do not make any assumptions; please ask if clarification is needed.
Evaluation Metrics: Your code will be evaluated based on: ● Functional Correctness ● Completeness ● Exception Handling ● Design Pattern Implementation
Platform Capabilities:
- Students can register for online tests with their unique ID, name, and email.
- Tests are defined with a unique ID, subject, duration, and start time.
- The system monitors various activities during a test: ○ Tab switching (browser tab changed) ○ Focus loss (student not looking at the screen) ○ Multiple faces detected ○ No face detected ○ Suspicious object detected
- Each activity type has a severity level: ○ LOW: Warning only (focus loss < 5 seconds) ○ MEDIUM: Potential cheating (multiple tab switches, focus loss > 5 seconds) ○ HIGH: Definite violation (multiple faces, suspicious objects)
- The system should generate alerts based on these activities: ○ For LOW severity: Record the incident and continue ○ For MEDIUM severity: Issue a warning to the student ○ For HIGH severity: Flag the test for review and notify the proctor
- After 3 MEDIUM severity incidents or 1 HIGH severity incident, the system should automatically pause the test and require proctor intervention. Bonus Capabilities:
- Implement a time-weighted severity system where repeated violations in a short timeframe escalate severity.
- Add a feature to record snapshots (text representation) at regular intervals for later review.
- Implement an appeals system where students can provide explanations for flagged activities.
- Add a statistical analysis feature to identify unusual patterns across multiple students taking the same test. Test Cases:
// Register Students
RegisterStudent("ST001", "Vikram Singh", "vikram@example.com") RegisterStudent("ST002", "Anjali Desai", "anjali@example.com")
// Create Tests
CreateTest("TEST001", "JEE Advanced Physics", 180, 1723116023) CreateTest("TEST002", "NEET Biology", 120, 1723126023)
// Register Students for Tests
EnrollStudentInTest("ST001", "TEST001")
EnrollStudentInTest("ST002", "TEST001")
EnrollStudentInTest("ST002", "TEST002")
// Start Tests
StartTest("ST001", "TEST001", 1723116023)
StartTest("ST002", "TEST001", 1723116023)
// Record Activities
RecordActivity("ST001", "TEST001", "TAB_SWITCH", 1723116100) RecordActivity("ST001", "TEST001", "FOCUS_LOSS", 1723116200, 3) // 3 seconds
RecordActivity("ST001", "TEST001", "FOCUS_LOSS", 1723116300, 10) // 10 seconds
RecordActivity("ST002", "TEST001", "MULTIPLE_FACES", 1723116400)
// Get Student Violations
GetViolations("ST001", "TEST001")
// Expected: 2 violations (1 LOW, 1 MEDIUM)
// Check Test Status
GetTestStatus("ST001", "TEST001")
// Expected: ACTIVE with warnings
GetTestStatus("ST002", "TEST001")
// Expected: PAUSED (due to HIGH severity violation)
// Generate Proctor Report
GenerateProctorReport("TEST001")
// Should list all violations by all students in the test
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)
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.
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 :)
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.
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.
Summary
I recently interviewed for an SDE-1 Backend role at Allen Digital, where I completed a machine coding challenge to design a Vaccination Booking System. I successfully implemented the core requirements within 100 minutes and was subsequently selected for the next round.
Full Experience
I had my first interview for an SDE-1 Backend position at Allen Digital, which was conducted by Barraiser, a third-party company. With around 10 months of experience, I was given 100 minutes within a 120-minute slot to design and code a complete Vaccination Booking System. The interview started and ended with 10 minutes for discussion. The interviewer presented specific requirements, for which I had to create APIs/functions. I successfully coded a working system incorporating all the mentioned requirements within the time limit. There was a bonus requirement, but due to time constraints, I couldn't implement it and was asked to upload the code and move to the discussion phase. The discussion primarily revolved around my approach and solution to the problem. I received a call from HR the next day informing me of my selection for the next round, which will be a DSA round.
Interview Questions (1)
I was tasked with designing an entire Vaccination Booking System within 100 minutes. The interview included an initial and final 10-minute discussion period, leaving me with 100 minutes to both conceptualize and code the system. The interviewer provided a specific set of requirements, for which I needed to create APIs/functions. The main requirements were:
- Add users and vaccination centers.
- Allow each vaccination center to have varying daily capacities, be located in different districts and states, and support modification/addition of daily capacity.
- Enable retrieval of a vaccination center's capacity for any given day.
- Provide a list of all vaccination centers within a specific district.
- Allow users to book a vaccination slot, returning a booking ID and decreasing the center's capacity. This also involved checking if the user is above 18 years of age and if the center has the required capacity.
- Allow users to cancel their booking using the booking ID, which should also free up the center's capacity.
Preparation Tips
My key takeaway from this experience is to allocate just a short amount of time, probably no more than 15-20 minutes, for discussing the problem and then focus heavily on writing the code. In such machine coding interviews, interviewers generally expect candidates to deliver a complete, working solution rather than just engaging in extensive discussions about the approach.
Summary
I interviewed for an SDE 2 position at Allen Digital in Bangalore and was unfortunately rejected after completing two rounds. The interview process included an OOPS coding round and a system design round.
Full Experience
My interview process at Allen Digital for the SDE 2 role consisted of two main rounds.
Round 1: OOPS Coding Round
This round focused on object-oriented programming concepts and practical coding. I was presented with a problem to design a 'Limited Time Deals' system for an e-commerce platform. The core requirements involved creating APIs for deal creation, ending a deal, updating deal details (like increasing item count or end-time), and allowing users to claim a deal. Specific constraints included users buying only one item per deal, inability to buy expired deals, and inability to buy if the maximum deal limit was reached. The interviewer emphasized good coding practices, readability, maintainability, database usage (Postgres/MySQL/NoSQL), API definition, and unit testing.
Round 2: Design Round
The second round was a system design interview. I was asked to design the 'Book My Show' platform, covering both High-Level Design (HLD) and Low-Level Design (LLD). A significant part of the discussion revolved around how to effectively handle concurrency issues within the system. I also needed to define all relevant entities and their relationships.
Ultimately, I was rejected after these rounds.
Interview Questions (2)
You are a budding entrepreneur who devised an idea to build an e-commerce giant like Amazon, Flipkart, Walmart, etc. As part of this ambition, you want to build a platform to duplicate the concept of Limited Time Deals.
Limited Time Deals
A limited-time deal implies that a seller will put up an item on sale for a limited period, say, 2 hours, and will keep a maximum limit on the number of items that would be sold as part of that deal. Users cannot buy the deal if the deal time is over. Users cannot buy if other users have already bought the maximum allowed deal. Users can buy up to one item as part of the deal.
The task is to create APIs to enable the following operations:
- Create a deal with the price and number of items to be sold as part of the deal
- End a deal
- Update a deal to increase the number of items or end-time
- Claim a deal
Guidelines
- Document and communicate your assumptions in README.
- Create a working solution with production-quality code.
- Use an external database like Postgres/MySQL or any NoSQL database
- Define and Create APIs to support the operations mentioned above
- Write a few unit tests for the most important code
What are we looking for?
- Your approach to the solution
- How you write code in terms of readability and maintainability
- Usage of best practices
- Testing skills
Design Book My Show system (HLD & LLD). Address how to handle concurrency. Define all entities and relationships among them.
Summary
I recently interviewed with Allen Digital for a Frontend Developer role, completing two machine coding rounds and a culture-fit interview. I successfully solved two DSA problems, 3 Sum and Merge Intervals, during the first machine coding round despite some in-interview confusion regarding the latter's solution.
Full Experience
I recently had my interview experience with Allen Digital for a Frontend Developer position. The process consisted of three rounds: two machine coding rounds and a final culture-fit/managerial round.
The initial machine coding round focused on Data Structures and Algorithms. I was presented with two specific problems: 3 Sum and Merge Intervals. I implemented the 3 Sum problem using the two-pointers method. Although I hadn't encountered the Merge Intervals problem before, I managed to solve it during the interview.
I faced a slight challenge with the Merge Intervals problem when I tried to trace my solution, especially the 'else' part, on the same document I was coding on, but the interviewer prevented me from doing so. This initially confused me, but the interviewer continued to test my code with various edge cases. Fortunately, my solution proved robust and worked correctly for all test cases. I decided to share this experience since there weren't any existing posts about Allen Digital's interview process.