Interview guides · Ishan Technologies
Ishan Technologies Software Engineer Interview Guide
Ishan Technologies Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
At Ishan Technologies, a Software Engineer plays a pivotal role in bridging the gap between cutting-edge software development and robust network infrastructure. As a leading ICT company, Ishan Technologies relies on its engineering team to build, configure, and maintain highly scalable systems that power enterprise-grade network and cloud solutions. Your work will directly impact the reliability and performance of critical digital infrastructure, serving a diverse portfolio of business clients. Unlike traditional software roles that focus solely on application-level code, the Software Engineer position at Ishan Technologies often requires a deep understanding of system integration, cloud orchestration platforms like OpenStack, and core computer networking.
This guide is scoped to a Software Engineer candidate at Ishan Technologies.
Focus areas
- Computer Networks
- Network Troubleshooting
- OpenStack (Cloud Infrastructure)
The Ishan Technologies interview process
Ishan Technologies candidates report 5 rounds over 4-6 weeks. The stages below are what candidates describe, not a published process.
Resume Shortlisting
Initial review of submitted resumes to identify qualified candidates.
What to demonstrate
- Initial review of submitted resumes to identify qualified candidates
- Depth in Computer Networks
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.
Online Screening Assessment
Assessment testing logical reasoning, aptitude, and core technical knowledge through multiple-choice questions.
What to demonstrate
- Assessment testing logical reasoning, aptitude, and core technical knowledge through multiple-choice questions
- Depth in Computer Networks
How to prepare
- Answer aloud and timed: Describe the process of configuring a virtual router and how routing tables are updated.
- Answer aloud and timed: What is CCNA-level routing, and how do you prevent routing loops in a medium-sized enterprise network?
Core Technical Rounds
Interviews focusing on domain expertise, including coding exercises and system architecture discussions.
What to demonstrate
- Interviews focusing on domain expertise
- Including coding exercises and system architecture discussions
How to prepare
- Answer aloud and timed: How does DNS resolution work, and how would you diagnose a failure in the DNS lookup process?
- Answer aloud and timed: Write a function in Java to find the first non-repeated character in a string and explain its time complexity.
Project Manager/Technical Director Interview
Discussion on system design, work methodologies, and team collaboration with a senior team member.
What to demonstrate
- Discussion on system design, work methodologies, and team collaboration with a senior team member
- Depth in Computer Networks
How to prepare
- Answer aloud and timed: How does garbage collection work in Java, and how can you optimize memory usage in a high-throughput application?
- Answer aloud and timed: Explain the concept of multi-threading. How do you prevent race conditions in a shared-resource environment?
HR Round
Final interview focusing on company culture, role expectations, and compensation alignment.
What to demonstrate
- Final interview focusing on company culture, role expectations, and compensation alignment
- Depth in Computer Networks
How to prepare
- Prepare three examples from your own work, each with a decision you made and an outcome you can quantify.
- Re-read the description of the hr round above and write down what you would ask to confirm before it.
Where candidates lose points
Prepare for ambiguity
You may be given open-ended troubleshooting scenarios. Start by asking clarifying questions to narrow down the scope before proposing a solution.
Highlight your adaptability
The technology landscape at Ishan Technologies is diverse. Show that you are comfortable switching between software development, script writing, and system configuration.
Do not overlook basic networking concepts
Candidates with strong software backgrounds occasionally fail because they cannot answer fundamental questions about subnets, routing protocols, or ports.
Questions & practice
Write a function in Java to find the first non-repeated character in a string and explain its time complexity.
Medium · Software Development & 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 does garbage collection work in Java, and how can you optimize memory usage in a high-throughput applicati
Medium · Software Development & Coding
How does garbage collection work in Java, and how can you optimize memory usage in a high-throughput application?
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 multi-threading. How do you prevent race conditions in a shared-resource environment?
Medium · Software Development & Coding
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 why the owner filter ignores the listing index
Medium · composite index · query plans · sort elimination
The only index on resource is (tenant_id, status, updated_at DESC, resource_id DESC). A new endpoint returns one user's resources across all statuses, newest created first: WHERE tenant_id = $1 AND owner_user_id = $2 ORDER BY created_at DESC LIMIT 20. On a tenant with 2M rows it takes 900 ms and EXPLAIN shows a sort above a large scan. Explain precisely why the existing index cannot serve it, give the index that can, and state which of these the new index still will not help: owner_user_id alone across tenants; the same query ordered by updated_at. PostgreSQL 16.
Approach
- Separate the two jobs an index does. For filtering, a composite btree is seekable only on a left prefix, so with no predicate on status the scan can at best range over tenant_id and test owner_user_id per row; PostgreSQL 16 has no btree skip scan to jump the unconstrained column.
- For ordering, the index is sorted by (status, updated_at) within a tenant and not by created_at, so the LIMIT cannot stop early: every matching row is read and then sorted. That is the 'Sort Method: top-N heapsort' line, and it is why the plan reads 2M rows to answer with 20.
- Derive the replacement from the access path — equality, equality, then the ordering column: CREATE INDEX CONCURRENTLY ON resource (tenant_id, owner_user_id, created_at DESC). The scan seeks to the (tenant, owner) range and walks 20 entries in order, so the Sort node disappears along with the row-read.
- Treat INCLUDE (title, status) as conditional, not free. An index-only scan still visits the heap for any row whose page is not marked all-visible, so on a table taking 1.2k writes/second the win depends on autovacuum keeping the visibility map current, and the wider index costs more on every insert.
Follow-up
- 90% of rows are status='active'. Would a partial index WHERE status = 'active' change your answer, and for which of the three queries?
- A dashboard runs this for 40 owners in one page load. What changes about the design?
Stop tag and share joins from fanning out a page
Medium · join fan-out · semi-joins · many-to-many
resource_tag is (resource_id, tag_id) with PK (resource_id, tag_id); resource_share is (resource_id, shared_with_user_id, permission). The tagged-and-shared listing inner-joins resource to both, filters tenant_id, tag_id = ANY($2) and shared_with_user_id = $3, orders by updated_at DESC and takes 50. Pages come back with fewer than 50 distinct resources and the total in the header is far too high. Explain the row multiplication, rewrite both the page query and the count query so each is correct, and name the index each one needs. PostgreSQL 16.
Approach
- Do the arithmetic against the predicates that are actually there. An inner join emits one row per matching child row, and both joins are filtered: tag_id = ANY($2) admits only the requested tags, shared_with_user_id = $3 admits one user's share rows. So a resource holding three of the requested tags and shared with $3 once yields three rows, not one — the multiplier is its count of matching tags times its share rows for that single user, and that second factor is 1 unless the table admits duplicate (resource_id, shared_with_user_id) pairs. LIMIT 50 then limits rows rather than resources, and COUNT(*) counts pairs — the header is the product, not the population.
- Reject DISTINCT as the fix. It deduplicates after the product has been built, so the planner must materialise and sort the fanned-out set before the LIMIT can apply, and it leaves any SUM or AVG in the same select list wrong.
- Rewrite both filters as semi-joins, keeping resource as the only row source: AND EXISTS (SELECT 1 FROM resource_tag rt WHERE rt.resource_id = r.resource_id AND rt.tag_id = ANY($2)) and the same shape against resource_share. A semi-join stops at the first match per resource and preserves the driving index order, so ORDER BY updated_at DESC, resource_id DESC LIMIT 50 still stops after 50 rows.
- Count with the same predicates and no join at all: SELECT count(*) FROM resource r WHERE r.tenant_id = $1 AND r.status = 'active' AND EXISTS (...) AND EXISTS (...). Nothing multiplies a resource, so the number is the population.
Follow-up
- The filter changes from 'any of these tags' to 'all of these tags'. Rewrite it and state what it costs relative to the ANY form.
- A resource can be shared with the same user twice under different permissions. Does your count change, and should it?
What are the primary differences between TCP and UDP, and when would you choose one over the other?
Medium · Computer Networks & Infrastructure
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?
Can you explain the OSI model layers and describe the primary function of the Network and Transport layers?
Medium · Computer Networks & Infrastructure
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?
Describe the process of configuring a virtual router and how routing tables are updated.
Medium · Computer Networks & Infrastructure
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 is CCNA-level routing, and how do you prevent routing loops in a medium-sized enterprise network?
Medium · Computer Networks & Infrastructure
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 does DNS resolution work, and how would you diagnose a failure in the DNS lookup process?
Medium · Computer Networks & Infrastructure
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?
Design a simple database schema for a network monitoring tool that tracks device uptime and latency.
Medium · Software Development & Coding
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 you ensure high availability and disaster recovery when configuring an OpenStack cloud environment?
Medium · System Troubleshooting & Problem-Solving
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?
A client reports that their cloud instance cannot connect to the database server. Walk me through your step-by
Medium · System Troubleshooting & Problem-Solving
A client reports that their cloud instance cannot connect to the database server. Walk me through your step-by-step diagnostic process.
Approach
- Establish what changed and when, before forming any theory.
- Pick a bisection that eliminates candidates whichever way it turns out.
- Check the instrumentation before believing the symptom.
- Separate the trigger from the cause; the deploy is rarely the bug.
Follow-up
- What would you look at first, and what would it rule out?
- How would you tell a cause from a coincidence here?
How do you troubleshoot high latency on a network configuration interface?
Medium · System Troubleshooting & Problem-Solving
Approach
- Establish what changed and when, before forming any theory.
- Pick a bisection that eliminates candidates whichever way it turns out.
- Check the instrumentation before believing the symptom.
- Separate the trigger from the cause; the deploy is rarely the bug.
Follow-up
- What would you look at first, and what would it rule out?
- How would you tell a cause from a coincidence here?
Suggested practice checklist
Built from the rounds and topics Ishan Technologies candidates report.
Day 1 — Map the Ishan Technologies loop
- Write out the reported sequence: Resume Shortlisting, Online Screening Assessment, Core Technical Rounds, Project Manager/Technical Director Interview, HR 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 Computer Networks
- Spend the session on Computer Networks, which Ishan Technologies candidates report being tested on.
- Write one worked example in Computer Networks and time yourself on it.
Deliverable: One timed worked example in Computer Networks.
Day 3 — Work Network Troubleshooting
- Spend the session on Network Troubleshooting, which Ishan Technologies candidates report being tested on.
- Write one worked example in Network Troubleshooting and time yourself on it.
Deliverable: One timed worked example in Network Troubleshooting.
Day 4 — Work OpenStack (Cloud Infrastructure)
- Spend the session on OpenStack (Cloud Infrastructure), which Ishan Technologies candidates report being tested on.
- Write one worked example in OpenStack (Cloud Infrastructure) and time yourself on it.
Deliverable: One timed worked example in OpenStack (Cloud Infrastructure).
Day 5 — Answer out loud: Computer Networks & Infrastructure
- Answer aloud, timed: What are the primary differences between TCP and UDP, and when would you choose one over the other?
- Answer aloud, timed: Can you explain the OSI model layers and describe the primary function of the Network and Transport layers?
Deliverable: Spoken answers to 2 reported Computer Networks & Infrastructure question(s), under time.
Day 6 — Answer out loud: Software Development & Coding
- Answer aloud, timed: Write a function in Java to find the first non-repeated character in a string and explain its time complexity.
- Answer aloud, timed: How does garbage collection work in Java, and how can you optimize memory usage in a high-throughput application?
Deliverable: Spoken answers to 2 reported Software Development & Coding question(s), under time.
Day 7 — Answer out loud: System Troubleshooting & Problem-Solving
- Answer aloud, timed: A client reports that their cloud instance cannot connect to the database server. Walk me through your step-by-step diagnostic process.
- Answer aloud, timed: How do you troubleshoot high latency on a network configuration interface?
Deliverable: Spoken answers to 2 reported System Troubleshooting & Problem-Solving question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
Describe a time when you had to debug a system failure under tight deadlines. What was your approach?
Medium · System Troubleshooting & Problem-Solving
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- 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?
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?