nrml

Coding interview practice in real repositories

Investigate a bug, review an AI proposal, and verify a change in an existing application. Explore each scenario before you start an interview.

21 problems

  • Centralize authorization across reads, updates, lists, and administrative access.

    Difficulty
    Medium
    Estimated time
    45 min
    Topic
    Security

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Replace a per-row lookup with one batched load without changing the report output.

    Difficulty
    Medium
    Estimated time
    45 min
    Topic
    Databases

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Re-derive every entry checksum so edited content cannot hide behind an intact chain.

    Difficulty
    Hard
    Estimated time
    50 min
    Topic
    Security

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Preserve fractional refill credits while isolating client quotas.

    Difficulty
    Medium
    Estimated time
    40 min
    Topic
    Performance

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Repair reciprocal rank fusion in a retrieval workbench while preserving catalog tools and search explanations.

    Difficulty
    Medium
    Estimated time
    40 min
    Topic
    AI

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Evict samples outside the window and rank percentiles correctly so a stale burst stops skewing the dashboard.

    Difficulty
    Medium
    Estimated time
    45 min
    Topic
    Performance

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Track consecutive failures and a half-open trial so a recovered dependency is used again.

    Difficulty
    Medium
    Estimated time
    45 min
    Topic
    Reliability

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Repair tied-timestamp cursors, tenant isolation, and end-of-feed detection.

    Difficulty
    Medium
    Estimated time
    40 min
    Topic
    APIs

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Handle retries, invalid events, and conflicting identities without corrupting balances.

    Difficulty
    Hard
    Estimated time
    50 min
    Topic
    Backend

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Replace serialized comparison with a structural walk that reports where values diverge.

    Difficulty
    Medium
    Estimated time
    40 min
    Topic
    Testing

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Build a quote-aware field scanner so imported data survives commas inside values.

    Difficulty
    Easy
    Estimated time
    35 min
    Topic
    Feature Implementation

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Repair historical feature reconstruction so late data, corrections and deletions cannot leak into training rows.

    Difficulty
    Hard
    Estimated time
    75 min
    Topic
    Machine Learning

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Handle duplicate deliveries, stale versions, and tombstones in a projection service.

    Difficulty
    Hard
    Estimated time
    55 min
    Topic
    Distributed Systems

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Ship resilient retries without duplicating writes or resetting request deadlines.

    Difficulty
    Medium
    Estimated time
    45 min
    Topic
    Reliability

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Repair threshold decisions and confusion-matrix metrics in a model evaluation desk.

    Difficulty
    Easy
    Estimated time
    35 min
    Topic
    Machine Learning

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Build reproducible deployment waves with cycle and missing-service diagnostics.

    Difficulty
    Hard
    Estimated time
    55 min
    Topic
    Refactoring

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Untangle expiration, recency, and cached null values in a shared cache.

    Difficulty
    Medium
    Estimated time
    45 min
    Topic
    Debugging

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Enforce the version check a collaborative writer skips, so a stale edit loses instead of winning.

    Difficulty
    Hard
    Estimated time
    50 min
    Topic
    Concurrency

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Introduce expiring leases and ownership checks for concurrent workers.

    Difficulty
    Hard
    Estimated time
    55 min
    Topic
    Concurrency

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Redact nested credentials without damaging ordinary event data.

    Difficulty
    Medium
    Estimated time
    40 min
    Topic
    Security

    TypeScript, Python, Java, C, C++, Go (Golang), Rust

  • Replace modulo sharding with a hash ring so a joining node moves few keys, not all of them.

    Difficulty
    Hard
    Estimated time
    50 min
    Topic
    Distributed systems

    TypeScript, Python, Java, C, C++, Go (Golang), Rust