cswork / libraryOpen practice workspace

Interview guides · Credgenics

Credgenics Software Engineer Interview Guide

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

The 60-second brief

As a Software Engineer at Credgenics, you are at the core of building high-performance technology that powers the debt collections and legal recovery ecosystem. You will work on complex, high-scale systems that bridge the gap between financial institutions and technology, directly impacting the efficiency of credit recovery processes. Your contributions ensure that our platforms remain robust, scalable, and responsive to the needs of our clients. The role demands a combination of rigorous problem-solving and technical versatility. You will navigate high-stakes engineering challenges, from optimizing data processing pipelines—often involving Kafka—to crafting seamless user experiences with modern front-end frameworks.

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

Focus areas

  • Apache Kafka
  • Data Structures & Algorithms (DSA)
  • System Design

The Credgenics interview process

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

Initial Assessment

Candidates undergo a virtual coding assessment to evaluate technical skills.

What to demonstrate

  • Candidates undergo a virtual coding assessment to evaluate technical skills
  • Depth in Apache Kafka

How to prepare

  • Answer aloud and timed: Solve for the Longest Increasing Subsequence (LIS) length and array reconstruction.
  • Answer aloud and timed: Implement the 3-Sum problem and valid parenthesis checker.

Technical Discussions

In-depth technical discussions to further assess technical aptitude.

What to demonstrate

  • In-depth technical discussions to further assess technical aptitude
  • Depth in Apache Kafka

How to prepare

  • Answer aloud and timed: Apply sliding window techniques to array problems.
  • Answer aloud and timed: Solve the activity selection problem.

Managerial Rounds

Final rounds with management to evaluate cultural alignment and fit.

What to demonstrate

  • Final rounds with management to evaluate cultural alignment and fit
  • Depth in Apache Kafka

How to prepare

  • Answer aloud and timed: Implement dynamic programming solutions for standard optimization problems.
  • Answer aloud and timed: Explain the internal workings of React and the Virtual DOM.

Where candidates lose points

Think Aloud

When solving DSA problems, verbalize your thought process. Even if your code isn't perfect, the interviewer values the logic behind your approach.

Review Your Projects

Be prepared to discuss the hardest bug you fixed or the most complex architectural decision you made in your previous roles.

Stay Humble and Collaborative

Interviewers look for team players. If you get stuck, ask for a hint—it shows you are coachable.

Research the Domain

Understanding the basics of debt collection or financial technology will help you provide better context during your answers.

Questions & practice

Solve for the Longest Increasing Subsequence (LIS) length and array reconstruction.

Medium · Data Structures and Algorithms

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?

Implement the 3-Sum problem and valid parenthesis checker.

Medium · Data Structures and Algorithms

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?

Apply sliding window techniques to array problems.

Medium · Data Structures and Algorithms

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?

Solve the activity selection problem.

Medium · Data Structures and Algorithms

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?

Implement dynamic programming solutions for standard optimization problems.

Medium · Data Structures and Algorithms

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 complex SQL queries to handle data retrieval and aggregation.

Medium · Technical Domain and Web Fundamentals

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 your choice of database schema for a specific project.

Medium · System Design and Projects

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 internal workings of React and the Virtual DOM.

Medium · Technical Domain and Web Fundamentals

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?

Compare and contrast different JavaScript bundlers like Webpack, Parcel, and Rollup.

Medium · Technical Domain and Web Fundamentals

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?

Discuss the lifecycle of an HTTP request and core HTML/CSS concepts.

Medium · Technical Domain and Web Fundamentals

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 the role of Kafka in a distributed backend architecture.

Medium · Technical Domain and Web Fundamentals

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?

Walk through the architecture of your most significant project.

Medium · System Design and Projects

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 would you design a system to handle high-throughput message streaming?

Medium · System Design and Projects

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 Credgenics candidates report.

Day 1 — Map the Credgenics loop

  • Write out the reported sequence: Initial Assessment, Technical Discussions, Managerial Rounds.
  • For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.

Deliverable: A one-page map of the 3 reported rounds, with the weakest marked.

Day 2 — Work Apache Kafka

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

Deliverable: One timed worked example in Apache Kafka.

Day 3 — Work Data Structures & Algorithms (DSA)

  • Spend the session on Data Structures & Algorithms (DSA), which Credgenics candidates report being tested on.
  • Write one worked example in Data Structures & Algorithms (DSA) and time yourself on it.

Deliverable: One timed worked example in Data Structures & Algorithms (DSA).

Day 4 — Work System Design

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

Deliverable: One timed worked example in System Design.

Day 5 — Answer out loud: Data Structures and Algorithms

  • Answer aloud, timed: Solve for the Longest Increasing Subsequence (LIS) length and array reconstruction.
  • Answer aloud, timed: Implement the 3-Sum problem and valid parenthesis checker.

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

Day 6 — Answer out loud: Technical Domain and Web Fundamentals

  • Answer aloud, timed: Explain the internal workings of React and the Virtual DOM.
  • Answer aloud, timed: Compare and contrast different JavaScript bundlers like Webpack, Parcel, and Rollup.

Deliverable: Spoken answers to 2 reported Technical Domain and Web Fundamentals question(s), under time.

Day 7 — Answer out loud: System Design and Projects

  • Answer aloud, timed: Walk through the architecture of your most significant project.
  • Answer aloud, timed: How would you design a system to handle high-throughput message streaming?

Deliverable: Spoken answers to 2 reported System Design and Projects question(s), under time.

Behavioural preparation

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

How do you handle concurrency and state management in your applications?

Medium · System Design and Projects

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?

Reverse your own decision and price the reversal

Medium · reversibility · measurement · migrations

Describe a technical decision you made and later reversed. Pick one that cost something: a service you split and merged back, a cache you added and removed, an index you created that pushed the planner onto a worse plan, a projection you rebuilt from scratch. State what you believed when you decided, the measurement that changed your mind, how long the wrong version ran in production, and what the reversal cost in migrations, dual writes, and a deprecation window for callers you did not own.

Approach

  1. State the original rationale without irony, in the version you would still defend given what was known then. If it is not defensible, the story is about carelessness rather than judgement, and a different example serves you better.
  2. Give the measurement that moved with a before and after: the p99 that did not improve, the cache hit rate that sat at 40%, the plan that flipped to a sequential scan once the table passed a size you can name.
  3. Cost the reversal in steps, not adjectives: expand-and-contract deploys, the dual-write window, the callers who had to be notified, the rows already written in the wrong shape that had to be backfilled or abandoned.
  4. Distinguish reversal from rewrite by naming what you kept. Most good reversals preserve the schema or the interface and undo one decision inside it, which is also why they were affordable.

Follow-up

  • What in that decision was irreversible, and did you know it was irreversible when you made it?
  • How did you tell the people who had already built on top of the original decision?

Tell callers you do not own that their integration breaks

Medium · deprecation · compatibility · stakeholders

A field in a write endpoint's response must change shape. You own the endpoint; you do not own the four internal callers or the outbound webhook consumers who read it. Describe a deprecation you were responsible for: what you shipped first, how you established who was actually reading the field, the window you gave and what set its length, what you did about the consumer who never moved, and how you decided removal was safe. Name the signal you used, not the announcement you sent.

Approach

  1. Establish the reader set empirically rather than from a wiki of owners: per-field usage counters keyed by principal, or access logs attributed to a consumer. State the blind spot of whichever you pick, since a consumer that reads the field only on a monthly job will not appear in a week of logs.
  2. Ship additive first. Populate the new field alongside the old one so no reader is forced to move, which is also what keeps a rolling deploy safe, because old and new instances answer the same requests at the same time and a rollback must still find the old shape present.
  3. Set the window from the slowest legitimate consumer's release cadence, not from your calendar, and decide separately what to do for a consumer with no release process at all, such as an external webhook endpoint you can only email.
  4. Convert silence into evidence before you rely on it: a short, low-traffic removal window that makes a still-dependent consumer fail visibly and loudly while you are watching, rather than at three in the morning after you have moved on.

Follow-up

  • How would you detect a consumer that reads the field only during a monthly export?
  • One caller refuses to move and has a commercial relationship behind it. What changes in your plan and what does not?