Cegeka · Software Engineer
Updated · 2026-10-02

Cegeka Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Candidates describe Cegeka as a company that builds and runs technology for clients, with work reported across infrastructure, cloud services and custom applications. Projects are described as possibly involving large-scale data processing, integration with cloud platforms and enterprise applications. A Software Engineer there is described as designing, building and maintaining applications for client needs, from internal tools to applications that clients use directly, reviewing teammates' code, taking part in the whole delivery cycle from requirements to deployment, and troubleshooting running applications. The guide treats the role as engineering work that also involves talking to the people who own the requirements.

This guide is for candidates applying to Cegeka as a Software Engineer. It covers the three reported stages, the fifteen questions candidates report (languages and programming paradigms, the development lifecycle and Agile, high availability, architectural patterns, REST API design, troubleshooting, unclear requirements, behavioral stories, and basic coding such as reversing a linked list and binary search), and the topics candidates associate with the loop: Java, SQL, Domain-Driven Design, pair programming and problem solving.

Candidates report three stages over roughly 3-5 weeks: an HR Interview, a Technical Interview and Stakeholder Engagement. The reports describe the stages, not a published schedule, and do not say which question belongs to which stage.

JavaSQLDesign Domain: DDD (Domain-Driven Design)

32 min read

Browse Software Engineer questions

See the practice prompts

17Practice promptsAcross five skill areas

The work candidates describe is broader than writing code. Responsibilities reported for the role include code reviews, taking part in the whole delivery cycle from gathering requirements to deployment and maintenance, talking to stakeholders, and debugging running applications. That shape explains the reported question mix: alongside coding there are questions on the development lifecycle, Agile, architecture, troubleshooting and teamwork. Prepare to speak about a project end to end, not only about the code you wrote.

The stack candidates mention is mainstream enterprise tooling. Java, C# and Python appear as languages, with Spring and .NET as frameworks; Git and CI/CD pipelines, Agile and Scrum, and relational databases are listed as expected knowledge, and AWS, Azure, JIRA and Trello are listed as nice to have. Reported topics for the loop are Java, SQL, Domain-Driven Design, pair programming and problem solving. Pick one primary language and know it well enough to compare it with a second, refresh joins, aggregation, indexes and transactions in SQL, and learn the DDD vocabulary: entity, value object, aggregate, bounded context, repository and ubiquitous language, each with an example from a system you know.

The reported questions fall into six groups: your languages and the object-oriented versus functional difference; the development lifecycle and Agile; design (high availability and scalability, architectural patterns, designing a RESTful API); troubleshooting a slow web application and handling unclear requirements; behavioral stories (a challenging project, team conflict, advocating a technical decision, learning a technology quickly); and basic coding (reverse a linked list, implement binary search, explain the complexity of your solution). The coding items are standard exercises, so the preparation is accuracy under narration: edge cases, invariants and a complexity argument you can derive from your own loops. Since pair programming is among the reported topics, practise talking while you type.

01

HR Interview

reported

Candidates describe an opening HR conversation about your motivation and background. It is the first place you explain who you are as an engineer, so go in with a short, specific account of your path, the languages you have used and why this kind of work interests you. The reported question about the languages you are most proficient in, and how you have used them, is a good rehearsal for this conversation even though the reports do not place it in a particular stage.

What to demonstrate

  • Your motivation for the Software Engineer role and for Cegeka
  • Background and experience relevant to the work, as you describe it
  • How clearly you can summarise past projects and your part in them

How to prepare

  • Write a short career narrative that names each language you have used professionally and one project where you used it.
  • Prepare a reason for wanting this role that refers to the work candidates report: client projects across infrastructure, cloud services and custom applications.
  • Decide which of Java, C# or Python is your strongest and be ready to say what you built with it, and where you used SQL.
  • Write two or three questions about the team, the kind of projects and how engineers work with stakeholders.
Cegeka Software Engineer candidate reports ↗
02

Technical Interview

reported

Candidates describe a Technical Interview covering coding skills, problem solving and understanding of software design principles. Reported topics for the loop include Java, SQL, Domain-Driven Design, pair programming and problem solving, but candidates do not say which topic lands in which stage, so treat coding, design and troubleshooting as all in play. Work on narrating while you code: state the approach, write it, test it on small inputs, then give the complexity.

What to demonstrate

  • Coding skills: working code for standard exercises
  • Problem solving: how you break a problem down and reason about it aloud
  • Understanding of software design principles and architecture

How to prepare

  • Write the reversal of a linked list iteratively and recursively, and binary search with a clear loop invariant, then test empty, single-element and duplicate cases.
  • Practise stating time and space complexity for each solution, including the recursion stack.
  • Outline a high-availability design, a RESTful API for a resource you know, and when you would use layered, event-driven or microservice styles.
  • Work the two SQL practice exercises in PracHub's library and prepare a short DDD example from a domain you know.
Cegeka Software Engineer candidate reports ↗
03

Stakeholder Engagement

reported

Stakeholder Engagement is described as meetings with various stakeholders, including team leads and possibly the business unit manager. The responsibilities candidates report for the role include gathering requirements and giving technical input to stakeholders, so expect to be judged on how you communicate as much as on code. Prepare to explain a technical choice in plain terms and to describe how you work with people who do not share your background.

What to demonstrate

  • How you communicate with stakeholders, including non-engineers
  • How you collaborate with a team and its leads
  • Whether you can explain and defend a technical decision

How to prepare

  • Prepare stories for team conflict, advocating a technical decision and starting a project with unclear requirements, each told in the first person.
  • Practise explaining one design you built in three sentences for a business reader, then in more depth for an engineer.
  • Prepare questions for a team lead and for a business manager about how requirements reach the team and how success is judged.
  • Rehearse your answer on the development lifecycle and Agile with a real project and your role in it.
Cegeka Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Answering the object-oriented versus functional programming question with two definitions and no code

Contrast the two styles in your own language: mutable state in objects versus immutable data and pure functions, with a short example such as the same transformation written as a loop with a class and as a stream or LINQ pipeline. Say when each fits.

02

Writing a linked-list reversal or binary search that fails on empty, single-element or duplicate inputs

State the loop invariant before coding, keep a reference to the next node before relinking, compute the midpoint as lo + (hi - lo) / 2, and run empty, one-element and two-element cases by hand before saying it works.

03

Quoting a complexity figure without tying it to your code, or leaving out space

Derive time and space from your actual loops and recursion, including the call stack, and say how the answer would change for a different structure such as an array instead of a linked list.

04

Naming patterns and technologies in the design questions without trade-offs

Anchor high availability, scalability and REST API design in one concrete scenario and name what fails and how you recover. Use DDD terms only with an example, such as what your aggregate boundary protects.

05

Telling behavioral stories in the team's voice, or starting a project with unclear requirements by building straight away

Rewrite each story so your decisions are explicit, and describe a clarification step: list assumptions, ask stakeholders, agree a first small slice, then build.

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

12 technical prompts0 include a worked solution

Write a function to reverse a linked list.

medium
Coding / Algorithms

Write a function to reverse a linked list.

Approach
  1. Clarify the node type (singly linked, with a next field) and whether to reverse in place. Then state the plan: walk the list once and turn each next pointer around.
  2. Iterative version with three references: prev = null and curr = head. Loop while curr != null: next = curr.next; curr.next = prev; prev = curr; curr = next. Return prev as the new head. This is O(n) time and O(1) extra space.
  3. Recursive version: reverse the rest of the list, then set head.next.next = head and head.next = null, and return the new head from the base case. It is still O(n) time but uses O(n) stack. Java does not optimise tail calls, so a very long list can throw StackOverflowError, which is why I prefer the iterative version.
  4. Walk through the edge cases out loud: an empty list (return null), a single node, and two nodes. Test by building a list in code and checking the values in order after reversal, and check that the old head's next is now null.
  5. For a doubly linked list, swap each node's prev and next and return the last node visited.
Follow-up
  • Reverse only the nodes between positions m and n in one pass.
  • Reverse the list in groups of k nodes, leaving a final short group as it is.
  • How would you check first whether the list contains a cycle?

How would you implement a binary search algorithm?

medium
Coding / Algorithms

How would you implement a binary search algorithm?

Approach
  1. State the precondition first: the input must be sorted and support random access, such as an array or ArrayList. On a linked list, reaching the middle costs O(n), which removes the benefit.
  2. Classic version on a closed range: lo = 0, hi = n - 1, loop while lo <= hi. Compute mid = lo + (hi - lo) / 2, or (lo + hi) >>> 1 in Java, because (lo + hi) / 2 overflows int for large arrays. If a[mid] equals the target, return mid. If it is smaller, set lo = mid + 1. Otherwise set hi = mid - 1. Return -1 if the loop ends.
  3. For duplicates or insertion points, use the half-open lower-bound form: lo = 0, hi = n, loop while lo < hi; if a[mid] < target then lo = mid + 1, else hi = mid. It returns the first index whose value is >= target. Java's Arrays.binarySearch returns -(insertionPoint) - 1 when the key is missing and does not say which duplicate it finds.
  4. Complexity: O(log n) comparisons, and O(1) space when iterative. Edge cases to test: an empty array, one element, a target below the minimum or above the maximum, and all elements equal.
  5. Generalise it: binary search works on any monotonic predicate, for example finding the smallest capacity that ships all packages in D days by searching the range of possible answers.
Follow-up
  • Return the first and last positions of a target in a sorted array with duplicates.
  • Search for a target in a sorted array that has been rotated at an unknown pivot.
  • Why does the loop condition change between the lo <= hi and lo < hi versions, and what bug does mixing them cause?

Can you explain the time complexity of your solution?

medium
Coding / Algorithms

Can you explain the time complexity of your solution?

Approach
  1. Define the variables before giving a bound: n is the list length, and m is a second input if there is one. Then count the dominant operation. A single pass is O(n), nested loops over the same input are O(n^2), and halving the search space each step is O(log n).
  2. Always give time and extra space together. Iterative linked-list reversal is O(n) time and O(1) space, and the recursive version is O(n) space for the call stack. Iterative binary search is O(log n) time and O(1) space.
  3. For recursion, write the recurrence and solve it. T(n) = 2T(n/2) + O(n) gives O(n log n), as in merge sort. T(n) = T(n/2) + O(1) gives O(log n), as in binary search. Naive recursive Fibonacci is exponential, and memoisation makes it O(n).
  4. Say which case you mean: worst, average or amortised. ArrayList.add is amortised O(1) because the backing array grows by a constant factor (1.5x in OpenJDK), even though an individual add can copy everything. HashMap lookups are O(1) on average and degrade with heavy collisions.
  5. Call out hidden costs in library calls: list.contains inside a loop is O(n*m), and repeated String concatenation in a Java loop copies the string every time, giving O(n^2) characters in total, while StringBuilder keeps it linear.
Follow-up
  • You sort n items once and then answer k lookups with binary search: what is the total cost, and when does a HashSet do better?
  • Why is ArrayList.add amortised O(1) when some calls copy the whole array?
  • Can you do better than O(n log n) for this problem, and what lower bound applies to comparison sorting?

The plan follows the three reported stages and the reported topics: Java, SQL, DDD, coding, design and behavioral stories. Each day ends with something you can check.

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
01Map the loop and inventory your experience
  • Write the three reported stages and, beside each, what you must be able to say or show.
  • List the fifteen reported questions grouped by type and mark the five you are least ready for.
  • Make an inventory of four projects with the languages, your role and the outcome of each.

Deliverable: A one-page loop map, a grouped question list with weak spots marked, and a four-project inventory.

Practice prompt ↗
02Java and programming paradigms
  • Write the same small transformation twice in your strongest language, once object-oriented and once in a functional style, and note where each is clearer.
  • Outline Java core topics you could be asked about: collections, equals and hashCode, generics, streams and concurrency basics.
  • Answer aloud the question on languages you are proficient in and the object-oriented versus functional question.

Deliverable: Two code versions, a one-page Java topic outline and recorded spoken answers to both questions.

Practice prompt ↗Practice prompt ↗
03SQL refresh
  • Review joins, grouping and aggregation, indexes and transaction basics.
  • Work the two SQL practice exercises from PracHub's library, which are practice material rather than reported Cegeka questions.
  • Write a one-page cheat sheet of query patterns you tend to forget.

Deliverable: Two worked SQL solutions and a one-page cheat sheet.

Practice prompt ↗Practice prompt ↗
04Coding fundamentals with narration
  • Write linked-list reversal iteratively and recursively, and test empty, single and long lists.
  • Write binary search with a stated invariant and test duplicates and missing targets.
  • State the time and space complexity of each solution aloud while you work, as in a pair programming session.

Deliverable: Working, tested code for both exercises and a written complexity summary for each.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Design principles, patterns and DDD
  • Outline an application designed for high availability and scalability: redundancy, stateless services, data layer and failure handling.
  • Design a RESTful API for a resource you know: URIs, methods, status codes, versioning and idempotent retries.
  • Write short notes on three architectural patterns and when you would pick each, and map a domain you know to DDD terms.

Deliverable: A design outline, an API sketch with error cases and a pattern-and-DDD cheat sheet.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Troubleshooting, requirements and the lifecycle
  • Write a checklist for a slow web application: reproduce, measure, find the slow layer, check queries and caching, then fix and verify.
  • Write the steps you take on a project with unclear requirements: assumptions, questions, a first small slice.
  • Rehearse the answer on the development lifecycle and your Agile experience using one real project.

Deliverable: A troubleshooting checklist, a requirements-clarification outline and one spoken lifecycle answer.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Behavioral and stakeholder rehearsal
  • Write four stories (challenging project, team conflict, advocating a decision, learning a technology fast) in first-person bullet form.
  • Rehearse each aloud and cut anything that does not show your own decision.
  • Prepare questions for a team lead and a business unit manager, then run a full mock covering all three stages.

Deliverable: Four rehearsed stories and a list of questions for the final stage.

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

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

The reported behavioral questions ask for your Agile and lifecycle experience, a challenging project, team conflict, advocating a technical decision and learning a technology quickly. The third stage is described as meetings with team leads and possibly a business unit manager, so prepare stories that show how you work with people as well as code. Tell each story in the first person with a clear role, a decision and a result.

Describe the software development lifecycle and your experience with Agile methodologies.

medium
Technical / Domain Questions

Describe the software development lifecycle and your experience with Agile methodologies.

Approach
  1. Anchor the answer in one real project and walk it in order: requirements, design, implementation with code review, testing, release and maintenance. Say what you personally did at each step instead of reciting a textbook cycle.
  2. Map your Agile experience to concrete practices: how the backlog was refined, what sprint planning produced, how daily stand-ups worked and what the review and retrospective changed. Name the framework you really used (Scrum, Kanban or a mix) and the tool, such as JIRA or Trello, if that is true.
  3. Include one change that came out of a retrospective and what it improved, because a specific adjustment shows you used the process rather than attended it.
  4. Be honest about where the process bent: a scope change mid-sprint, a hotfix that skipped the normal flow or a definition of done you tightened, and how you handled it.
  5. The mistake that sinks this answer is a glossary: defining waterfall and Scrum with no project, role or outcome attached.
Follow-up
  • How did your team decide that a story was done?
  • What did you do when requirements changed in the middle of a sprint?
  • Where did Agile work badly on that project, and what did you adjust?

Describe a challenging project you worked on. What was your role, and what challenges did you face?

medium
Behavioral / Leadership

Describe a challenging project you worked on. What was your role, and what challenges did you face?

Approach
  1. Choose a project where the difficulty was specific: a hard integration, a performance problem, an unfamiliar legacy codebase or a deadline with moving requirements. Give the situation in two sentences and say who it was for.
  2. State your role as decisions and ownership: what you designed, built, reviewed or unblocked. Use I for your own choices and name teammates for theirs, so the listener can tell your contribution.
  3. Split the challenges into technical and people problems, then take the biggest one and show the options you weighed, the one you chose and why.
  4. Close with the outcome and something checkable, such as a release made, an error rate reduced or a process adopted, using only figures you can defend, and finish with what you would change.
  5. The mistake that sinks it is a project whose only hardship was a large amount of work, or a story told entirely as the team's with no visible personal contribution.
Follow-up
  • Which decision on that project would you reverse today?
  • What was the hardest setback, and how did you handle it?
  • How did you know the project had succeeded?

How do you handle conflicts within a team?

medium
Behavioral / Leadership

How do you handle conflicts within a team?

Approach
  1. Pick a real disagreement with substance, such as an API shape, review feedback, a priority call or an estimate, rather than a personality clash where the other person is plainly wrong.
  2. Show the order of your actions: you first understood the other person's reasoning and restated it to check, then moved the discussion from opinions to something checkable like a benchmark, a small spike, a requirement or the effect on users.
  3. Say how it was settled, whether by compromise, by adopting one view or by a team lead choosing after you set out the options, and what you gave up.
  4. End with the working relationship afterwards and one habit you changed, for example writing decisions down or agreeing review conventions.
  5. The mistake that sinks it is claiming you have never had a conflict, or telling a story where you win and the other person looks foolish.
Follow-up
  • What would you have done if the other person had not agreed?
  • When is it right to bring in a team lead?
  • Tell me about a conflict where you turned out to be wrong.

Give an example of a time when you had to advocate for a technical decision.

medium
Behavioral / Leadership

Give an example of a time when you had to advocate for a technical decision.

Approach
  1. Pick a decision with real alternatives and a cost, such as a framework or library choice, a schema design, an API versioning approach, a refactor versus feature work, or adding a check to the CI pipeline.
  2. Lay out the options, your criteria and the evidence you gathered: a prototype, a load test, incident history or a maintenance estimate. A decision backed by evidence reads as judgement, not preference.
  3. Say who you needed to convince and how you adapted. Engineers want trade-offs and risks; a business stakeholder wants the effect on delivery, cost and risk in plain words, which matters for the stakeholder stage.
  4. Give the outcome honestly, including a case where you were overruled and committed to the chosen path, or where you changed your mind after new evidence.
  5. The mistake that sinks it is a story where advocating meant repeating your preference more firmly until others gave in.
Follow-up
  • How would you explain that decision to a non-technical stakeholder?
  • What would you have done if the team had still said no?
  • Looking back, was the decision right?

Describe a time when you had to learn a new technology quickly to complete a project.

medium
Problem-Solving / Case Studies

Describe a time when you had to learn a new technology quickly to complete a project.

Approach
  1. Set the stakes: what the project needed, the deadline and what you did not know. A new language, framework or cloud service, for example moving between Java, C# or Python, or onto Spring, .NET, AWS or Azure, makes a natural example if it is true for you.
  2. Show how you triaged: you identified the smallest slice needed to deliver, read the official documentation for that slice, built a small spike and asked a colleague who knew it, instead of trying to learn everything.
  3. Describe how you checked your understanding: tests you wrote, a review from someone experienced, and comparison with existing code in the repository.
  4. State the result: what shipped, what remained shaky and what you studied afterwards.
  5. The mistake that sinks it is an answer that stops at watching tutorials with nothing shipped, or one that implies you mastered the technology in a few days.
Follow-up
  • How did you know you had learned enough to ship?
  • What did you get wrong at first?
  • How would you handle it if nobody on the team knew the technology?
  • 01

    Describe the software development lifecycle and your experience with Agile methodologies.

  • 02

    Describe a challenging project you worked on. What was your role, and what challenges did you face?

  • 03

    How do you handle conflicts within a team?

  • 04

    Give an example of a time when you had to advocate for a technical decision.

  • 05

    Describe a time when you had to learn a new technology quickly to complete a project.

  • 06

    If you were given a project with unclear requirements, how would you proceed?

PracHub preparation framework ↗
How long does the process take?

Candidates report three stages spread over roughly 3-5 weeks. The reports do not give a fixed schedule, so use the wait between stages to rehearse the type of material each stage covers.

Cegeka Software Engineer candidate reports ↗
What topics does Cegeka test in interviews?

Candidates associate the loop with Java, SQL, Domain-Driven Design, pair programming and problem solving. The reported questions add languages and paradigms, the development lifecycle and Agile, architecture and REST design, troubleshooting, and basic coding. The reports do not say which topic belongs to which stage.

Cegeka Software Engineer candidate reports ↗
Which programming languages should I prepare?

The requirements candidates describe name Java, C# and Python, with Spring and .NET as frameworks. Java is the one listed among the reported topics. Pick the language you know best, be ready to discuss real projects in it, and be able to compare it with one other.

PracHub Software Engineer practice ↗
What coding questions have candidates reported?

Reversing a linked list, implementing binary search and explaining the time complexity of your solution. Write both from memory, test empty and single-element inputs, and state time and space for each, including recursion stack depth.

PracHub Software Engineer practice ↗
How do I prepare for the Stakeholder Engagement stage?

Candidates describe it as meetings with team leads and possibly a business unit manager. Prepare stories on conflict, advocating a technical decision and unclear requirements, practise explaining a design in plain language, and bring questions about how requirements reach the team.

PracHub Software Engineer practice ↗
How much SQL and DDD should I know?

Both appear among the reported topics. For SQL, be fluent in joins, grouping, indexes and transactions, and use the SQL practice exercises on PracHub to rehearse. For DDD, know entity, value object, aggregate, bounded context and repository, and explain each with an example from a system you have worked on.

PracHub Software Engineer practice ↗
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.