Interview experience
ADP Interview Questions and Answers (2026)
Overview
Section titled “Overview”ADP’s fresher loop is unusual in two ways: the HR round can come before the technical interview rather than after, and the closing “managerial” round is often a director-led technical deep-dive on data structures and OS concepts rather than a soft-skills chat.
ADP interview process at a glance
Section titled “ADP interview process at a glance”| Round | Duration | What it tests |
|---|---|---|
| Written Test | 80-90 min | Aptitude, logical reasoning, technical MCQs (DS, DBMS, C) |
| HR Interview | 20-30 min | Background, project overview, why ADP (can precede technical) |
| Technical Interview | 30-45 min | Projects, live coding, OOPs, HTML, SQL |
| Managerial Round (some drives) | 45-60 min | Director-level DSA/OS deep dive plus behavioural |
Written test
Section titled “Written test”An 80-90 minute elimination round mixing quantitative aptitude and logical reasoning with technical MCQs on data structures, DBMS, and C program output.
Common questions
- Quantitative aptitude and logical reasoning MCQs
- Predict-the-output questions on C programs
- MCQs on basic data structures and DBMS concepts
HR interview
Section titled “HR interview”Notably, this can be scheduled before the technical round at ADP rather than after. Expect a comprehension check on the company presentation, motivation questions, and even SQL joins mixed in alongside background/family questions.
Common questions
- Questions checking comprehension of ADP’s company presentation
- Why ADP, and what do you know about its HR/payroll technology products?
- SQL joins and basic query questions
- Academic and family background, preferred work location
Technical interview
Section titled “Technical interview”A resume- and fundamentals-driven round: OOPs concepts, a live-coding problem, and basic web/HTML knowledge.
Common questions
- Explain polymorphism with an example from your projects
- Live-code adding two numbers represented as linked lists
- Basic HTML questions (tags, structure)
- Walkthrough of your final-year project
Managerial round (some drives)
Section titled “Managerial round (some drives)”Reported as director-led and unusually technical - effectively a second technical round covering data structures and OS concepts, plus behavioural questions.
Common questions
- Binary search and its variants
- Search in a rotated sorted array
- Semaphore vs mutex - differences and use cases
- Behavioural: a time you took ownership or resolved a team disagreement
Full round-by-round narratives are on the ADP interview experience page.
Why the HR-before-technical order matters
Section titled “Why the HR-before-technical order matters”Most companies close with HR after the technical bar is cleared; ADP has been reported doing the opposite on some drives, running HR before or alongside the technical round. That means you can’t treat HR as an afterthought once you’ve “passed” - come prepared with your company research and behavioural stories from round one, not just before the final round.
Common technical interview questions and answers
Section titled “Common technical interview questions and answers”Q: How do you search for an element in a rotated sorted array?
Use a modified binary search in O(log n) time and O(1) space. At each step compute mid; one of the two halves must still be sorted. If arr[low] <= arr[mid], the left half is sorted, so check whether the target lies between arr[low] and arr[mid]; if it does, move high to mid-1, otherwise move low to mid+1. If the left half is not sorted, then the right half is, so apply the mirror check against arr[mid] and arr[high]. Return mid whenever arr[mid] equals the target. The single most common bug is comparing against arr[0] instead of arr[low] after the range has shrunk. With duplicates allowed, the case where arr[low], arr[mid], and arr[high] are all equal forces you to shrink the window by one and the worst case degrades to O(n).
Q: Why is binary search mid computed as low + (high - low) / 2 rather than (low + high) / 2?
Because low + high can overflow a 32-bit signed integer when both indices are large, producing a negative mid and an out-of-bounds access. Writing low + (high - low) / 2 keeps every intermediate value within the array range, so it cannot overflow. This was a real bug in the JDK’s Arrays.binarySearch for nearly a decade. The other classic pitfalls are using a while condition of low < high when an exact-match search needs low <= high, and forgetting that integer division floors, which biases mid toward low and can cause an infinite loop if you ever set low = mid instead of mid + 1. Binary search requires a sorted array and runs in O(log n) time and O(1) space when written iteratively.
Q: Explain polymorphism and the difference between its compile-time and run-time forms.
Polymorphism means one interface serving many underlying types. Compile-time or static polymorphism is achieved with method overloading and, in C++, operator overloading: several methods share a name but differ in parameter list, and the compiler picks one from the argument types, so there is no runtime cost. Run-time or dynamic polymorphism is achieved with method overriding: a subclass supplies its own implementation of an inherited method, and a call through a base reference dispatches to the object’s actual type at runtime through the virtual table. In Java every non-static, non-final method is virtual by default; in C++ you must mark the base method virtual or the call binds statically. The practical payoff is that a payroll engine can hold a list of Employee references and call calculatePay on each without knowing whether the object is Salaried, Hourly, or Contractor.
Q: How do you add two numbers represented as linked lists?
If digits are stored in reverse order, with the least significant digit at the head, walk both lists in one pass carrying a variable carry initialised to zero. At each step take the current digit from each list, treating a null node as 0, add them plus the carry, append a new node holding sum % 10, and set carry = sum / 10. Continue while either list has nodes remaining or the carry is non-zero, so the final carry produces an extra node. That is O(max(m, n)) time and O(max(m, n)) space for the output. If the digits are stored most-significant-first, either reverse both lists, add, and reverse the result, or push both lists onto stacks and pop while building the result list backwards by prepending nodes. Using a dummy head node avoids a special case for the first append.
Q: What are the different types of SQL joins?
An INNER JOIN returns only rows where the join predicate matches in both tables. A LEFT OUTER JOIN returns every row from the left table plus matching right-table columns, filling NULL where there is no match; RIGHT OUTER JOIN is the mirror; FULL OUTER JOIN returns unmatched rows from both sides. A CROSS JOIN produces the Cartesian product, m times n rows. A SELF JOIN is just a table joined to an alias of itself, useful for employee-to-manager hierarchies. For example, to list every employee with their department name including employees not assigned to a department: SELECT e.name, d.dept_name FROM employees e LEFT JOIN departments d ON e.dept_id = d.dept_id. A common interview trap is that moving a right-table filter from the ON clause into the WHERE clause silently converts a LEFT JOIN into an INNER JOIN, because NULL fails the predicate.
Q: What is the difference between a semaphore and a mutex?
A mutex is a locking mechanism enforcing mutual exclusion over a critical section: it is binary, and it has ownership, meaning the thread that locks it must be the thread that unlocks it, which allows the OS to apply priority inheritance and to detect some deadlocks. A semaphore is a signalling mechanism holding an integer count, with wait decrementing and blocking at zero, and signal incrementing and waking a waiter; any thread can signal it, so there is no ownership. A counting semaphore initialised to N lets up to N threads into a resource pool, such as N database connections. A binary semaphore initialised to 1 resembles a mutex but is not one, precisely because of the missing ownership. The canonical use of a semaphore rather than a mutex is the producer-consumer problem, where an empty-slots semaphore and a full-slots semaphore coordinate the two sides while a separate mutex protects the buffer itself.
Q: In HTML, what is the difference between block-level and inline elements, and what are semantic tags?
A block-level element such as div, p, h1, section, or ul starts on a new line, takes the full available width by default, and honours width, height, and vertical margin and padding. An inline element such as span, a, strong, or img flows within a line of text, is only as wide as its content, and ignores width, height, and vertical margins, though horizontal padding still applies. The display property can switch either, and inline-block gives you inline flow with box dimensions. Semantic tags are elements whose name describes the meaning of their content rather than its appearance: header, nav, main, article, aside, section, figure, and footer. They matter because screen readers use them to build a navigable document outline, and search engines use them to interpret page structure, whereas a page built entirely from div elements conveys no such information.
Q: What is the difference between a primary key and a foreign key, and what is normalisation?
A primary key uniquely identifies each row in a table; it cannot be NULL, there is exactly one per table, and most engines create a clustered index on it automatically. A foreign key is a column or set of columns in one table that references the primary key of another, enforcing referential integrity so you cannot insert an orphan row or delete a parent that still has children unless you specify ON DELETE CASCADE or SET NULL. Foreign keys can be NULL and need not be unique. Normalisation is the process of decomposing tables to eliminate redundancy and update anomalies: First Normal Form requires atomic column values with no repeating groups, Second Normal Form additionally removes partial dependencies of non-key columns on part of a composite key, and Third Normal Form removes transitive dependencies where a non-key column depends on another non-key column. Reporting systems often deliberately denormalise back to reduce join cost.
Frequently asked questions about ADP interviews
Section titled “Frequently asked questions about ADP interviews”What is the ADP interview process for freshers?
ADP’s campus process usually runs 3-4 elimination rounds: a written test (80-90 minutes) covering aptitude, logical reasoning, and technical MCQs on data structures, DBMS, and C output; an HR interview (20-30 minutes) that can come before the technical round on some drives; a technical interview (30-45 minutes) built around your resume, live coding, and SQL; and, in some drives, a managerial round with a senior director covering data structures and OS concepts like semaphores and mutexes. Total timeline is typically 1-2 weeks from test to offer.
What questions are asked in ADP interviews?
ADP interviews commonly cover basic data structures (searching in a rotated sorted array, binary search), OOPs (polymorphism), a live-coding problem such as adding two numbers represented as linked lists, HTML/web basics, DBMS and SQL joins, and OS concepts like semaphore vs mutex in the managerial round. HR questions focus on why you want to join a payroll/HR-tech company, preferred work location, and academic/family background.
How many rounds are there in the ADP interview?
ADP typically runs 3-4 rounds: Written Test (80-90 min), HR Interview (20-30 min), Technical Interview (30-45 min), and sometimes a Managerial Round (45-60 min) with a senior leader. Unusually for a product company, HR can be scheduled before the technical round rather than after - the order varies by campus and batch.
How should I prepare for ADP interviews?
Revise data structures fundamentals (especially binary search and rotated-array variants), OOPs concepts like polymorphism, basic HTML, SQL joins and queries, and OS concepts like semaphores vs mutexes for the managerial round. Prepare one detailed project narrative you can defend under follow-up questions, and be ready to explain why you’re interested in HR technology and payroll software specifically.
Why does ADP’s managerial round go so deep on data structures?
Multiple candidate reports describe ADP’s managerial round as director-led and unusually technical for a “managerial” stage - covering binary search, rotated sorted array search, and semaphore vs mutex alongside behavioural questions. Treat it as a second technical round in disguise rather than a purely soft-skills conversation, and keep your DSA and OS fundamentals sharp going in.
What is ADP’s fresher salary and eligibility?
From student reports, ADP’s fresher CTC has been in the roughly ₹6-11 LPA range, though this varies by role, campus, and year. Believe your written offer letter over any figure you read online.

