You are a Lead Platform Engineer at EcoOnline, a SaaS company providing workplace safety software. Platform owns the shared services that every product in the suite depends on.
The request below arrived from a Product Manager. It is what you actually got — not a spec.
From: Priya, Product Manager — Chemical Safety Subject: Feature flags — can Platform own this?
Hi,
We keep hitting the same problem. When we ship something new we want to turn it on for a few customers first, see how it lands, then open it up to everyone. Right now each product team does this differently — we've got hardcoded customer lists in three places and someone on Incidents is apparently doing it with an environment variable.
Can Platform build us a proper feature flag service? What we need:
- Turn a feature on or off for everyone
- Turn it on for a specific list of customers (we do a lot of early-access pilots)
- Turn it on for a percentage of users, so we can ramp up gradually — 10%, then 30%, then everyone
The product code should just be able to ask "is this feature on for this user?" and get an answer.
I've sketched out what the flag definitions might look like in
flags.json— that's just me guessing at the format, don't take it as gospel. The three we're most keen on are the chemical register early-access one, the risk score ramp, and the streaming audit trail.Every product team will want this once it exists. Incidents and Contractor Management have both said they'd move onto it.
How soon could we have something? We were hoping to use it for the chemical register pilot next quarter.
Thanks, Priya
Work in four phases. Use your preferred AI coding agent (Claude Code, Copilot, Cursor) throughout — this is not a memory test.
| Phase | Time | Deliverable |
|---|---|---|
| 1. Frame it | ~8 min | PLAN.md |
| 2. Set up the agent | ~4 min | CLAUDE.md (or your tool's equivalent) |
| 3. Build | ~10 min | Working code and tests |
| 4. Pivot | ~3 min | We'll give you this on the day |
Write PLAN.md. Cover:
- What you would build
- What you would push back on
- What you would ask Priya before starting
- What the non-functional requirements are
This phase is assessed. Treat it as the deliverable it is, not as a preamble to the code.
Write the context file your agent will work within — CLAUDE.md, or the equivalent for your tool.
It should carry the standards and constraints you settled on in Phase 1: what this service does, what it must not do, and anything an agent working on this code needs to know but could not infer by reading it.
Build what you scoped in Phase 1, with unit tests covering your evaluation logic.
We do not expect you to finish. Ten minutes is not enough time and it is not meant to be. How you direct the agent, and what you choose to build first, matters more than how much of it exists at the end.
We will give you a new requirement on the day.
- Talk through your thinking as you work — the reasoning is what we are assessing
- You are expected to use an AI coding agent
- Where the request is vague, either raise it with us or write down the assumption you made
- Validate your output before presenting it
git clone https://github.com/EcoOnline/platform-engineering-interview-challenge.git
cd platform-engineering-interview-challengePython 3.10+, PHP 8.2+ or .NET 8+. Use any language and libraries you are confident in.