C5i · Software Engineer
Updated · 2026-10-02

C5i Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Candidate reports describe C5i as a company that builds software for both internal and external clients. The Software Engineer role is described as covering designing, coding, testing, debugging, deploying and maintaining applications, working alongside product managers, designers and other engineers, and taking part in code reviews. The reports do not name specific products or teams, so this guide does not either. It concentrates on the engineering fundamentals the reported questions cover.

This guide is for candidates applying to C5i as a Software Engineer, typically with a computer science background and one to three years of development experience, as the requirements candidates describe it. It covers the four reported rounds, the reported questions (Java and OOP basics, string and array coding, debugging and security scenarios, system design and behavioral prompts) and a 7-day plan. It also covers the stack the role lists: Java or Python, web basics, SQL or NoSQL databases and Git.

Candidates report four rounds spread over roughly three to five weeks: Initial Screening, Coding Tests, Technical Interviews and Behavioral Evaluations. Reports add that the experience can vary by team and role.

JavaData Structures & Algorithms (DSA/DS)Resume-Based Technical Questions

43 min read

Browse Software Engineer questions

See the practice prompts

27Practice promptsAcross five skill areas

The reported questions are mostly fundamentals. Candidates describe Java and object-oriented programming (polymorphism, garbage collection), data structures (linked list versus array, stack versus queue, a stack built from queues), short coding tasks (reversing a string, finding the largest element, finding duplicates, binary search, a palindrome check) and SQL. Topic tags attached to the loop list Java, data structures and algorithms, resume-based technical questions, OOP and SQL, so those five areas deserve the most practice time.

Alongside the fundamentals, candidates report scenario and design questions: debugging a complex software issue, securing a web application, handling unclear requirements, prioritizing features with limited resources, a high-traffic e-commerce site, a scalable chat application, database design for many users, data consistency in a distributed system and microservices. For someone with one to three years of experience, the realistic goal is a structured answer with named trade-offs, not an exhaustive architecture. Practise saying what you would build first, what breaks first and what you would measure.

The requirements candidates describe name Java or Python as must-haves, plus web development principles, databases and version control. Cloud services such as AWS or Azure, front-end frameworks such as React or Angular, and DevOps practice appear only as nice-to-haves, so a short working vocabulary in those areas is enough. Pick Java as your coding language if you can, because several reported questions are phrased in Java. Prepare your own projects in detail as well: the topic tags include resume-based technical questions, which means every technology on your CV is fair game.

01

Initial Screening

reported

Candidates describe Initial Screening as the first filter on basic qualifications and fit. Reports do not give its format or who runs it. Treat it as the place where your CV is checked against the role's listed requirements: Java or Python, web basics, databases and version control. Expect to explain your projects and technologies in plain terms, and be ready to be asked about Java directly, since it heads the reported topic list.

What to demonstrate

  • Whether your experience lines up with the listed requirements: Java or Python, databases, version control
  • Basic Java and programming knowledge at an introductory level
  • Clear communication about your own projects

How to prepare

  • Write a short summary for each project on your CV: your own contribution, the technologies, one problem you solved
  • Prepare a one-sentence honest statement of your Java or Python level and what you have built in it
  • Review Java basics you can answer cold, such as the difference between a linked list and an array and what polymorphism means
  • Prepare to say why you want this Software Engineer role, tied to the work (building, testing, debugging, deploying) rather than slogans
C5i Software Engineer candidate reports ↗
02

Coding Tests

reported

Candidates say they may be asked to complete coding tests. Reports do not say whether these are live, timed online or on paper, so practise in more than one setting. The reported coding tasks are small and classic: reverse a string in Java, find the largest element in an unsorted array, find duplicate numbers, binary search and a palindrome check. A stack built from queues also appears among the reported data-structure questions. Correct, compiling code with edge cases handled matters more than cleverness.

What to demonstrate

  • Working code in your chosen language, with correct handling of empty and single-element input
  • Command of arrays, strings and basic data structures
  • The ability to state time and space complexity for your own solution

How to prepare

  • Write the five reported coding tasks in Java without an IDE, then run them on empty, one-element, all-equal and large inputs
  • Implement a stack with two queues, and again with one queue, and state the cost of push and pop in each version
  • Write binary search both iteratively and recursively, using a midpoint formula that cannot overflow
  • Practise on LeetCode or HackerRank in the language you will use, since candidates mention both platforms
C5i Software Engineer candidate reports ↗
03

Technical Interviews

reported

Candidates describe Technical Interviews as the in-depth stage on technical knowledge and problem solving. Reported questions of this kind include polymorphism in Java, the MVC architecture and its components, the advantages of RESTful APIs, linked list versus array, garbage collection in Java, plus debugging, security and system design scenarios. Topic tags also list SQL and resume-based technical questions. Prepare for definitions that you can back with a small example, and for design questions where you name the trade-offs.

What to demonstrate

  • Depth in Java and OOP concepts, shown through examples rather than definitions
  • Database and SQL fundamentals, including design for many concurrent users
  • Structured reasoning on debugging, security and design scenarios
  • Accurate technical detail about the projects on your CV

How to prepare

  • Prepare a Java example for each OOP idea you may be asked about, for instance an overridden method called through a base-class reference for polymorphism
  • Draw the MVC request flow for a web application you have built and name what each part owns
  • List the REST constraints you can defend (stateless requests, resource URLs, HTTP verbs and status codes) and one weakness of REST
  • Rehearse a debugging sequence and a web-security checklist, then practise two design questions aloud, such as a chat application and a high-traffic e-commerce site, naming the first bottleneck
C5i Software Engineer candidate reports ↗
04

Behavioral Evaluations

reported

Candidates describe Behavioral Evaluations as the stage on interpersonal skills and cultural fit. The reported prompts are a significant challenge at work, prioritizing across several projects, working effectively in a team, what motivates you and how you handle feedback and criticism. Further reported examples include a conflict with a team member and a project deadline at risk. Prepare stories drawn from engineering work, with a decision you made and an outcome you can name.

What to demonstrate

  • Communication of past work and your own role in it
  • Collaboration and handling of feedback, as the round is described
  • Judgement when priorities or deadlines collide

How to prepare

  • Write five stories on one page each: a challenge, a prioritization call, a team success, a conflict and a piece of feedback you acted on
  • For every story, state your own decision in the first person singular, the alternatives you rejected and the result
  • Rehearse a deadline-at-risk answer: what you told stakeholders, what scope you cut and what happened
  • Prepare a few honest questions about how the team handles code review, deployment and agile practice
C5i Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Defining polymorphism, MVC or REST in textbook sentences with no example

For each reported concept, prepare a short worked case: an overridden method called through a base-class reference, the MVC flow of a request you built, and a REST endpoint with its verb and status code. Know the contrast, for instance compile-time overloading versus run-time overriding.

02

Writing the reverse-string, palindrome, duplicates or binary search solution without testing edge cases

State empty, null, single-element and all-equal inputs before you code. For palindromes decide on case and punctuation up front, and for binary search use a midpoint of low plus half the gap so it cannot overflow. Trace one small input out loud.

03

Building a stack from queues but not stating what push or pop costs

Say that the two-queue version makes either push or pop linear and the other constant, and show the single-queue rotation version. Naming the trade-off is the point of the exercise.

04

Listing buzzwords such as microservices, sharding or caching on a design question without showing why

For the chat application, e-commerce site and distributed-consistency questions, say who the users are, name the read and write paths, pick one data store with a reason, and state what fails first. Keep to a few components you can defend.

05

Claiming a technology on your CV that you cannot explain, or telling team stories entirely in the word we

Cut or mark anything you cannot discuss in depth. For each project prepare the decision you made, a problem you debugged and the result. Use I for your own actions and name your specific contribution.

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

22 technical prompts0 include a worked solution

Explain the difference between a linked list and an array.

medium
Technical / Domain Questions

Explain the difference between a linked list and an array.

Approach
  1. Start from memory layout: an array is one contiguous block, so element i sits at base + i * elementSize and index access is O(1); a linked list is a chain of separately allocated nodes, each holding a reference to the next (and previous, if doubly linked), so reaching index i is O(n).
  2. Compare insert and delete: in an array, inserting or removing in the middle shifts the tail, O(n); in a linked list it is O(1) once you hold the node (or its predecessor in a singly linked list), but finding that position is still O(n).
  3. Bring in the hardware: arrays are cache-friendly because neighbours share cache lines, while list traversal chases pointers across the heap. In Java each LinkedList node is an object with its own header and references, and LinkedList also boxes every value, whereas int[] stores primitives inline.
  4. Tie it to Java types: a plain array has fixed length; ArrayList wraps a resizable array and grows by about 1.5x (newCapacity = old + old >> 1), so add at the end is amortised O(1). LinkedList implements Deque, but ArrayDeque is usually the faster choice for queue or stack work.
  5. Close with a decision rule: choose an array or ArrayList for indexed reads and iteration; a linked list only when you splice nodes you already hold, as in an LRU cache built from a hash map plus a doubly linked list.
Follow-up
  • Why is ArrayList often faster than LinkedList even for inserts near the middle of a large list?
  • How does ArrayList resizing work, and why is add at the end amortised O(1)?
  • How would you detect a cycle in a linked list using O(1) extra space?

Write a function to reverse a string in Java.

medium
Coding / Algorithms

Write a function to reverse a string in Java.

Approach
  1. Note that Java Strings are immutable, so any reversal builds a new string and needs O(n) extra space. The idiomatic answer is new StringBuilder(s).reverse().toString(), O(n) time.
  2. Then write it by hand to show the technique: char[] c = s.toCharArray(); swap c[i] and c[j] with two pointers from both ends while i < j; return new String(c). Even and odd lengths both work because the loop stops when the pointers meet or cross.
  3. Call out the slow version: result += s.charAt(i) in a loop copies the growing string each iteration, O(n^2) overall. A recursive version also risks stack overflow on long input and costs O(n^2) if it uses substring.
  4. Handle edge cases: null (decide whether to throw or return null), empty string, single character. Swapping chars splits Unicode surrogate pairs such as emoji; StringBuilder.reverse keeps surrogate pairs together, but neither approach handles combining characters (grapheme clusters).
  5. Test with "", "a", "ab", "abc" and a string containing an emoji.
Follow-up
  • Reverse the order of words in a sentence, ideally in place on a char array.
  • Reverse only the letters of a string, leaving punctuation in place.
  • Why are Strings immutable in Java, and what does that buy you?

How would you find the largest element in an unsorted array?

medium
Coding / Algorithms

How would you find the largest element in an unsorted array?

Approach
  1. Give the single-pass scan: max = a[0], then for i from 1 compare and update. O(n) time, O(1) space, n - 1 comparisons, and that is optimal because any element you skip could be the maximum.
  2. Explain why sorting first is the wrong tool: O(n log n) time to answer an O(n) question, and an in-place sort also mutates the caller's array.
  3. Initialise from the first element, not 0: starting at 0 returns the wrong answer for an all-negative array. Integer.MIN_VALUE works but hides the empty-array case.
  4. Decide the empty or null contract up front: throw IllegalArgumentException or return an OptionalInt. Arrays.stream(a).max() returns OptionalInt; Collections.max on an empty collection throws NoSuchElementException. For double arrays, say how NaN should be treated.
  5. Extend if asked: second largest in one pass by tracking two values (be explicit about duplicates), and kth largest with a min-heap of size k in O(n log k) or quickselect in O(n) on average.
Follow-up
  • Find the second largest distinct value in a single pass.
  • Find the kth largest element; compare the heap and quickselect approaches.
  • Find both the maximum and the minimum with about 3n/2 comparisons instead of 2n.

Solve the problem of finding duplicate numbers in an array.

medium
Coding / Algorithms

Solve the problem of finding duplicate numbers in an array.

Approach
  1. Clarify the exact task before coding: return any one duplicate, all duplicated values once each, or just a boolean? What is the value range, and may the input be modified?
  2. General case: a HashSet, where set.add(x) returns false when x is already present. O(n) time and O(n) space; for all duplicates once each, collect into a second set or count with a HashMap<Integer, Integer>.
  3. Space-saving alternative: sort, then compare neighbours. O(n log n) time and little extra memory (Arrays.sort on int[] is a dual-pivot quicksort), but it reorders the caller's array, so say so or sort a copy.
  4. Constrained case (n + 1 values, each in 1..n): Floyd's cycle detection treats a[i] as a pointer to the next index and finds the duplicate in O(n) time and O(1) space without modifying the array. If modification is allowed, mark seen values by negating a[|x| - 1]. Both tricks break with zero, negatives or out-of-range values.
  5. Mention the sum trick only with its precondition (every other value appears exactly once) and its overflow risk; test with an empty array, no duplicates, all-equal values and a value repeated three times.
Follow-up
  • Find the duplicate in O(1) extra space without modifying the array.
  • Return every value that appears twice when values are in 1..n.
  • How would you find duplicates in a file of numbers too large to fit in memory?

Demonstrate how to implement a binary search algorithm.

medium
Coding / Algorithms

Demonstrate how to implement a binary search algorithm.

Approach
  1. State the precondition (sorted input) and the invariant: if the target exists it lies in [lo, hi]. Iterative version: lo = 0, hi = n - 1, while lo <= hi, compare a[mid] and move lo = mid + 1 or hi = mid - 1, return -1 when the range is empty. O(log n) time, O(1) space.
  2. Compute mid as lo + (hi - lo) / 2 or (lo + hi) >>> 1; plain (lo + hi) / 2 overflows int for large arrays, a bug that once sat in the JDK's own binary search.
  3. Keep one interval convention: a closed range uses lo <= hi and mid plus or minus 1; a half-open range [lo, hi) uses lo < hi and hi = mid. Mixing them produces infinite loops or skipped elements.
  4. Show the lower-bound variant for duplicates: with a half-open range, if a[mid] < target then lo = mid + 1, else hi = mid; return lo as the first index with a[i] >= target. Running it for target and target + 1 gives the first and last occurrence.
  5. Know the Java API: Arrays.binarySearch returns the index, or -(insertionPoint) - 1 when absent, and makes no promise about which duplicate it finds. Test an empty array, one element, a target below the minimum and above the maximum, and duplicates.
Follow-up
  • Search for a target in a sorted array that has been rotated at an unknown pivot.
  • Return the first and last position of a target in a sorted array with duplicates.
  • How would you use binary search on the answer, for example an integer square root?

Write a program to check if a string is a palindrome.

medium
Coding / Algorithms

Write a program to check if a string is a palindrome.

Approach
  1. Use two pointers: i from the start, j from the end, compare s.charAt(i) and s.charAt(j) and move inward while i < j. O(n) time and O(1) space, better than building a reversed copy and comparing, which costs O(n) extra.
  2. Clarify the rules first: case-sensitive or not, and whether spaces and punctuation count. For a phrase like "A man, a plan, a canal: Panama", skip characters where Character.isLetterOrDigit is false and compare Character.toLowerCase of each side.
  3. Cover the edge cases: the empty string and a single character are palindromes; decide how to treat null; the i < j condition handles even and odd lengths without special cases.
  4. For non-ASCII text, comparing chars splits surrogate pairs, so compare code points if that input is in scope.
  5. Have the variants ready: palindrome after deleting at most one character (on the first mismatch, check both skip options, O(n) total), longest palindromic substring by expanding around each centre (O(n^2) time, O(1) space), and an integer palindrome check done without converting to a string.
Follow-up
  • Return true if the string can become a palindrome by deleting at most one character.
  • Find the longest palindromic substring of a string.
  • Check whether a singly linked list is a palindrome using O(1) extra space.

The plan follows the four reported rounds and their topics: Java and OOP, data structures and coding, SQL, design and debugging scenarios, then behavioral stories. Each day ends with something you can write down and 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 your CV
  • Write the four reported rounds in order and next to each one a sentence on what you still need to find out about its format
  • List every technology on your CV and mark the ones you could not discuss for several minutes
  • Compare your CV with the requirements candidates describe: Java or Python, web basics, databases, Git

Deliverable: A one-page loop map and a CV technology list with a defend, refresh or remove mark on each item.

02Java and OOP fundamentals
  • Answer the polymorphism question aloud with a coded example showing overriding and overloading
  • Explain linked list versus array: memory layout, access cost, insertion cost and cache behaviour
  • Write a half-page note on garbage collection in Java covering reachability and generations, and an answer to stack versus queue

Deliverable: A one-page Java cheat sheet and two recorded spoken answers, one on polymorphism and one on linked list versus array.

Practice prompt ↗Practice prompt ↗
03Coding tasks in Java
  • Write reverse string and palindrome in Java without an IDE, then add case-insensitive and alphanumeric-only variants
  • Write largest element, duplicate detection (hash set, then sorting, then the in-place variant) and binary search
  • Implement a stack using two queues, then using one queue

Deliverable: Five working Java files plus a table of time and space complexity for each, with the edge cases you tested.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
04SQL and database fundamentals
  • Work through the two SQL practice drills, one on keyset paging and one on an owner filter that ignores an index
  • Write queries over a small schema using joins, grouping and subqueries, and check them with an EXPLAIN
  • Sketch a multi-user schema with keys, indexes and transaction boundaries, and explain the isolation level you would choose

Deliverable: Two solved SQL drills, a one-page schema sketch with its indexes and a short note on isolation and locking.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Web architecture and scenario questions
  • Draw the MVC request flow for an app you know and write what each part owns
  • Write the case for RESTful APIs and one case where REST is a poor fit
  • Rehearse a debugging sequence, a web-security checklist and an approach to a project with unclear requirements

Deliverable: An MVC diagram, a REST pros-and-cons note and spoken answers to the debugging, security and unclear-requirements questions.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
06System design practice
  • Design the scalable chat application: connections, message storage, delivery and ordering
  • Design the high-traffic e-commerce site: read and write paths, caching, inventory consistency and failure of a dependency
  • Answer the performance, distributed-consistency and microservices questions with named trade-offs

Deliverable: Two component diagrams with the first bottleneck marked, and a one-paragraph answer for each of the three remaining design questions.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Behavioral stories and a full run-through
  • Write the five behavioral stories so each states your decision, your alternatives and your result
  • Rehearse them aloud, then add the conflict and deadline-at-risk prompts
  • Do one mixed mock run: a coding task, a Java concept, a design question and two behavioral prompts

Deliverable: Five written stories using I, and one recorded mock run with a list of the answers you want to tighten.

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

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

Candidates describe the Behavioral Evaluations round as a check on interpersonal skills and fit. The reported prompts are short and general, so the work is in the stories behind them. Prepare engineering examples in which you made a decision, handled a disagreement or took feedback, and state your own part in each.

Describe a time when you faced a significant challenge at work. How did you handle it?

medium
Behavioral / Leadership

Describe a time when you faced a significant challenge at work. How did you handle it?

Approach
  1. Choose a technical challenge you personally owned, such as a production defect, a slow query, a failed release or an integration that kept breaking. Avoid a vague story about heavy workload.
  2. Set the scene in two sentences, then name the decision you made. Describe the options you considered and why you rejected the others, because the reasoning is the answer.
  3. Describe the actions in order, in the first person singular: what you investigated, what you changed, who you involved and when you asked for help.
  4. Close with a result you can state in concrete terms, such as errors dropped, a release shipped or a query's runtime fell, plus one lesson that changed how you work afterwards.
  5. The story that sinks this answer is one where the challenge belonged to someone else, the outcome is missing, or every action is described as what the team did.
Follow-up
  • What would you do differently if you faced the same problem again?
  • How did you know your fix worked rather than the problem going away by itself?
  • Who disagreed with your approach, and how did you resolve it?

How do you prioritize your tasks when working on multiple projects?

medium
Behavioral / Leadership

How do you prioritize your tasks when working on multiple projects?

Approach
  1. Give a repeatable method before the example: list everything with its deadline, who depends on it and the cost of delay, then estimate effort and order the work by impact against effort.
  2. Name the conversation, not only the list. When two projects collide, tell the stakeholders the trade-off, for example that one date moves, and ask which they would rather keep.
  3. Anchor it in a real case: two deliverables due in the same week, what you ranked first, what you postponed or cut and what you told people about it.
  4. Mention how you protect urgent interruptions, such as a production bug, by keeping slack in your plan, and how you re-check priorities when requirements change.
  5. Avoid answering with only a tool or a task list. The answer needs a decision you made and something you consciously gave up.
Follow-up
  • What do you do when two stakeholders each insist their project is the top priority?
  • Tell me about something you dropped or postponed and what it cost.
  • How do you handle a project deadline that is at risk partway through?

Can you give an example of how you worked effectively within a team?

medium
Behavioral / Leadership

Can you give an example of how you worked effectively within a team?

Approach
  1. Pick a story with a shared goal, such as a feature, a migration or a release, where your contribution is specific and checkable: you reviewed code, paired on a hard bug, defined an interface other people built against, or unblocked a teammate.
  2. Describe how the team coordinated in practice: pull requests and review through Git, short syncs, an agreed task split or written API contracts. This shows you understand how engineers work together.
  3. Include a moment of friction, such as a disagreement on a design or a missed handoff, and how you resolved it with evidence or a conversation instead of escalating.
  4. State the outcome for the team as well as for yourself, and what you changed afterwards in how you collaborate.
  5. Do not tell a hero story where you did everything alone, and do not hide inside the word we so that your own part cannot be identified.
Follow-up
  • Tell me about a time you had a conflict with a team member and how you resolved it.
  • How do you make sure your ideas are understood by the people building with you?
  • What did you do when a teammate was behind and the work was at risk?

What motivates you to perform your best at work?

medium
Behavioral / Leadership

What motivates you to perform your best at work?

Approach
  1. Answer with a pattern drawn from real moments rather than a slogan. For instance, name the kind of work that pulled you in, such as tracing a hard bug to its cause or shipping a feature a user then used, and give one concrete episode.
  2. Connect the pattern to what a Software Engineer does day to day: building, testing, debugging and improving applications, and learning from teammates in code review. Do not claim knowledge of the employer's values beyond what you can verify.
  3. Show it influenced your behaviour, for example that you stayed to fix the root cause or took on a harder task because the work engaged you, and say what result followed.
  4. Be honest about what drains you as well, and how you keep quality up on routine work, so the answer sounds like a real person.
  5. Avoid answers that are only about salary or title, or a generic claim to love challenges with no example behind it.
Follow-up
  • Tell me about a time your motivation was low and what you did about it.
  • What kind of task or environment would reduce your motivation most?
  • How do you stay engaged when the work is routine maintenance rather than new building?

How do you handle feedback and criticism?

medium
Behavioral / Leadership

How do you handle feedback and criticism?

Approach
  1. Use a specific piece of feedback you received, ideally from a code review or a retrospective, such as a pull request that was challenged for naming, test coverage or complexity. Show that it stung a little and that you considered it anyway.
  2. Show your sequence: you listened and asked a clarifying question, checked the claim against evidence, then decided what to change. Say what you changed in the code or your habits.
  3. Prove the change stuck: a later review went more smoothly, you added a checklist or tests, or you started giving the same kind of feedback to others.
  4. Cover the case where you disagreed with the feedback. Explain how you tested your view, presented your reasoning and accepted the outcome either way.
  5. The answer fails when it is a disguised strength such as I work too hard, when it turns defensive, or when it names no concrete behaviour change.
Follow-up
  • Tell me about feedback you disagreed with and what you did.
  • How do you give critical feedback to a peer, and how do they usually respond?
  • What is the most recent thing you changed because of feedback?
  • 01

    Describe a time when you faced a significant challenge at work. How did you handle it?

  • 02

    How do you prioritize your tasks when working on multiple projects?

  • 03

    Can you give an example of how you worked effectively within a team?

  • 04

    What motivates you to perform your best at work?

  • 05

    How do you handle feedback and criticism?

  • 06

    Tell me about a time you had a conflict with a team member and how you resolved it.

PracHub preparation framework ↗
How many rounds are there and how long does the process take?

Candidates report four rounds: Initial Screening, Coding Tests, Technical Interviews and Behavioral Evaluations, over roughly three to five weeks. Other reports mention anything from a few weeks to a couple of months depending on scheduling, and the format can vary by team.

C5i Software Engineer candidate reports ↗
What topics do reported questions cover?

The reported topics are Java, data structures and algorithms, resume-based technical questions, object-oriented programming and SQL. Specific questions include polymorphism, linked list versus array, a stack built from queues, string and array coding tasks, MVC, REST, debugging, security and system design.

C5i Software Engineer candidate reports ↗
Which programming language should I use?

The requirements list Java or Python as must-haves, and several reported questions are written in Java, such as reversing a string and explaining polymorphism. Use Java if you are comfortable in it. If Python is your stronger language, confirm that is acceptable before a coding test and still learn the Java concepts.

C5i Software Engineer candidate reports ↗
Is the coding test live or an online assessment?

Candidates say they may be asked to complete coding tests, but the reports do not give the format. Practise both: write code without autocomplete, and talk through your approach aloud as you type. Ask the recruiter how the test is run when you schedule it.

C5i Software Engineer candidate reports ↗
How should I prepare for resume-based technical questions?

Pick each project on your CV and prepare the architecture, your own contribution, one bug you diagnosed and one decision you would change. Remove technologies you cannot explain. Be ready to go from the high-level design down to code-level detail.

C5i Software Engineer candidate reports ↗
Do I need cloud, front-end framework or DevOps knowledge?

Those appear in the requirements as nice-to-haves, while Java or Python, web basics, databases and version control are must-haves. Prioritise the must-haves, then learn enough about AWS or Azure, React or Angular and deployment to say how you have used them or how you would start.

C5i 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.