Back to General STAR Scenarios
Q2Question 2 of 10

Identifying a Problem Before Anyone Else Noticed: what did you do?

Key Concepts
  • The best problems are the ones you catch as a faint signal before they become incidents.
  • Watch leading indicators and trends, not just threshold alarms.
  • Turn a hunch into quantified evidence before acting.
  • Project a trend forward to estimate when it becomes critical.
  • Fix the issue while it is still small and no customer has been affected.
  • The proactive mindset is the differentiator: reactive engineers wait for the alarm.
  • Leave behind a monitor so the next occurrence is caught automatically.

Definition

The best problems are the ones you catch as a faint signal and fix before they ever become an incident.
  • Leading indicators – Watch trends and anomalies, not just alarms that fire after the damage.
  • Hunch to evidence – Convert a vague worry into concrete data before acting.
  • Trend projection – Calculate when a resource will hit its limit based on the growth rate.
  • Early fix – Resolve the issue while it is small and invisible to customers.
  • Monitor left behind – Add an alert so the next occurrence is caught automatically.
  • Proactive mindset – Reactive engineers wait for alarms; proactive ones prevent them.

Imagine you notice that the daily transfer volume at National Bank of India is creeping up and the database connection pool is slowly filling, long before anything breaks. Spotting a problem early is like noticing the vault door hinge loosening before it fails: you fix it quietly and no customer ever experiences the outage.

Understanding the Concepts

What is this question really testing?

Proactiveness and attention to detail. The interviewer wants to see that you notice early warning signs others miss and act to prevent an incident.

JAVA
package com.bank.interview;
public class ProactivenessTest {
    enum Type { PROACTIVE, REACTIVE }
    public static Type evaluate(boolean noticedTrend, boolean actedEarly) {
        return (noticedTrend && actedEarly) ? Type.PROACTIVE : Type.REACTIVE;
    }
    public static void main(String[] args) {
        System.out.println(evaluate(true, true)); // PROACTIVE
    }
}

What was the faint signal?

The number of open database connections used by the transfer service at National Bank of India was slowly creeping upward, even though nothing was broken and no alarm had fired.

JAVA
package com.bank.service;
import java.util.logging.Logger;
public class FaintSignal {
    private static final Logger log = Logger.getLogger(FaintSignal.class.getName());
    public static void main(String[] args) {
        int day1 = 52, day2 = 60, day3 = 68;
        int poolMax = 100;
        log.info("Day 1: " + day1 + "/" + poolMax + " connections");
        log.info("Day 2: " + day2 + "/" + poolMax + " connections");
        log.info("Day 3: " + day3 + "/" + poolMax + " connections");
        log.info("Trend: +8/day. No alarm yet, but clearly growing.");
    }
}
TEXT
Day 1: 52/100 connections
Day 2: 60/100 connections
Day 3: 68/100 connections
Trend: +8/day. No alarm yet, but clearly growing.

How did you turn the hunch into evidence?

I pulled daily readings, calculated the growth rate, and projected when the pool would exhaust.

JAVA
package com.bank.service;
public class TrendProjection {
    public static void main(String[] args) {
        int currentUsage = 68;
        int poolMax = 100;
        int growthPerDay = 8;
        int remaining = poolMax - currentUsage;
        int daysUntilExhaustion = remaining / growthPerDay;
        System.out.println("Current: " + currentUsage + "/" + poolMax);
        System.out.println("Growth: +" + growthPerDay + "/day");
        System.out.println("Exhaustion in: ~" + daysUntilExhaustion + " days");
        System.out.println("This turns a hunch into a dated warning.");
    }
}
TEXT
Current: 68/100
Growth: +8/day
Exhaustion in: ~4 days
This turns a hunch into a dated warning.

How did you find and fix the root cause?

Dug into the code and found connections not being released on a particular error path. Fixed the leak and verified usage flattened.

JAVA
package com.bank.service;
import java.util.logging.Logger;
public class LeakFix {
    private static final Logger log = Logger.getLogger(LeakFix.class.getName());
    public static void main(String[] args) {
        log.info("Root cause: connection not released on timeout error path");
        log.info("Fix: added finally block to release connection on all paths");
        log.info("Verified: connection usage flattened at 52/100 after fix");
        log.info("No customer ever experienced an outage.");
    }
}

How did you leave behind a monitor?

Added an alert on connection usage crossing eighty percent, so the next slow leak is caught automatically instead of relying on someone happening to notice.

JAVA
package com.bank.service;
public class PoolMonitor {
    public static void main(String[] args) {
        int threshold = 80; // percent
        System.out.println("Alert: fires when pool usage > " + threshold + "%");
        System.out.println("Effect: next leak caught automatically, not by luck");
    }
}

Why is the proactive mindset a differentiator?

Reactive engineers wait for the alarm. Proactive engineers watch trends and fix issues before the alarm ever fires. The prevented incident is invisible but far more valuable.

JAVA
package com.bank.interview;
public class ProactiveValue {
    public static void main(String[] args) {
        System.out.println("Reactive: alarm fires -> scramble to fix -> customers affected");
        System.out.println("Proactive: trend noticed -> fixed quietly -> no customer impact");
        System.out.println("The incident that never happened is the best incident.");
    }
}

What was the impact?

Fixed the leak well before the projected exhaustion date. No customer ever experienced the outage that would otherwise have been inevitable.

JAVA
package com.bank.interview;
public class EarlyDetectionResult {
    public static void main(String[] args) {
        System.out.println("Projected outage: 4 days away");
        System.out.println("Fixed: 4 days before projected outage");
        System.out.println("Customer impact: zero");
        System.out.println("Monitor added: next leak auto-detected");
    }
}

What are common interview follow-up questions?

JAVA
package com.bank.interview;
public class EarlyDetectionFollowUps {
    public static void main(String[] args) {
        System.out.println("How did you notice? -> Daily habit of checking resource dashboards");
        System.out.println("Was it in your job? -> Not explicitly, but I care about system health");
        System.out.println("Monitor still useful? -> Fired twice since, catching leaks before damage");
    }
}

Visual Overview

DIAGRAM
┌────────────────────────────────────────────────────────┐
│         Early Problem Detection Flow                   │
├────────────────────────────────────────────────────────┤
│  ┌──────────────────┐                                  │
│  │ 1. NOTICE TREND   │  Connections: 52 → 60 → 68      │
│  │    (no alarm yet) │  +8/day, pool max = 100          │
│  └────────┬─────────┘                                  │
│           ▼                                            │
│  ┌──────────────────┐                                  │
│  │ 2. QUANTIFY       │  Exhaustion in ~4 days            │
│  │    (project trend)│  Hunch → dated warning            │
│  └────────┬─────────┘                                  │
│           ▼                                            │
│  ┌──────────────────┐                                  │
│  │ 3. FIX            │  Found leak on error path         │
│  │    (root cause)   │  Added finally block               │
│  └────────┬─────────┘                                  │
│           ▼                                            │
│  ┌──────────────────┐                                  │
│  │ 4. MONITOR        │  Alert at 80% pool usage          │
│  │    (durable)      │  Next leak auto-detected           │
│  └──────────────────┘                                  │
│                                                        │
│  Customer impact: ZERO (prevented before it happened)   │
└────────────────────────────────────────────────────────┘

Key Takeaway

At National Bank of India, I noticed over a few days that the database connections used by the transfer service were slowly creeping upward, even though nothing was broken and no alarm had fired. The steady upward trend was the signature of a slow connection leak.

I turned the hunch into evidence by calculating the growth rate and projecting that the pool would exhaust in roughly four days. With that evidence, I dug into the code, found connections not being released on a particular error path, and fixed the leak. Connection usage flattened, well before the projected exhaustion date.

Because I caught it early, no customer like Rajesh or Priya ever experienced the transfer outage that would otherwise have been inevitable. I also added a pool usage alert at eighty percent so the next slow leak would be caught automatically.

What I learned is that the most valuable problems are the ones you catch as a quiet trend before they become an incident. Watch leading indicators, convert hunches into quantified projections, and fix issues while they are still small.

Remember one sentence: Watch leading indicators and trends, project when they become critical, fix them before any customer is affected, and leave behind a monitor for the next occurrence.

---

Share
Use ← → arrow keys to navigate