Learn

Practical coding & data

Clean, tested code for messy real-world data, written while you explain your thinking.

Roadmap: Engineering baseline, Interview readiness & senior judgment

Why it matters

FDE coding rounds look less like puzzle contests and more like a day at a customer site: parse this export, reconcile these records, make this paginator survive a flaky API, fix this bug in code you've never seen. Interviewers grade clear contracts, edge cases, tests and how well you talk through your thinking more than clever tricks.

What it's made of

  • Parsing JSON, CSV and logs defensively
  • Hash maps, sets and sliding windows for dedup, joins and quotas
  • Queues and state machines for job lifecycles
  • Pagination, cursors, retries and rate limiting
  • Caching (LRU, TTL) and idempotency registries
  • SQL: joins, CTEs and window functions
  • Tests first: edge cases, injected clocks, hand-traced examples
  • Reading and safely changing unfamiliar code

A time budget that works

For a 30-minute practical problem:

  • ~3 min: clarify inputs, outputs, errors and constraints. Ask about scale.
  • ~4 min: walk through two examples and outline your approach out loud.
  • ~15 min: write the code, narrating key decisions.
  • ~5 min: trace three test cases by hand, including an edge case.
  • ~3 min: complexity, and how you'd harden it for production.

The pattern families to drill

Most FDE coding problems are variations on a handful of themes:

  • Parsing and normalising messy input (configs, logs, exports).
  • Reconciliation and dedup with hash maps.
  • Rate limits and quotas with sliding windows.
  • Cursor pagination with retries and loop protection.
  • Idempotent event processing (webhooks arriving twice or out of order).
  • Caches with eviction and expiry.
  • Dependency graphs and topological order.
  • Debugging a small, broken module and proving the fix with tests.

Debugging rounds: reproduce, then fix

When handed broken code, resist rewriting it. State what the code is supposed to guarantee, rank your hypotheses, write a failing test that reproduces each bug, make the smallest fix that passes, and keep the test. If you're shown an AI-suggested patch, check it as carefully as a colleague's: plausible-looking is not the same as correct.

Mid-level looks like

Writes correct, readable code with tests for the main cases.

Senior looks like

States invariants up front, compares approaches, traces tests by hand, and extends the design for scale or concurrency without breaking its contract.

Common pitfalls

  • A correct solution delivered in silence. Talking through it is part of the score.
  • Ignoring empty, malformed or duplicate input.
  • Mutating inputs, or depending on dictionary order for output.
  • Rewriting a whole module when a two-line fix and a test would do.

Practice drills

  1. Drill 1

    Reconcile invoice lines from a billing API with a warehouse export. IDs differ in case and whitespace; amounts may be strings or numbers. Return matches, items missing on each side, and amount mismatches.

    A strong answer: A separate normalisation function, exact decimal comparison, deterministic output order, and unmodified inputs.

  2. Drill 2

    Write fetch_all(client) for a cursor-paginated API that sometimes returns 429/5xx and occasionally repeats a cursor.

    A strong answer: Bounded retries with backoff and jitter, repeated-cursor detection, a page cap, and a fake client in the tests.

  3. Drill 3

    Implement try_consume(tenant, tokens, now) with a rolling 60-second token budget per tenant plus a global ceiling.

    A strong answer: An injected clock, correct window-boundary handling, rejecting requests bigger than the whole budget, and a note on multi-replica enforcement.

  4. Drill 4

    Model output sometimes comes back as "almost JSON" (code fences, trailing commas, cut off). Write a safe repair-then-validate function.

    A strong answer: Repairing only well-defined cases, never inventing values, schema validation, typed errors, and valid JSON passing through unchanged.

Best resources for this skill

Repos, courses, articles and podcasts, ranked by how much they teach.

Read next

Next skillIntegration & enterprise systems