cswork / libraryOpen practice workspace

Interview guides · Xebia

Xebia Software Engineer Interview Guide

Xebia Software Engineer interview guide: reported rounds, questions and how candidates describe the process.

The 60-second brief

At Xebia, a Software Engineer does not simply write code in isolation; you operate as a highly skilled technical consultant and delivery expert. As a digital transformation partner to some of the world's most prestigious brands, Xebia expects its engineers to bridge the gap between complex software architecture and real-world business value. You will be responsible for designing, developing, and deploying robust, scalable, and cloud-native applications that directly impact client operations, user experiences, and strategic business goals. The impact of this position is substantial, as you will frequently work on high-stakes modernization projects, cloud migrations, and microservices-based architectures. You will find yourself embedded in diverse teams, collaborating closely with client stakeholders, product managers, and fellow consultants.

This guide is scoped to a Software Engineer candidate at Xebia.

Focus areas

  • Java
  • Java 8+ (language features)
  • Spring Boot

The Xebia interview process

Xebia candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.

HR Screening

Initial screening to align on your background, career goals, and compensation expectations.

What to demonstrate

  • Initial screening to align on your background, career goals, and compensation expectations
  • Depth in Java

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 Evaluation

Rigorous technical assessments, including an online assessment or a take-home coding assignment.

What to demonstrate

  • Rigorous technical assessments
  • Including an online assessment or a take-home coding assignment

How to prepare

  • Answer aloud and timed: Describe the lifecycle of a bean in Spring Boot and how dependency injection is managed under the hood.
  • Answer aloud and timed: How do you handle database transactions in Spring Boot, and what is the significance of the @Transactional annotation?

In-Depth Technical Discussions

Focus on live coding, system design, and previous project experiences.

What to demonstrate

  • Focus on live coding, system design, and previous project experiences
  • Depth in Java

How to prepare

  • Answer aloud and timed: Explain how you would optimize a slow-performing REST API that interacts with a relational database.
  • Answer aloud and timed: Write a program to find the second largest element in an array and discuss its time and space complexity.

Client Round

Evaluation by the client's engineering leadership to assess technical skills and communication style.

What to demonstrate

  • Evaluation by the client's engineering leadership to assess technical skills and communication style
  • Depth in Java

How to prepare

  • Answer aloud and timed: How would you implement a custom queue using stacks, and what are the performance trade-offs?
  • Answer aloud and timed: Write an SQL query to find the second highest salary from an employee table, utilizing subqueries or analytical functions.

Where candidates lose points

Confirm Client-Specific Cloud Requirements

Because Xebia aligns engineers with specific client projects, certain cloud platforms (such as AWS, Azure, or GCP) might be hard requirements for the client team, even if the internal Xebia interviewers did not emphasize them. Ask your recruiter early on if there are specific cloud services or DevOps tools vital to the target client.

Be Prepared for Live Code Reviews

If your process includes a take-home coding assignment, do not expect to just submit it and move on. You will likely have a session where you must open the code in an IDE, walk the interviewer through your logic, explain your architectural choices, and discuss how you would refactor it for better performance.

Maintain Professionalism and Composure

Some candidates have reported encountering intense or highly challenging technical questioning. Approach these moments as collaborative problem-solving sessions rather than adversarial tests. Stay calm, explain your logical progression clearly, and avoid becoming defensive if your approach is questioned.

Questions & practice

Write a program to find the second largest element in an array and discuss its time and space complexity.

Medium · Data Structures, Algorithms, & SQL

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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 would you implement a custom queue using stacks, and what are the performance trade-offs?

Medium · Data Structures, Algorithms, & SQL

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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?

Given a string, write an efficient algorithm to check if it contains any duplicate characters.

Medium · Data Structures, Algorithms, & SQL

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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?

Write an SQL query to find the second highest salary from an employee table, utilizing subqueries or analytica

Medium · Data Structures, Algorithms, & SQL

Write an SQL query to find the second highest salary from an employee table, utilizing subqueries or analytical functions.

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. 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?

Explain the difference between an inner join, a left join, and a full outer join, and describe how indexes aff

Medium · Data Structures, Algorithms, & SQL

Explain the difference between an inner join, a left join, and a full outer join, and describe how indexes affect query performance.

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. 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?

Explain the differences between different collection types in Java and when you would choose a LinkedHashMap o

Medium · Java, Spring Boot, & Backend Frameworks

Explain the differences between different collection types in Java and when you would choose a LinkedHashMap over a standard HashMap.

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. 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 do you configure and secure a microservices application using Spring Security and Spring MVC?

Medium · Java, Spring Boot, & Backend Frameworks

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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?

Describe the lifecycle of a bean in Spring Boot and how dependency injection is managed under the hood.

Medium · Java, Spring Boot, & Backend Frameworks

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

Explain how you would optimize a slow-performing REST API that interacts with a relational database.

Medium · Java, Spring Boot, & Backend Frameworks

Approach

  1. Say who the caller is and what they do when the call fails halfway.
  2. Define the identity of a request so a retry cannot double-apply it.
  3. Separate accepted, pending, failed and confirmed; they are different facts.
  4. Design the error taxonomy before the success shape; callers branch on it.

Follow-up

  • What happens if the caller retries after a timeout?
  • How does a client discover it is on an old version of this contract?

How would you design a microservices-based system to monitor a website's uptime and downtime in real time?

Medium · System Design & Cloud Architecture

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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 how you would implement event-driven communication between microservices using Apache Kafka.

Medium · System Design & Cloud Architecture

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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?

What are the core components of a secure cloud environment, and how do you configure AWS EC2, S3, and VPC netw

Medium · System Design & Cloud Architecture

What are the core components of a secure cloud environment, and how do you configure AWS EC2, S3, and VPC networks?

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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?

Describe the design patterns you would use to handle failures and retries in a distributed system (e.g., Circu

Medium · System Design & Cloud Architecture

Describe the design patterns you would use to handle failures and retries in a distributed system (e.g., Circuit Breaker pattern).

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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 across multiple databases in a microservices architecture?

Medium · System Design & Cloud Architecture

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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?

Edge instances grow 400 MB per hour until the nightly restart

Hard · memory leak · heap analysis · metric cardinality

Edge API instances start at 700 MB resident and grow about 400 MB/hour; a nightly rolling restart has hidden it for weeks. Growth continues unchanged when request rate halves overnight, p99 degrades in the last hours before an instance is recycled, and heap used immediately after a forced full GC rises monotonically. The service holds no product state. Name the discriminating measurement that separates the plausible causes, give the most likely cause, and give the fix and how you would verify it.

Approach

  1. Separate resident memory from live heap first, because they fail differently. Resident size can grow from fragmentation, native buffers or thread stacks while the heap is flat; heap used after a full GC rising monotonically is the measurement that says objects are reachable and not being released. You already have it, so this is retention, not fragmentation, and that closes off half the candidate list.
  2. Use the rate's independence from traffic as the discriminator. Growth that continues at half the request rate rules out per-request objects that are merely slow to collect and points at a structure that grows with distinct values observed rather than with call volume. Write the candidates that have that property: a metrics registry keyed on a high-cardinality label, an unevicted cache, an interner, a per-key lock map.
  3. Take two heap snapshots an hour apart and diff by retained size, reading the dominator tree, not by allocation count or instance count. Expect one root holding a map with millions of entries, then follow the reference chain to the code that inserts and never removes. Allocation profilers point at churn, which is the wrong signal here.
  4. The candidate that fits this service is an observability label carrying an identifier, such as a request path recorded before templating so that /v1/resources/48213 becomes its own metric series. That grows with distinct ids seen, is independent of rate, and explains the late p99 degradation, since GC cost rises with the size of the live set.

Follow-up

  • Post-GC heap is now flat but resident size still creeps. What are you looking at, and does it matter?
  • How would you have detected this before an OOM, given the nightly restart masked the trend?

Suggested practice checklist

Built from the rounds and topics Xebia candidates report.

Day 1 — Map the Xebia loop

  • Write out the reported sequence: HR Screening, Technical Evaluation, In-Depth Technical Discussions, Client Round.
  • 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 4 reported rounds, with the weakest marked.

Day 2 — Work Java

  • Spend the session on Java, which Xebia candidates report being tested on.
  • Write one worked example in Java and time yourself on it.

Deliverable: One timed worked example in Java.

Day 3 — Work Java 8+ (language features)

  • Spend the session on Java 8+ (language features), which Xebia candidates report being tested on.
  • Write one worked example in Java 8+ (language features) and time yourself on it.

Deliverable: One timed worked example in Java 8+ (language features).

Day 4 — Work Spring Boot

  • Spend the session on Spring Boot, which Xebia candidates report being tested on.
  • Write one worked example in Spring Boot and time yourself on it.

Deliverable: One timed worked example in Spring Boot.

Day 5 — Answer out loud: Java, Spring Boot, & Backend Frameworks

  • Answer aloud, timed: Explain the differences between different collection types in Java and when you would choose a LinkedHashMap over a standard HashMap.
  • Answer aloud, timed: How do you configure and secure a microservices application using Spring Security and Spring MVC?

Deliverable: Spoken answers to 2 reported Java, Spring Boot, & Backend Frameworks question(s), under time.

Day 6 — Answer out loud: Data Structures, Algorithms, & SQL

  • Answer aloud, timed: Write a program to find the second largest element in an array and discuss its time and space complexity.
  • Answer aloud, timed: How would you implement a custom queue using stacks, and what are the performance trade-offs?

Deliverable: Spoken answers to 2 reported Data Structures, Algorithms, & SQL question(s), under time.

Day 7 — Answer out loud: System Design & Cloud Architecture

  • Answer aloud, timed: How would you design a microservices-based system to monitor a website's uptime and downtime in real time?
  • Answer aloud, timed: Explain how you would implement event-driven communication between microservices using Apache Kafka.

Deliverable: Spoken answers to 2 reported System Design & Cloud Architecture question(s), under time.

Behavioural preparation

Behavioural rounds judge the decision you made and what it cost.

How do you handle database transactions in Spring Boot, and what is the significance of the @Transactional a

Medium · Java, Spring Boot, & Backend Frameworks

How do you handle database transactions in Spring Boot, and what is the significance of the @Transactional annotation?

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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?

Describe a time when a client changed project requirements unexpectedly mid-development. How did you adapt, an

Medium · Behavioral, Client-Handling, & Leadershi

Describe a time when a client changed project requirements unexpectedly mid-development. How did you adapt, and how did you communicate this to your team?

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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 approach mentoring junior developers while maintaining your own individual delivery timelines?

Medium · Behavioral, Client-Handling, & Leadershi

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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?

Tell me about a situation where you had a technical disagreement with a senior stakeholder or client represent

Medium · Behavioral, Client-Handling, & Leadershi

Tell me about a situation where you had a technical disagreement with a senior stakeholder or client representative. How did you resolve it?

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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 balance the pressure of tight delivery timelines with the necessity of maintaining high code qualit

Medium · Behavioral, Client-Handling, & Leadershi

How do you balance the pressure of tight delivery timelines with the necessity of maintaining high code quality and test coverage?

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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?