Interview guides · Kumaran Systems
Kumaran Systems Software Engineer Interview Guide
Kumaran Systems Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
As a Software Engineer at Kumaran Systems, you play a vital role in building, modernizing, and maintaining enterprise-grade applications for global clients across various industries, including financial services, insurance, and healthcare. The company specializes in legacy application modernization, custom software development, cloud migration, and data engineering. Your work directly impacts how client systems transition from legacy environments into modern, scalable architectures. Engineers at Kumaran Systems work across diverse technology stacks depending on client requirements, ranging from enterprise Java and modern.NET implementations to specialized data platforms like Azure, Databricks, and legacy systems like AS400.
This guide is scoped to a Software Engineer candidate at Kumaran Systems.
Focus areas
- Java
- Spring Boot
- SQL
The Kumaran Systems interview process
Kumaran Systems candidates report 5 rounds over 4-6 weeks. The stages below are what candidates describe, not a published process.
HR Screening Call
Initial call with HR to discuss the candidate's background and qualifications.
What to demonstrate
- Initial call with HR to discuss the candidate's background and qualifications
- 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.
Aptitude Assessment
Comprehensive assessment to evaluate the candidate's aptitude and basic technical skills.
What to demonstrate
- Comprehensive assessment to evaluate the candidate's aptitude and basic technical skills
- Depth in Java
How to prepare
- Answer aloud and timed: What are Java 8 Streams and Lambdas? Write a snippet to filter and collect elements from a list.
- Answer aloud and timed: Explain Hibernate lazy loading vs. eager loading and how session factory manages connections.
Technical Rounds
Multiple rounds focusing on live programming, core technical concepts, and architectural design.
What to demonstrate
- Multiple rounds focusing on live programming, core technical concepts, and architectural design
- Depth in Java
How to prepare
- Answer aloud and timed: What is the difference between class vs. instance, method overloading vs. overriding, and how does singleton scope work?
- Answer aloud and timed: What is the operational difference between the
DELETEandTRUNCATEcommands in SQL?
Managerial Discussion
Discussion with managerial staff to assess project alignment and communication skills.
What to demonstrate
- Discussion with managerial staff to assess project alignment and communication skills
- Depth in Java
How to prepare
- Answer aloud and timed: Write a query using
GROUP BY,HAVING, and aggregate functions to find duplicate records. - Answer aloud and timed: Explain primary keys, foreign keys, unique keys, and how indexing affects query performance.
Final HR Discussion
Final conversation with HR to discuss any remaining questions and cultural fit.
What to demonstrate
- Final conversation with HR to discuss any remaining questions and cultural fit
- Depth in Java
How to prepare
- Answer aloud and timed: How do transactions work in relational databases versus MongoDB (ACID compliance)?
- Answer aloud and timed: Explain stored procedures, views, and execution plan optimization in SQL Server or Oracle.
Where candidates lose points
Master core programming fundamentals
Do not just memorize syntax. Be prepared to explain execution mechanisms, memory handling, and edge cases for your preferred language.
Practice writing clean code without an IDE
Be ready to write and run code on notepad, whiteboards, or simple text platforms. Pay careful attention to boundary conditions, variable declarations, and loop termination logic.
Be ready to detail your projects
Interviewers place heavy emphasis on your resume. Be ready to explain your academic or professional project architecture, database schemas, and your personal contributions in detail.
Questions & practice
Explain the Java memory model, garbage collection, and how heap memory differs from stack memory.
Medium · Core Java & Enterprise Frameworks
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 program to reverse a string or integer without using built-in utility functions.
Medium · Algorithms & Hands-on Coding
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?
Write a function that extracts numbers from an alphanumeric string and returns their sum.
Medium · Algorithms & Hands-on Coding
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 check if a string is a palindrome, and how can you print custom pattern outputs?
Medium · Algorithms & Hands-on Coding
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?
Demonstrate how to swap two variables without using a third variable.
Medium · Algorithms & Hands-on Coding
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 convert an array into a list or remove duplicate elements from an array?
Medium · Algorithms & Hands-on Coding
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?
What is the operational difference between the DELETE and TRUNCATE commands in SQL?
Medium · Database & Data Management
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?
Write a query using GROUP BY, HAVING, and aggregate functions to find duplicate records.
Medium · Database & Data Management
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?
Explain primary keys, foreign keys, unique keys, and how indexing affects query performance.
Medium · Database & Data Management
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?
Explain stored procedures, views, and execution plan optimization in SQL Server or Oracle.
Medium · Database & Data Management
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?
How does the Spring DispatcherServlet work in a web application architecture?
Medium · Core Java & Enterprise Frameworks
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?
What are Java 8 Streams and Lambdas? Write a snippet to filter and collect elements from a list.
Medium · Core Java & Enterprise Frameworks
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?
Explain Hibernate lazy loading vs. eager loading and how session factory manages connections.
Medium · Core Java & Enterprise Frameworks
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 is the difference between class vs. instance, method overloading vs. overriding, and how does singleton s
Medium · Core Java & Enterprise Frameworks
What is the difference between class vs. instance, method overloading vs. overriding, and how does singleton scope work?
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 do transactions work in relational databases versus MongoDB (ACID compliance)?
Medium · Database & Data Management
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 is the difference between stateful and stateless authentication using JWT and REST APIs?
Medium · Web Technologies & Application Architect
Approach
- Say who the caller is and what they do when the call fails halfway.
- Define the identity of a request so a retry cannot double-apply it.
- Separate accepted, pending, failed and confirmed; they are different facts.
- 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?
Explain the role of Mixins and Serializers in frameworks like Django or Rails.
Medium · Web Technologies & Application Architect
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 Angular components communicate with services and pass data via dependency injection?
Medium · Web Technologies & Application Architect
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?
What are the key architectural differences between monolithic applications and microservices?
Medium · Web Technologies & Application Architect
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 AJAX mechanics and how modern frontend applications handle asynchronous API calls.
Medium · Web Technologies & Application Architect
Approach
- Say who the caller is and what they do when the call fails halfway.
- Define the identity of a request so a retry cannot double-apply it.
- Separate accepted, pending, failed and confirmed; they are different facts.
- 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?
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 Kumaran Systems candidates report.
Day 1 — Map the Kumaran Systems loop
- Write out the reported sequence: HR Screening Call, Aptitude Assessment, Technical Rounds, Managerial Discussion, Final HR Discussion.
- 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 5 reported rounds, with the weakest marked.
Day 2 — Work Java
- Spend the session on Java, which Kumaran Systems 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 Spring Boot
- Spend the session on Spring Boot, which Kumaran Systems 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 4 — Work SQL
- Spend the session on SQL, which Kumaran Systems candidates report being tested on.
- Write one worked example in SQL and time yourself on it.
Deliverable: One timed worked example in SQL.
Day 5 — Answer out loud: Core Java & Enterprise Frameworks
- Answer aloud, timed: Explain the Java memory model, garbage collection, and how heap memory differs from stack memory.
- Answer aloud, timed: How does the Spring DispatcherServlet work in a web application architecture?
Deliverable: Spoken answers to 2 reported Core Java & Enterprise Frameworks question(s), under time.
Day 6 — Answer out loud: Database & Data Management
- Answer aloud, timed: What is the operational difference between the
DELETEandTRUNCATEcommands in SQL? - Answer aloud, timed: Write a query using
GROUP BY,HAVING, and aggregate functions to find duplicate records.
Deliverable: Spoken answers to 2 reported Database & Data Management question(s), under time.
Day 7 — Answer out loud: Web Technologies & Application Architecture
- Answer aloud, timed: What is the difference between stateful and stateless authentication using JWT and REST APIs?
- Answer aloud, timed: Explain the role of Mixins and Serializers in frameworks like Django or Rails.
Deliverable: Spoken answers to 2 reported Web Technologies & Application Architecture question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
Argue against a design, lose, and commit anyway
Medium · disagreement · service boundaries · decision records
Describe a design you argued against and lost. State the failure you predicted as a named mechanism, not a feeling about complexity: two services that would need one transaction, a projection with no rebuild path, a write path with no idempotency key. Say what evidence you brought, what the decision maker weighed instead, and what you did after the decision was made: what you instrumented, what you wrote down, and whether the prediction came true. Five minutes.
Approach
- State the prediction in falsifiable form up front: the mechanism, the condition that triggers it, and the observable outcome. A prediction that cannot be checked also cannot be credited to you later.
- Show the evidence you had at the time and label each piece honestly as measured, analogous, or intuition. Keeping the intuition is fine; disguising it as data is the thing that erodes your standing in the next argument.
- Represent the opposing case at full strength, including the constraint you did not control: a fixed date, a team boundary, or the fact that the decision was cheap to reverse and yours was not.
- Make disagree-and-commit concrete. Name the artefact you left behind so the prediction could be settled without you: the alert and its threshold, the counter on the dashboard, the decision note that recorded the trade-off and the condition that would revisit it.
Follow-up
- What threshold on that alert would have proved you right, and did anyone ever look at it?
- If the same proposal arrived tomorrow with the same deadline, would you argue it the same way?
Narrate an outage you owned from page to postmortem
Hard · incident response · blast radius · postmortems
Pick an incident you personally drove, ideally one where writes were affected rather than reads. In six to eight minutes: state the symptom as it first appeared on a dashboard, the blast radius you established before you knew the cause, the mitigation you applied and when, the mechanism you eventually proved, and the follow-up that would prevent a repeat. Bring numbers: error rate, tenants affected, minutes to mitigate, minutes to resolve. If you cannot name what you measured, choose a different incident.
Approach
- Open on the signal rather than the cause: which metric at which percentile moved, on which service, at what time, so the listener follows the same evidence you had rather than a conclusion you already reached.
- Separate mitigation from diagnosis out loud. State what you did to stop the bleeding (flag off, shed traffic, drain a lease, roll back a deploy) and say plainly that you did it before the mechanism was known, because those are two jobs with different deadlines.
- Establish blast radius in countable terms: how many tenants, how many writes, and crucially whether the effect was loss or only delay. An append-only revision table or a pending outbox row means the change survived and the projection was merely behind, which is a repair rather than a data-loss incident.
- Prove the mechanism instead of asserting it. Name the trace span that grew, the plan that flipped to a sequential scan, the lease that expired, plus one alternative you ruled out and the signal that stayed flat while you ruled it out.
Follow-up
- What would you do differently in the first five minutes, given the same dashboard and no more information?
- Which follow-up action did you deliberately not take, and why was dropping it the right call?
Turn a code review disagreement into a decision
Easy · code review · optimistic concurrency · communication
A colleague's change updates a row with UPDATE resource SET version = version + 1 WHERE resource_id = $1 AND version = $2 and treats an affected-row count of zero as a successful no-op. You read that as a silently lost update; they think returning 200 is friendlier to clients than returning a conflict. Describe how you have handled a review disagreement of this shape: what goes in the comment, when you leave the thread, and who decides. Then write the comment you would leave here, in under 80 words.
Approach
- Sort the disagreement before writing anything. A silently discarded write is a correctness claim about data; the choice between 409 and 412 is taste. Only the first justifies blocking a merge, and saying which one you are doing is most of the value of the comment.
- Make the claim reproducible in the comment itself with an interleaving rather than a principle: A reads version 7, B reads version 7, B commits version 8, A's predicate matches zero rows, A is told it succeeded and A's edit is gone.
- Offer the alternative with its cost attached: return 409 carrying the current version and the revision that won, so the client can re-read and re-apply. Note that automatic retry is not the fix, because a retry re-reads the winner's state and reapplies an intent formed against data that no longer exists.
- Apply an escalation rule you can state: two round trips on the thread, then a call, and the service's owner decides rather than the reviewer. A reviewer who cannot be overruled is a bottleneck with extra steps.
Follow-up
- Where would you put the test that fails if someone reintroduces the swallowed zero rowcount?
- The author says clients cannot handle a 409. How do you check whether that is true?