Interview guides · Techminds Group
Techminds Group Software Engineer Interview Guide
Techminds Group Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
At Techminds Group, a Software Engineer is a foundational driver of technical execution, systems optimization, and digital transformation. Engineers here do not merely write code; they design and maintain highly scalable enterprise solutions, ranging from robust backend frameworks to critical network infrastructure. Because Techminds Group services a diverse and demanding client base, our engineering teams must balance rapid feature delivery with absolute system stability, performance, and security. As a Software Engineer based out of our Chennai technology hub, you will work on complex problem spaces that directly impact client operations and product ecosystems. Whether you are specializing as a Sr.
This guide is scoped to a Software Engineer candidate at Techminds Group.
Focus areas
- C Programming
- Software Engineering (General)
- .NET Framework
The Techminds Group interview process
Techminds Group candidates report 5 rounds over 4-6 weeks. The stages below are what candidates describe, not a published process.
HR Screening
Initial assessment to evaluate basic alignment with the role.
What to demonstrate
- Initial assessment to evaluate basic alignment with the role
- Depth in C Programming
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.
Written Assessment
Structured test evaluating aptitude, programming languages, database queries, and writing skills.
What to demonstrate
- Structured test evaluating aptitude, programming languages, database queries, and writing skills
- Depth in C Programming
How to prepare
- Answer aloud and timed: Write a program to reverse a singly linked list in place without using extra memory.
- Answer aloud and timed: Explain the concept of pointers to pointers in C and provide a practical use case.
Technical Interviews
In-depth interviews focusing on technical competence and problem-solving abilities.
What to demonstrate
- In-depth interviews focusing on technical competence and problem-solving abilities
- Depth in C Programming
How to prepare
- Answer aloud and timed: What are the differences between sorting techniques like Quick Sort and Merge Sort in terms of time and space complexity?
- Answer aloud and timed: Given a relational database model with Employee and Department tables, write a query to find the second-highest salary in each department.
Coding Test
Practical coding exercise to assess coding skills in real-time.
What to demonstrate
- Practical coding exercise to assess coding skills in real-time
- Depth in C Programming
How to prepare
- Answer aloud and timed: Explain the differences between INNER JOIN, LEFT JOIN, and outer joins with practical examples.
- Answer aloud and timed: How do you optimize a slow-performing SQL query, and what role do indexes play in database performance?
Final HR/Managerial Round
Final discussion with HR or management to evaluate fit and discuss next steps.
What to demonstrate
- Final discussion with HR or management to evaluate fit and discuss next steps
- Depth in C Programming
How to prepare
- Answer aloud and timed: What is database normalization, and when would you deliberately choose to denormalize a database?
- Answer aloud and timed: Write a query to identify duplicate records in a table and remove them while keeping only the unique entry with the lowest ID.
Where candidates lose points
Practice writing code on paper
Since the written test is a key component of the evaluation, practice writing syntax-accurate C code and SQL queries by hand without the aid of an IDE autocomplete.
Focus on SQL join syntax
Ensure you are comfortable writing complex SQL queries involving multiple tables, aggregate functions, and nested subqueries on paper.
Abandoning working code to chase the optimal solution
Get the straightforward version correct, state its complexity, and only then optimise, keeping the working version until the faster one passes the same cases. A correct quadratic solution with a stated path to linear beats a half-written optimal one that never ran.
Questions & practice
Explain the difference between structure and union in C, and describe how memory is allocated for each.
Medium · C Programming & Core Data Structures
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?
How do you implement a binary search tree, and what is its worst-case time complexity?
Medium · C Programming & Core Data Structures
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 program to reverse a singly linked list in place without using extra memory.
Medium · C Programming & Core Data Structures
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?
Explain the concept of pointers to pointers in C and provide a practical use case.
Medium · C Programming & Core Data Structures
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?
What are the differences between sorting techniques like Quick Sort and Merge Sort in terms of time and space
Medium · C Programming & Core Data Structures
What are the differences between sorting techniques like Quick Sort and Merge Sort in terms of time and space complexity?
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?
Given a relational database model with Employee and Department tables, write a query to find the second-highes
Medium · Database Design & SQL Queries
Given a relational database model with Employee and Department tables, write a query to find the second-highest salary in each department.
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 the differences between INNER JOIN, LEFT JOIN, and outer joins with practical examples.
Medium · Database Design & SQL Queries
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 do you optimize a slow-performing SQL query, and what role do indexes play in database performance?
Medium · Database Design & SQL Queries
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?
What is database normalization, and when would you deliberately choose to denormalize a database?
Medium · Database Design & SQL Queries
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 to identify duplicate records in a table and remove them while keeping only the unique entry wit
Medium · Database Design & SQL Queries
Write a query to identify duplicate records in a table and remove them while keeping only the unique entry with the lowest ID.
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 professional email to a client explaining a critical system outage and the steps being taken to resolv
Medium · Aptitude & Written Communication
Write a professional email to a client explaining a critical system outage and the steps being taken to resolve it.
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?
Draft a short essay on a given technical or social topic, demonstrating structured arguments and clear grammar
Medium · Aptitude & Written Communication
Draft a short essay on a given technical or social topic, demonstrating structured arguments and clear grammar.
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?
Solve a series of logical reasoning and quantitative aptitude questions within a timed window.
Medium · Aptitude & Written Communication
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?
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 Techminds Group candidates report.
Day 1 — Map the Techminds Group loop
- Write out the reported sequence: HR Screening, Written Assessment, Technical Interviews, Coding Test, Final HR/Managerial Round.
- For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.
Deliverable: A one-page map of the 5 reported rounds, with the weakest marked.
Day 2 — Work C Programming
- Spend the session on C Programming, which Techminds Group candidates report being tested on.
- Write one worked example in C Programming and time yourself on it.
Deliverable: One timed worked example in C Programming.
Day 3 — Work Software Engineering (General)
- Spend the session on Software Engineering (General), which Techminds Group candidates report being tested on.
- Write one worked example in Software Engineering (General) and time yourself on it.
Deliverable: One timed worked example in Software Engineering (General).
Day 4 — Work .NET Framework
- Spend the session on .NET Framework, which Techminds Group candidates report being tested on.
- Write one worked example in .NET Framework and time yourself on it.
Deliverable: One timed worked example in .NET Framework.
Day 5 — Answer out loud: C Programming & Core Data Structures
- Answer aloud, timed: Explain the difference between structure and union in C, and describe how memory is allocated for each.
- Answer aloud, timed: How do you implement a binary search tree, and what is its worst-case time complexity?
Deliverable: Spoken answers to 2 reported C Programming & Core Data Structures question(s), under time.
Day 6 — Answer out loud: Database Design & SQL Queries
- Answer aloud, timed: Given a relational database model with Employee and Department tables, write a query to find the second-highest salary in each department.
- Answer aloud, timed: Explain the differences between INNER JOIN, LEFT JOIN, and outer joins with practical examples.
Deliverable: Spoken answers to 2 reported Database Design & SQL Queries question(s), under time.
Day 7 — Answer out loud: Aptitude & Written Communication
- Answer aloud, timed: Write a professional email to a client explaining a critical system outage and the steps being taken to resolve it.
- Answer aloud, timed: Draft a short essay on a given technical or social topic, demonstrating structured arguments and clear grammar.
Deliverable: Spoken answers to 2 reported Aptitude & Written Communication question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
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?
Unblock an engineer without taking the keyboard
Easy · mentoring · leases · at-least-once
A teammate has spent two days on a job handler that occasionally writes duplicate rows. They are certain the queue is delivering twice by mistake. You suspect a lease expiring under a slow handler, so the job is running concurrently with itself. Describe how you have unblocked someone in this position: what you asked before offering a hypothesis, what you showed them rather than told them, and what you left them owning. Then say what you would do if their theory turned out to be the right one.
Approach
- Ask before diagnosing, and ask for things answerable from data they already have: the attempt count on the job rows that produced duplicates, the handler's observed duration against its lease expiry, and whether the duplicate rows share a natural key that a unique constraint could have caught.
- Teach the shape rather than the answer. A lease cannot distinguish a dead worker from a slow one, so a handler that outruns its lease is running twice by design, and deploys deliver the other half by killing handlers mid-run on every rollout. Both of their candidate theories produce identical duplicate rows, which is why the evidence has to come from timings rather than from argument.
- Hand over a checklist they execute: a natural key on every write the handler performs so the second copy collides rather than appends, the record of intent written before any external effect, a lease heartbeat while running, and the metric that shows it working.
- Keep ownership with them deliberately. Pair on the first write, then step back; if you finish it yourself you have closed one ticket and left the same person stuck on the next redelivery.
Follow-up
- How would you distinguish a genuine double-delivery from a lease expiry using only the data already stored?
- Their handler calls an external endpoint before recording that it did. What do you tell them to change first?
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?