Interview guides · EXL Service
EXL Service Software Engineer Interview Guide
EXL Service Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
As a Software Engineer at EXL Service, you are at the intersection of advanced data analytics, digital operations, and cutting-edge automation. You will contribute to high-impact solutions that enable our clients to optimize business outcomes through technology. Your work directly influences how data is processed, analyzed, and transformed into actionable intelligence, serving as the backbone for the digital transformation projects we deliver globally. This role requires more than just coding proficiency; it demands a deep understanding of the business context in which your software operates. Whether you are building robust data pipelines, architecting cloud-native applications, or integrating AI/ML models into existing business workflows, you will be solving complex, real-world challenges.
This guide is scoped to a Software Engineer candidate at EXL Service.
Focus areas
- Power BI
- Python
- Power Query
The EXL Service interview process
EXL Service candidates report 3 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.
Initial Screening
The process begins with a screening to assess basic qualifications and fit.
What to demonstrate
- The process begins with a screening to assess basic qualifications and fit
- Depth in Power BI
How to prepare
- Be able to walk your CV end to end in two minutes, and say why this company specifically.
- Have your salary expectations, notice period and location constraints ready, and ask for the rest of the loop in writing.
Technical Assessments
Candidates undergo deep-dive technical assessments to evaluate their coding and architectural skills.
What to demonstrate
- Candidates undergo deep-dive technical assessments to evaluate their coding and architectural skills
- Depth in Power BI
How to prepare
- Answer aloud and timed: How do you handle asynchronous processing in a high-volume environment?
- Answer aloud and timed: Describe your approach to testing an end-to-end data pipeline.
Managerial Discussions
Final discussions often involve managerial or client-facing interactions to assess cultural alignment.
What to demonstrate
- Final discussions often involve managerial or client-facing interactions to assess cultural alignment
- Depth in Power BI
How to prepare
- Answer aloud and timed: What are the key considerations when moving from on-premise physical servers to cloud infrastructure?
- Answer aloud and timed: How would you design a scalable REST API to handle high concurrent traffic?
Where candidates lose points
Show your work
When solving a problem, verbalize your thought process. We are often more interested in how you arrive at a solution than the solution itself.
Prepare for scenarios
Be ready to discuss a time you faced a technical roadblock and how you resolved it. Use the STAR method (Situation, Task, Action, Result) to keep your answers structured.
Understand the "Why
Don't just know how to use a technology; understand the trade-offs. Why choose a NoSQL database over a relational one? Why use a specific API gateway?
Stay current
Given our focus on GenAI and automation, showing an interest in how these technologies are changing the industry will set you apart from other candidates.
Questions & practice
Can you explain the difference between a process, a thread, and a kernel?
Medium · Technical & Domain Proficiency
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
Write a function to solve [specific logic] using Python.
Medium · Coding & Problem Solving
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Explain the logic behind a specific puzzle or brain-teaser provided by the interviewer.
Medium · Coding & Problem Solving
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
How do you optimize a SQL query for large datasets, and when should you use indexing?
Medium · Technical & Domain Proficiency
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Given a dataset, how would you approach cleaning and transforming it using M Query or Power Query?
Medium · Coding & Problem Solving
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Describe your approach to testing an end-to-end data pipeline.
Medium · Technical & Domain Proficiency
Approach
- Clarify what is being asked and what a complete answer contains.
- State your assumptions explicitly before working the problem.
- Say what you would check first and why it is the highest-information step.
- Work from the requirement backwards to the design.
Follow-up
- What assumption would you test first?
- How would you know your answer was wrong?
What are the key considerations when moving from on-premise physical servers to cloud infrastructure?
Medium · Technical & Domain Proficiency
Approach
- Clarify what is being asked and what a complete answer contains.
- State your assumptions explicitly before working the problem.
- Say what you would check first and why it is the highest-information step.
- Work from the requirement backwards to the design.
Follow-up
- What assumption would you test first?
- How would you know your answer was wrong?
How would you design a scalable REST API to handle high concurrent traffic?
Medium · System Design & Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Explain the architecture of a RAG (Retrieval-Augmented Generation) system.
Medium · System Design & Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
How do you ensure data consistency in a distributed system?
Medium · System Design & Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Walk me through your process for documenting and presenting a cloud architecture.
Medium · System Design & Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Read latency spikes on a sixty-second sawtooth
Medium · cache stampede · single-flight · ttl
The cached listing read path serves about 14k reads/second at an 85% hit rate. p99 sits at 35 ms for 57 seconds, jumps to 900 ms for 3, and repeats. During each spike the primary shows several hundred identical listing queries starting within the same millisecond, all carrying one large tenant's id. Cache entries use a 60-second TTL. Give the mechanism, the ordered checks, the fix, and the correctness hazard your fix must not introduce.
Approach
- Match the period to a configured number before theorising about load. A spike every 60 seconds against a 60-second TTL is an entry expiring, and you confirm it by correlating spike timestamps with the entry's write time rather than with the traffic curve. If the period had matched a cron or a GC interval instead, this is a different investigation.
- Establish the concurrency of the miss. Several hundred identical queries in one millisecond means the miss path has no coalescing: every request that arrives between expiry and repopulation recomputes. The herd size is that key's arrival rate times its recompute time, so at 1.2k reads/second for the hot key and a 250 ms recompute you expect about 300 concurrent misses, which matches what is observed.
- Add single-flight on the miss path so one caller per key recomputes under a short-lived lock while the rest wait for its result. Prefer stale-while-revalidate where the read tolerates it: return the expired value immediately and refresh asynchronously, which removes the latency spike rather than serialising it into a queue of waiters.
- De-synchronise the keys. Write TTLs with jitter, for example 60 seconds plus or minus 10%, so a deploy or a mass invalidation does not align every key on the same second and turn a per-key herd into a fleet-wide one.
Follow-up
- The same sawtooth appears on a key that is invalidated on write rather than expired. Is that the same bug?
- How does your answer change if the recompute takes 4 seconds instead of 250 ms?
Suggested practice checklist
Built from the rounds and topics EXL Service candidates report.
Day 1 — Map the EXL Service loop
- Write out the reported sequence: Initial Screening, Technical Assessments, Managerial Discussions.
- For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.
Deliverable: A one-page map of the 3 reported rounds, with the weakest marked.
Day 2 — Work Power BI
- Spend the session on Power BI, which EXL Service candidates report being tested on.
- Write one worked example in Power BI and time yourself on it.
Deliverable: One timed worked example in Power BI.
Day 3 — Work Python
- Spend the session on Python, which EXL Service candidates report being tested on.
- Write one worked example in Python and time yourself on it.
Deliverable: One timed worked example in Python.
Day 4 — Work Power Query
- Spend the session on Power Query, which EXL Service candidates report being tested on.
- Write one worked example in Power Query and time yourself on it.
Deliverable: One timed worked example in Power Query.
Day 5 — Answer out loud: Technical & Domain Proficiency
- Answer aloud, timed: How do you optimize a SQL query for large datasets, and when should you use indexing?
- Answer aloud, timed: Can you explain the difference between a process, a thread, and a kernel?
Deliverable: Spoken answers to 2 reported Technical & Domain Proficiency question(s), under time.
Day 6 — Answer out loud: System Design & Architecture
- Answer aloud, timed: How would you design a scalable REST API to handle high concurrent traffic?
- Answer aloud, timed: Explain the architecture of a RAG (Retrieval-Augmented Generation) system.
Deliverable: Spoken answers to 2 reported System Design & Architecture question(s), under time.
Day 7 — Answer out loud: Coding & Problem Solving
- Answer aloud, timed: Write a function to solve [specific logic] using Python.
- Answer aloud, timed: How do you handle error logging and debugging in a production environment?
Deliverable: Spoken answers to 2 reported Coding & Problem Solving question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
How do you handle asynchronous processing in a high-volume environment?
Medium · Technical & Domain Proficiency
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
How do you handle error logging and debugging in a production environment?
Medium · Coding & Problem Solving
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Reverse your own decision and price the reversal
Medium · reversibility · measurement · migrations
Describe a technical decision you made and later reversed. Pick one that cost something: a service you split and merged back, a cache you added and removed, an index you created that pushed the planner onto a worse plan, a projection you rebuilt from scratch. State what you believed when you decided, the measurement that changed your mind, how long the wrong version ran in production, and what the reversal cost in migrations, dual writes, and a deprecation window for callers you did not own.
Approach
- State the original rationale without irony, in the version you would still defend given what was known then. If it is not defensible, the story is about carelessness rather than judgement, and a different example serves you better.
- Give the measurement that moved with a before and after: the p99 that did not improve, the cache hit rate that sat at 40%, the plan that flipped to a sequential scan once the table passed a size you can name.
- Cost the reversal in steps, not adjectives: expand-and-contract deploys, the dual-write window, the callers who had to be notified, the rows already written in the wrong shape that had to be backfilled or abandoned.
- Distinguish reversal from rewrite by naming what you kept. Most good reversals preserve the schema or the interface and undo one decision inside it, which is also why they were affordable.
Follow-up
- What in that decision was irreversible, and did you know it was irreversible when you made it?
- How did you tell the people who had already built on top of the original decision?