airtel · Software Engineer
Updated · 2026-10-02

airtel Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Candidates describe airtel as a telecommunications and digital services provider, with engineering work spread across units such as Airtel Digital, Airtel X Labs and Airtel Payments Bank, and consumer products including Wynk Music and Airtel Xstream. Candidates describe software engineers building backend microservices, real-time event pipelines, and web and mobile apps. The work they mention includes subscriber management, billing, payment gateways and network routing automation. The stack named for the role is Java with Spring Boot on the backend, Kafka for event streaming, Redis for caching, MySQL, PostgreSQL and MongoDB for storage, React on the web, and Kotlin or Swift on mobile.

This guide is for candidates interviewing for Software Engineer roles at airtel. Candidates mention levels from SDE-1 through SDE-2 and SDE-4. It covers the online assessment, the technical interviews, the low-level and high-level design stage, the techno-managerial discussion and the HR session. Backend candidates should concentrate on DSA, Core Java and concurrency, SQL, computer networks, operating systems and design. Candidates applying to web or mobile teams should also work through the React, JavaScript, Android and SwiftUI questions, which are reported for those specialisations. Every reported question has its own approach and possible follow-ups below.

Candidates report five stages: an Online Technical Assessment, Technical Interview Rounds, Design Evaluations, a Techno-Managerial Discussion and an HR Session. Reported timelines range from one to three weeks up to roughly four to six weeks, and weekend hiring drives can fit the technical rounds into a single day.

Data Structures & Algorithms (DSA)Java (Core Java / OOP)Computer Networks (CN)

53 min read

Browse Software Engineer questions

See the practice prompts

32Practice promptsAcross five skill areas

The day-to-day work candidates describe is backend services in Java and Spring Boot, with Kafka pipelines, Redis caches and relational databases behind them, plus React, Kotlin and Swift for teams that ship user-facing apps. The reported topic breakdown puts Data Structures & Algorithms first, followed by Core Java and OOP, Computer Networks, OOP concepts and general problem solving. For most backend candidates that means three areas: algorithm fluency, Java runtime internals you can explain mechanically, and enough networking to map protocols to layers and walk through a TLS handshake.

The 26 reported questions fall into five groups. Six are algorithm problems: level-order traversal, Dutch National Flag, maximum path sum in a binary tree, sorting a linked list, moving zeros, and permutations. Five are Core Java: HashMap internals, static versus dynamic polymorphism, garbage collection and G1GC, synchronized and volatile, and SOAP versus REST. Five are design: an LRU cache, a railway booking LLD in the style of IRCTC, a Wynk-like music streaming service, a web crawler, and background audio playback in a mobile app. Five cover networks and OS: OSI layers, HTTPS and TLS, hubs, switches and routers, processes versus threads, and IP addressing with NAT, BGP and OSPF. The last five are frontend and mobile questions for web or mobile specialisations.

Your level changes what to prepare. Candidates report that SDE-1 candidates are assessed mainly on DSA, core CS and low-level object-oriented design, and that high-level distributed design comes in from SDE-2 upward. The online assessment is described for entry and intermediate roles and includes quantitative aptitude along with coding, so fresh graduates should practise aptitude problems as well as code.

Candidates also report technical deep dives built around the projects and technologies on their resume, and several smaller reported prompts point at backend fundamentals: finding duplicate customer records with GROUP BY and HAVING, putting Redis caching in front of a Spring Boot service, SQL joins and transaction isolation levels. Prepare a two-minute career overview, and be ready to defend every framework on your resume down to how it behaves at runtime.

01

Online Technical Assessment

reported

Candidates describe the Online Technical Assessment as the first screen, reported mainly for entry-level and intermediate roles. Candidates report that it tests three things under timed conditions: quantitative aptitude, computer science fundamentals and hands-on coding. Little more is reported about its content, so prepare each part separately. For aptitude, build speed on the common problem types. For fundamentals, a sensible general review covers OS, networking, DBMS and OOP basics, since the reported technical questions draw on several of those areas. For coding, get a correct solution submitted before polishing it, and test it on empty input, single elements and duplicates before you submit.

What to demonstrate

  • Coding proficiency under timed conditions
  • Quantitative aptitude
  • Computer science fundamentals

How to prepare

  • Solve the Dutch National Flag and move-zeros problems from memory in your chosen language, each in one pass with O(1) extra space
  • Do timed sets of aptitude problems (percentages, ratios, time and work, probability) until the common types feel routine
  • As general review, write one-line definitions for OS, networking and DBMS terms: deadlock conditions, paging, OSI layers, normal forms, ACID
  • Practise level-order traversal and linked-list sorting until both compile and pass edge cases on the first run
airtel Software Engineer candidate reports ↗
02

Technical Interview Rounds

reported

Candidates report that the Technical Interview Rounds cover algorithmic problem solving, core language fundamentals and the architecture of past projects. Reported tips say interviewers build deep dives around the technologies and patterns listed on your resume. Candidates can usually code in their preferred language, but Java is described as heavily used in airtel's backend systems, so backend candidates who choose Java should be ready for follow-ups on its runtime. Say your approach and its complexity out loud before you write code. Then write it cleanly and trace it on a small example. For the project part, prepare one system you built in enough detail to draw its components, its data flow and the bottleneck you fixed.

What to demonstrate

  • Working, complexity-aware code for tree, array, linked-list and recursion problems
  • Depth in core language mechanics, especially Java collections, the JVM and concurrency
  • Ability to explain the architecture and trade-offs of projects on your resume

How to prepare

  • Rehearse the maximum path sum, linked-list merge sort and permutations problems aloud, stating time and space complexity for each
  • Write a one-page explanation of Java 8 HashMap (hashing, resize, treeify thresholds) and of synchronized versus volatile, then explain each without notes
  • Pick two resume projects and write a component diagram, the data stores used, and one latency or reliability improvement with a number attached
  • Review SQL joins, GROUP BY with HAVING, isolation levels, and Spring Boot basics: dependency injection, @Transactional proxies and @Cacheable backed by Redis
airtel Software Engineer candidate reports ↗
03

Design Evaluations

reported

Candidates report Design Evaluations covering both low-level and high-level design, aimed at senior engineering levels. SDE-1 candidates report a focus on low-level object-oriented design, while SDE-2 and above get high-level distributed design. The reported design questions are the ones to practise for this stage: an LRU cache, a railway booking system LLD with seat locking, a music streaming service, a web crawler, and a mobile app with background audio. Reported tips recommend clarifying non-functional requirements (latency, throughput, availability) before drawing data models, and explaining single points of failure, consistency and cache invalidation for any distributed component you add. For LLD, name the classes, their relationships and the concurrency control. For HLD, size the read and write paths and say where Kafka or Redis fits and why.

What to demonstrate

  • Low-level object-oriented design: entities, interfaces, design patterns and concurrency handling
  • High-level design: service decomposition, caching, messaging, data partitioning and failure handling
  • Clarifying requirements before committing to a design

How to prepare

  • Write the IRCTC-style booking LLD as class definitions, including how two users trying to book the same seat are resolved
  • Code an LRU cache with a HashMap and a doubly linked list, then explain the LinkedHashMap shortcut and how you would make it thread-safe
  • Sketch the streaming service and the web crawler end to end, marking every single point of failure, how each recovers, and where Kafka partitions and consumer groups fit
  • Review Factory, Singleton, Strategy and Observer with one concrete use of each inside these designs
airtel Software Engineer candidate reports ↗
04

Techno-Managerial Discussion

reported

Candidates describe the Techno-Managerial Discussion as covering both the technical and the managerial sides of the role. Little more is reported about its format, so prepare for a mix of a technical walk-through of your work and questions about how you operate on a team. The reported preparation tips point at owning services, collaborating, and showing the business effect of engineering decisions such as lower latency or better reliability. Bring two or three stories with measurable outcomes, and be ready to go back into technical detail on any of them.

What to demonstrate

  • The technical and managerial sides of the role, which candidates report the discussion covers
  • Ownership of past systems, which the reported preparation tips stress
  • Collaboration and the business impact of engineering work, also named in the reported tips

How to prepare

  • Write three STAR stories: a latency or reliability improvement, a production incident you handled, and a disagreement about a technical decision
  • Attach a number to each story (latency drop, error rate, users affected, time to recover)
  • Prepare a short explanation of why you chose the stack in your main project and what you would change now
airtel Software Engineer candidate reports ↗
05

HR Session

reported

Candidates describe the HR Session as the final stage, covering the offer and company culture. Candidates also say the work setup varies by team and location; the hubs they name are Gurgaon, Noida and Bengaluru, and the arrangement reported there is hybrid. Settle your location preference, notice period and level expectations before this conversation, and have a few questions ready about the team and product area you would join.

What to demonstrate

  • The offer, which candidates report is discussed here
  • Company culture, which candidates report the session covers

How to prepare

  • Decide your preferred location among the reported hubs and how much hybrid flexibility you need
  • Prepare questions about the team, whether it sits in a unit like Airtel Digital, Airtel X Labs or Airtel Payments Bank, and its on-call expectations
  • Have a clear answer on notice period, joining date and the level you are targeting
airtel Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Advancing the middle pointer after swapping with the high end in the Dutch National Flag problem, or losing track of what each pointer guarantees.

Before coding any partition problem, write the invariants as comments: what is known to be left of low, between low and mid, and right of high. Then trace [2,0,1] and [2,2,0,0] by hand. The same discipline fixes the move-zeros write index and the slow and fast pointers in linked-list merge sort.

02

Describing Java HashMap as 'an array of linked lists' and stopping there, or confusing it with ConcurrentHashMap.

Java runtime knowledge is reported as heavily tested, so learn the mechanics with their numbers: power-of-two table, hash spreading, 0.75 load factor, doubling with the lo and hi split, treeify once a bin grows past 8 nodes when capacity is at least 64, untreeify at 6, and the Comparable-key caveat on O(log n). Prepare the same depth for G1 regions and pause targets, and for the visibility versus atomicity distinction between volatile and synchronized.

03

Drawing Kafka, Redis and a load balancer in the streaming or crawler design without saying what happens when each one fails or goes stale.

Reported tips warn against adding distributed components without covering single points of failure, consistency and cache invalidation. For each box you add, state its failure mode, what the user sees, and how it recovers. In the railway booking LLD, have an exact answer for two users holding the same seat: a conditional update or version check, a hold expiry, and an idempotent confirm.

04

Listing frameworks and projects on the resume that you cannot explain beneath the surface.

Candidates report deep dives built around whatever their resume cites. For every technology listed (Spring Boot, Kafka, Redis, React), prepare how you used it, one configuration decision you made, and one problem it caused. Remove anything you could not discuss for ten minutes.

05

Preparing only DSA and skipping networking and OS, then stumbling over OSI mapping, the TLS handshake or NAT.

Computer Networks appears in the reported topic breakdown, and five reported questions cover networks and OS. Spend a full study day on them: map protocols to layers, walk a TLS 1.2 handshake message by message and the TLS 1.3 change, subnet a /24 by hand, and explain a context switch and IPC options. These questions are short, so a vague answer stands out.

Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.

29 technical prompts0 include a worked solution

Write an efficient algorithm to traverse a binary tree in level order and print nodes level by level.

medium
Data Structures & Algorithms

Write an efficient algorithm to traverse a binary tree in level order and print nodes level by level.

Approach
  1. Use BFS with a queue. Start with the root (return nothing if it is null). At each iteration, read the current queue size k, then poll exactly k nodes and print or collect them. That snapshot of the queue size is what separates one level from the next.
  2. Enqueue left then right children of each polled node, skipping nulls. Each node is enqueued and dequeued once, so time is O(n) and space is O(w), where w is the maximum width (up to about n/2 for a complete tree).
  3. Alternatives worth naming: two queues swapped per level, a null sentinel marking the end of each level, or DFS that carries depth and appends into result[depth]. The DFS version uses O(h) stack and gives the same output.
  4. Edge cases: empty tree, a single node, and a fully skewed tree, where each level has one node and the queue never holds more than two.
Follow-up
  • Print the levels in zigzag order, alternating direction each level.
  • Return the right-side view or the bottom view of the tree.
  • Return the average value of each level, and say what overflow risk the sum has.

Given an array containing 0s, 1s, and 2s, sort the array in linear time using constant space (Dutch National F

medium
Data Structures & Algorithms

Given an array containing 0s, 1s, and 2s, sort the array in linear time using constant space (Dutch National Flag problem).

Approach
  1. Use three pointers: low = 0, mid = 0, high = n-1. Invariants: a[0..low) are 0s, a[low..mid) are 1s, a(high..n-1] are 2s, and a[mid..high] is unprocessed.
  2. While mid <= high: if a[mid] == 0, swap with a[low] and increment low and mid. If a[mid] == 1, increment mid. If a[mid] == 2, swap with a[high] and decrement high only, because the element swapped in from high has not been examined yet.
  3. One pass, O(n) time, O(1) space. A two-pass counting sort (count 0s, 1s, 2s, then overwrite) is also O(n) and O(1). Mention it, but the one-pass partition is what the question asks for.
  4. Test on empty, all one value, [2,0,1], [2,2,0,0] and [1,0]. The classic bug is advancing mid after swapping with high.
Follow-up
  • Is this sort stable, and does that matter for plain integers?
  • How does this three-way partition help quicksort on inputs with many duplicate keys?
  • Generalise to k distinct values: what does it cost in passes or space?

Implement a function to find the maximum path sum in a binary tree.

medium
Data Structures & Algorithms

Implement a function to find the maximum path sum in a binary tree.

Approach
  1. Do a post-order DFS that returns the best downward gain from a node: gain(node) = node.val + max(0, gain(left), gain(right)). Clamping a child's gain at 0 means a negative branch gets dropped.
  2. At each node, update a global best with node.val + max(0, gainLeft) + max(0, gainRight). That is the best path bending through this node. The return value can only extend one side, because a path cannot fork.
  3. Initialise best to the smallest integer (or the root's value), not 0, so a tree of all negative values returns its largest single node.
  4. O(n) time, O(h) recursion stack. A skewed tree with a very large n can overflow the Java stack, so mention an iterative post-order with an explicit stack as the fix.
Follow-up
  • Return the nodes on the best path, not just the sum.
  • Restrict paths to root-to-leaf: what changes in the recursion?
  • What if node values can be large enough to overflow an int?

Given a unsorted singly linked list, write a function to sort it efficiently.

medium
Data Structures & Algorithms

Given a unsorted singly linked list, write a function to sort it efficiently.

Approach
  1. Use merge sort, because linked lists allow O(1) splitting and merging but no random access. Find the middle with slow and fast pointers, starting fast at head.next so a two-node list splits into one and one, then cut the list at slow.next.
  2. Merge the two sorted halves with a dummy head node, linking the smaller node each time and appending the remainder. Using <= keeps the merge stable.
  3. Top-down recursion is O(n log n) time with O(log n) stack. A bottom-up merge sort, merging runs of size 1, 2, 4 and so on, gets O(1) extra space.
  4. Quicksort is a weaker fit: no random pivot access and degenerate behaviour on sorted input. Copying into an array, sorting and relinking works but costs O(n) memory. Edge cases: empty list, one node, all duplicates, already sorted.
Follow-up
  • Write the bottom-up version with constant extra space.
  • Merge k sorted linked lists: compare a min-heap approach with pairwise merging.
  • How would you sort a doubly linked list, and does anything get easier?

Solve the problem of moving all zeros to the end of an array while maintaining the relative order of non-zero

medium
Data Structures & Algorithms

Solve the problem of moving all zeros to the end of an array while maintaining the relative order of non-zero elements.

Approach
  1. Keep a write index w = 0. Scan with i; whenever a[i] != 0, swap a[i] with a[w] and increment w. The non-zero elements keep their relative order, and the zeros collect behind w.
  2. An equivalent two-phase version copies non-zeros forward to a[w++], then fills a[w..n-1] with zeros. Both are O(n) time and O(1) space.
  3. The swap version writes nothing on a prefix with no zeros if you only swap when i != w. Mention this if the follow-up is about minimising writes.
  4. Edge cases: no zeros, all zeros, a single element, and zeros already at the end.
Follow-up
  • Minimise the number of array writes.
  • Move zeros to the front instead, keeping order.
  • Do the same for a singly linked list, or for any value matching a predicate.

Generate all permutations of a given string or array and analyze the time complexity.

medium
Data Structures & Algorithms

Generate all permutations of a given string or array and analyze the time complexity.

Approach
  1. Backtrack with a used[] array and a current path. At depth d, try every unused element, mark it, recurse, then unmark. When the path length reaches n, record a copy.
  2. Alternatively, permute in place by swapping a[d] with each a[i] for i >= d, recursing on d+1, and swapping back. This needs no extra path array.
  3. Complexity: there are n! permutations, and copying each costs O(n), so O(n * n!) time. Recursion depth is O(n). The output size forces this bound, so say so rather than claiming something faster.
  4. Duplicates: sort first and skip a[i] when a[i] == a[i-1] and a[i-1] is unused. In the swap method, keep a per-level set of values already placed at position d. For a string, mention that string concatenation in Java creates new objects, so use a char array or StringBuilder.
Follow-up
  • Generate only unique permutations when the input has duplicates.
  • Find the k-th permutation in lexicographic order without generating the others.
  • Implement next-permutation iteratively and give its complexity.

How does Garbage Collection function in Java, and why would an enterprise application choose the G1GC collecto

medium
Core Java & Object-Oriented Programming

How does Garbage Collection function in Java, and why would an enterprise application choose the G1GC collector?

Approach
  1. GC reclaims objects that are unreachable from GC roots: thread stacks and local variables, static fields, JNI references. Reachability, not reference counting, is the criterion, which is why cycles are collected.
  2. Generational design: most objects die young. New objects go to Eden. Minor GCs copy survivors between survivor spaces and promote long-lived objects to the old generation, which is collected less often with mark, sweep and compact phases.
  3. G1 divides the heap into equal-sized regions, marks concurrently, and collects the regions with the most garbage first, within a pause-time target set by -XX:MaxGCPauseMillis. It runs young and mixed collections and treats very large objects as humongous regions. It has been the default collector since Java 9.
  4. Why an enterprise service picks it: large heaps with predictable, bounded pauses for latency-sensitive APIs, as opposed to Parallel GC, which maximises throughput but has longer stop-the-world pauses. For sub-millisecond pauses, ZGC and Shenandoah are the next step. Diagnose with GC logs (-Xlog:gc*) and heap dumps.
Follow-up
  • Can a Java program leak memory? Give a concrete example.
  • What triggers a Full GC under G1, and how would you prevent it?
  • Why do teams often set -Xms equal to -Xmx in production?

Explain the concept of thread synchronization, the synchronized keyword, and volatile variables in concurrent

medium
Core Java & Object-Oriented Programming

Explain the concept of thread synchronization, the synchronized keyword, and volatile variables in concurrent multi-threaded applications.

Approach
  1. Start with the problem: a race condition happens when threads read-modify-write shared state without coordination, as with count++. The critical section must be mutually exclusive, and its writes must become visible to other threads.
  2. synchronized acquires the object's monitor: this for instance methods, the Class object for static methods. It is reentrant. Releasing a monitor happens-before every later acquire of the same monitor, so it gives both atomicity and visibility.
  3. volatile gives visibility and ordering only: a write to a volatile field happens-before later reads of it, and reads are never served from a stale cached value. It does not make count++ atomic, so use AtomicInteger (CAS) or a lock for that.
  4. Mention the practical tools: double-checked locking needs a volatile instance field. wait/notify must be called while holding the monitor. ReentrantLock adds tryLock, timeouts and fairness. Deadlock is avoided by acquiring locks in a consistent global order.
Follow-up
  • Why does a double-checked locking singleton break without volatile?
  • Implement a bounded producer-consumer buffer with wait/notify or a BlockingQueue.
  • When would you choose ReentrantLock over synchronized?

Describe the low-level object-oriented design (LLD) for a railway ticket booking system (e.g., IRCTC), includi

medium
System Design & Architecture

Describe the low-level object-oriented design (LLD) for a railway ticket booking system (e.g., IRCTC), including entity relationships, concurrency handling, and seat locking mechanisms.

Approach
  1. Entities: Train, Station, Route (ordered stops with distances), Coach, Seat, TrainRun (a train on a date), Passenger, Booking (PNR, status, passengers), Payment and Quota. A seat's availability depends on the segment, because one seat can be sold Delhi to Agra and again Agra to Bhopal. Model occupancy per seat as a set or bitmask of route segments.
  2. Booking flow: search availability, then hold seats, then pay, then confirm. Give holds a status machine (AVAILABLE, HELD with an expiry, BOOKED) and release them when payment times out.
  3. Concurrency: prevent double booking with a conditional update (UPDATE seat_segment SET status='HELD' WHERE ... AND status='AVAILABLE', checking the affected row count), optimistic locking with a version column, or SELECT ... FOR UPDATE inside a transaction. With several app servers, use a Redis lock with an expiry and a fencing token, or rely on the database constraint as the final arbiter.
  4. Patterns: Strategy for seat allocation and fare calculation, State for booking status, Observer for SMS and email notifications. Waitlist and RAC sit in a queue per TrainRun and class, and cancellations promote the head of the queue. Make the confirm call idempotent with a client request id.
Follow-up
  • Two users click the last seat at the same moment: walk through exactly what each sees.
  • How does the design hold up when a Tatkal-style window opens and traffic spikes at one instant?
  • How do you guarantee a held seat is released if the payment service never calls back?

Compare processes and threads, explaining how inter-process communication (IPC) and context switching operate

medium
Computer Networks & Operating Systems

Compare processes and threads, explaining how inter-process communication (IPC) and context switching operate at the OS level.

Approach
  1. A process has its own virtual address space, file descriptor table and resources, so a crash stays isolated. Threads within a process share heap, code and open files, but each has its own stack, registers and program counter. Threads are cheaper to create and communicate through shared memory, at the cost of synchronisation bugs.
  2. IPC mechanisms: pipes and named pipes (byte streams), message queues, shared memory plus semaphores (fastest, but you handle synchronisation yourself), memory-mapped files, sockets (which also work across machines) and signals.
  3. Context switch: the kernel saves the running task's registers, program counter and stack pointer into its control block, the scheduler picks the next task, and its state is restored. A process switch also changes page tables, which can flush TLB entries and cool caches. A thread switch within one process skips that, so it is cheaper.
  4. Connect it to Java: platform threads map one-to-one to OS threads, so thousands of blocking threads mean heavy switching and stack memory. That is the motivation for thread pools and for virtual threads in Java 21.
Follow-up
  • What does fork() do, and how does copy-on-write keep it cheap?
  • Name the four conditions for deadlock and one way to break each.
  • Why can adding more threads to a CPU-bound service reduce throughput?

Explain the concept of event looping, asynchronous callbacks, and scope hoisting in JavaScript.

medium
Frontend & Mobile Development

Explain the concept of event looping, asynchronous callbacks, and scope hoisting in JavaScript.

Approach
  1. JavaScript runs on a single call stack. Asynchronous work (timers, network, I/O) is handed to the browser's Web APIs or Node's libuv. When it completes, a callback is queued.
  2. The event loop takes one macrotask (setTimeout, I/O callbacks, UI events), runs it to completion, then drains the entire microtask queue (promise reactions, queueMicrotask, MutationObserver) before rendering or taking the next macrotask. So console.log('a'); setTimeout(()=>log('b')); Promise.resolve().then(()=>log('c')); log('d') prints a, d, c, b.
  3. Hoisting: var declarations are hoisted and initialised to undefined. let, const and class are hoisted but stay in the temporal dead zone until their line runs, so earlier access throws a ReferenceError. Function declarations are hoisted with their body. Function expressions and arrow functions follow the hoisting of their variable.
  4. Tie this to closures: a for loop using var with setTimeout logs the final value n times because there is one shared binding. Using let creates a new binding per iteration and logs 0..n-1. async/await is syntax over promises, and the code after an await runs as a microtask.
Follow-up
  • Predict the output of a snippet mixing setTimeout, promises and async/await.
  • In Node, where do process.nextTick and setImmediate run relative to promises?
  • How would you keep a long CPU-bound loop from freezing the UI?

Describe how to handle multidex support and optimize runtime class loading in large-scale Android applications

medium
Frontend & Mobile Development

Describe how to handle multidex support and optimize runtime class loading in large-scale Android applications.

Approach
  1. Background: one DEX file can reference at most 65,536 methods. Large apps with many libraries exceed this and must split code across several DEX files.
  2. On minSdk 21 and above, ART supports multidex natively: all DEX files are compiled at install time, so enabling multiDexEnabled is enough. Below 21, the support library loads secondary DEX files at startup. That slows cold start and can cause ANRs, and classes needed during startup must be kept in the primary DEX.
  3. Shrink before you split: enable R8 to remove unused code and resources, drop or replace heavy dependencies, and inspect method counts with the APK Analyzer. Add keep rules for classes accessed through reflection, otherwise R8 removes them and they fail at runtime.
  4. For runtime class loading and startup cost, ship Baseline Profiles so hot code is precompiled, defer initialisation with the App Startup library or lazy injection, keep Application.onCreate light, and move rarely used features into dynamic feature modules. Measure cold start with Macrobenchmark before and after.
Follow-up
  • How would you measure and break down cold-start time?
  • A release build crashes with ClassNotFoundException but debug works: what do you check?
  • When are dynamic feature modules worth their extra complexity?

Each day targets one group of the reported questions in the order the loop reports them: online assessment coding first, then technical-round fundamentals and Spring Boot, then design with Kafka, then the managerial and HR conversations. The frontend and mobile questions sit on the last day for candidates applying to those teams.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Online assessment warm-up: array partitioning and aptitude
  • Solve the Dutch National Flag problem and the move-zeros problem in your interview language, writing the pointer invariants as comments first
  • Test both on empty, single-element, all-same and already-sorted inputs, and fix any failure
  • Do a timed set of quantitative aptitude problems (percentages, ratios, time and work) and note which types slow you down
  • As general fundamentals review, write one-line definitions for 15 OS, DBMS and networking terms

Deliverable: Two tested array solutions with their invariants, an aptitude error log, and a one-page fundamentals sheet.

Practice prompt ↗Practice prompt ↗
02Trees and linked lists
  • Write level-order traversal with the queue-size snapshot, then extend it to zigzag order and bottom view
  • Write maximum path sum with a global best and clamped child gains, and test it on a tree of all negative values
  • Write linked-list merge sort with the slow and fast split, then the bottom-up version with constant extra space
  • Say each solution's time and space complexity out loud before running it

Deliverable: Four working tree and list solutions with edge-case tests and a recorded complexity explanation for each.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
03Recursion and the LRU cache
  • Write permutations with backtracking, then the unique-permutations variant for duplicate input, and explain the O(n * n!) bound
  • Implement an LRU cache with a HashMap and a doubly linked list using sentinels, then the LinkedHashMap version
  • Add a thread-safety layer to the LRU cache and explain the contention trade-off
  • Write a GROUP BY and HAVING query that finds duplicate customer records across two tables

Deliverable: Permutation code for both variants, two LRU implementations plus a thread-safe wrapper, and one duplicate-detection SQL query.

Practice prompt ↗Practice prompt ↗
04Core Java, Spring Boot and web services
  • Write a one-page HashMap internals sheet (hash spreading, resize split, treeify past 8 nodes at capacity 64, Comparable caveat) and explain overloading versus overriding with invokevirtual and the method table
  • Outline G1 regions, mixed collections and pause targets, then write a race on count++ and fix it with synchronized and with AtomicInteger
  • Compare SOAP and REST for one partner integration and one mobile API, including idempotency keys on POST
  • Outline an answer to the reported Redis caching with Spring Boot prompt: DI and bean scopes; why @Transactional fails on self-invocation (the call skips the proxy); propagation and isolation; @Cacheable cache-aside on Redis with a TTL, @CacheEvict on update, and stampede protection (sync=true or a lock)

Deliverable: A Java internals sheet, a fixed concurrency example, a SOAP versus REST decision table, and a written Spring Boot and Redis caching outline.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Computer networks and operating systems
  • Draw the OSI stack, map HTTP, TLS, TCP, UDP, IP, Ethernet and ARP onto it, and trace one HTTPS request through it
  • Walk through the TLS 1.2 handshake message by message, including ClientKeyExchange, ChangeCipherSpec and Finished, then list what TLS 1.3 changes
  • Subnet 192.168.10.0/24 into four ranges by hand, and explain NAT translation, OSPF and BGP in three sentences each
  • Compare processes and threads, list five IPC mechanisms, and describe a context switch including the page-table change

Deliverable: An annotated OSI diagram, a handshake walk-through, a subnetting worksheet, and an OS comparison page.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Design evaluations: LLD, HLD and Kafka
  • Write the railway booking LLD as classes and a seat-hold state machine, and resolve the case of two users booking the last seat
  • Sketch the music streaming service (CDN delivery, seeded shuffle, offline licences, cross-device sync) and the web crawler (per-host frontier, Bloom filter dedup, bounded thread pool, host-based sharding)
  • For each design, list every single point of failure and its recovery, and describe background audio playback on Android and iOS
  • Review Kafka for the event pipelines in these designs: partitions and per-key ordering, consumer groups and rebalancing, at-least-once delivery with idempotent consumers, and consumer lag; then work the stalled-partition debugging drill

Deliverable: One LLD class diagram, two HLD diagrams with failure annotations, a mobile playback architecture note, and a one-page Kafka sheet.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Resume deep dive, techno-managerial and HR, plus the web and mobile track
  • Write a two-minute career overview and three STAR stories with numbers: a latency or reliability win, an incident, and a lost design argument
  • For each technology on your resume, write how you used it and one problem it caused
  • If you are applying for web or mobile roles, answer the event loop, React memoisation, timer component, multidex and SwiftUI architecture questions out loud
  • Decide your location preference, notice period and target level, and prepare three questions for the HR session

Deliverable: A recorded career overview, three written STAR stories, a resume technology sheet, spoken track answers where relevant, and an HR checklist.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗

Expand any day for tasks and deliverables. Your progress is saved on this device.

No behavioral prompts are reported word for word for this loop. Candidates report a Techno-Managerial Discussion covering both technical and managerial aspects, and an HR Session about the offer and culture, and the reported tips stress ownership of services, collaboration and business impact. Rehearse stories that carry real technical detail and a measurable result, because the same conversation can switch back to how your system worked.

Narrate an outage you owned from page to postmortem

hard
incident responseblast radiuspostmortems

Pick an incident you personally drove, ideally one where writes were affected rather than reads. In six to eight minutes: state the symptom as it first appeared on a dashboard, the blast radius you established before you knew the cause, the mitigation you applied and when, the mechanism you eventually proved, and the follow-up that would prevent a repeat. Bring numbers: error rate, tenants affected, minutes to mitigate, minutes to resolve. If you cannot name what you measured, choose a different incident.

Approach
  1. Open on the signal rather than the cause: which metric at which percentile moved, on which service, at what time, so the listener follows the same evidence you had rather than a conclusion you already reached.
  2. Separate mitigation from diagnosis out loud. State what you did to stop the bleeding (flag off, shed traffic, drain a lease, roll back a deploy) and say plainly that you did it before the mechanism was known, because those are two jobs with different deadlines.
  3. Establish blast radius in countable terms: how many tenants, how many writes, and crucially whether the effect was loss or only delay. An append-only revision table or a pending outbox row means the change survived and the projection was merely behind, which is a repair rather than a data-loss incident.
  4. Prove the mechanism instead of asserting it. Name the trace span that grew, the plan that flipped to a sequential scan, the lease that expired, plus one alternative you ruled out and the signal that stayed flat while you ruled it out.
Follow-up
  • What would you do differently in the first five minutes, given the same dashboard and no more information?
  • Which follow-up action did you deliberately not take, and why was dropping it the right call?

Unblock an engineer without taking the keyboard

easy
mentoringleasesat-least-once

A teammate has spent two days on a job handler that occasionally writes duplicate rows. They are certain the queue is delivering twice by mistake. You suspect a lease expiring under a slow handler, so the job is running concurrently with itself. Describe how you have unblocked someone in this position: what you asked before offering a hypothesis, what you showed them rather than told them, and what you left them owning. Then say what you would do if their theory turned out to be the right one.

Approach
  1. Ask before diagnosing, and ask for things answerable from data they already have: the attempt count on the job rows that produced duplicates, the handler's observed duration against its lease expiry, and whether the duplicate rows share a natural key that a unique constraint could have caught.
  2. Teach the shape rather than the answer. A lease cannot distinguish a dead worker from a slow one, so a handler that outruns its lease is running twice by design, and deploys deliver the other half by killing handlers mid-run on every rollout. Both of their candidate theories produce identical duplicate rows, which is why the evidence has to come from timings rather than from argument.
  3. Hand over a checklist they execute: a natural key on every write the handler performs so the second copy collides rather than appends, the record of intent written before any external effect, a lease heartbeat while running, and the metric that shows it working.
  4. Keep ownership with them deliberately. Pair on the first write, then step back; if you finish it yourself you have closed one ticket and left the same person stuck on the next redelivery.
Follow-up
  • How would you distinguish a genuine double-delivery from a lease expiry using only the data already stored?
  • Their handler calls an external endpoint before recording that it did. What do you tell them to change first?

Argue against a design, lose, and commit anyway

medium
disagreementservice boundariesdecision records

Describe a design you argued against and lost. State the failure you predicted as a named mechanism, not a feeling about complexity: two services that would need one transaction, a projection with no rebuild path, a write path with no idempotency key. Say what evidence you brought, what the decision maker weighed instead, and what you did after the decision was made: what you instrumented, what you wrote down, and whether the prediction came true. Five minutes.

Approach
  1. State the prediction in falsifiable form up front: the mechanism, the condition that triggers it, and the observable outcome. A prediction that cannot be checked also cannot be credited to you later.
  2. Show the evidence you had at the time and label each piece honestly as measured, analogous, or intuition. Keeping the intuition is fine; disguising it as data is the thing that erodes your standing in the next argument.
  3. Represent the opposing case at full strength, including the constraint you did not control: a fixed date, a team boundary, or the fact that the decision was cheap to reverse and yours was not.
  4. Make disagree-and-commit concrete. Name the artefact you left behind so the prediction could be settled without you: the alert and its threshold, the counter on the dashboard, the decision note that recorded the trade-off and the condition that would revisit it.
Follow-up
  • What threshold on that alert would have proved you right, and did anyone ever look at it?
  • If the same proposal arrived tomorrow with the same deadline, would you argue it the same way?
  • 01

    Give a two-minute overview of your career and technical background, centred on your main projects and your own architectural contribution.

  • 02

    Tell me about a time you reduced latency or improved reliability in a service you owned. What did you measure before and after?

  • 03

    Describe a production incident you handled, from the first alert to the fix that stopped it from happening again.

  • 04

    Tell me about a technical decision you disagreed with. What evidence did you bring, and what did you do once the decision was made?

  • 05

    Describe a time you worked with product, QA or SRE colleagues to ship something under a deadline. What trade-off did you make?

PracHub preparation framework ↗
Which language should I code in during airtel technical interviews?

Candidates report a free choice of language for algorithm problems, with Java, C++ and Python all named. Backend systems at airtel are reported to lean heavily on Java, so a backend candidate who picks Java should be ready for follow-ups on HashMap internals, garbage collection and concurrency. Coding in another language does not remove the reported Core Java questions, so prepare those either way.

airtel Software Engineer candidate reports ↗
Do I need telecom or networking domain knowledge?

Candidates report that roles on digital products such as Wynk, Airtel Digital or Payments Bank focus on engineering fundamentals, DSA and design, while infrastructure and network teams need basic networking (TCP/IP, OSI layers, routing). Computer Networks also appears in the reported topic breakdown for the role in general, so prepare the OSI, TLS, NAT and hub, switch and router questions whatever team you are applying to.

airtel Software Engineer candidate reports ↗
Will I get a system design round as an entry-level candidate?

According to candidate reports, high-level distributed design is reserved for SDE-2 and above. At SDE-1, the reported emphasis is on DSA, core CS and object-oriented LLD. So at SDE-1, prioritise the LRU cache and the railway booking LLD. From SDE-2 upward, add the streaming service and web crawler designs, with failure handling for every component.

airtel Software Engineer candidate reports ↗
How long does the airtel interview process take?

Reports differ. One summary gives about four to six weeks across five stages. Other reports describe one to three weeks from assessment to HR discussion, and weekend hiring drives where the technical rounds finish in a single day. If you are invited to a drive, prepare for back-to-back technical conversations in one sitting.

airtel Software Engineer candidate reports ↗
Where do airtel software engineers work, and is it hybrid?

Candidates say the setup varies by team and by project location. The hubs they name are Gurgaon, Noida and Bengaluru, and the arrangement reported there is hybrid, mixing office days with remote work. Confirm the specific team's arrangement during the HR session.

airtel Software Engineer candidate reports ↗
Which topics should I prioritise?

The reported topic breakdown lists Data Structures & Algorithms, Core Java and OOP, Computer Networks, OOP concepts and problem solving. Backend candidates should also review SQL joins, GROUP BY with HAVING, transaction isolation and Redis caching with Spring Boot, all of which appear in reported prompts. The React, JavaScript, Android and SwiftUI questions are reported for web and mobile specialisations, so study them only if you are applying to those teams.

airtel Software Engineer candidate reports ↗
Sources & methodology 3 sources ↗

No official company page is cited. Rounds and questions come from candidate reports and PracHub editorial material; each source shows the date it was read.