BuildMidBackendAuto-graded
Make a percentage rollout stable per user
Reveals whether someone notices a gradual rollout is random rather than repeatable, and gets the rule order exactly right.The core of a feature-flag service:evaluate(flag, user) decides whether a flag is on for a given user. The shipped version is broken in ways that survive a casual review and then page you at 2am — a disabled flag that still turns on, targeting rules that fire in the wrong order, and a percentage rollout that picks a different set of users on every request. Make it correct, and above all make the rollout stable: the same user must get the same answer every time, in every process.30 min
python
You're done when
- A flag switched off at the master level is off, whatever the other rules say.
- Targeting rules are evaluated in order and the first match wins.
- A user's rollout result is stable across repeated calls.
- It is stable across separate processes too — not just within one run.
- Raising the rollout percentage only ever adds users, never drops someone already included.
- The rollout boundaries hold: 0% includes no one and 100% includes everyone.
What it measures
Back-end developmentImplementing evaluation rules whose order and precedence are part of the contract.
PythonProducing a stable hash-based bucketing that does not vary per process.
Reasoning about determinismRecognising that an unstable rollout flickers users in and out mid-session, and that monotonicity is what makes a gradual ramp safe.
Your environment
Terminal + editorA full shell in the browser
Claude CodePre-authenticated, no key setup
Isolated microVMYours alone, wiped afterwards
Start this lab
30 min
Start labYou'll sign in to Anthropos to start. The lab opens in a private cloud workspace with Claude Code ready to use.AI Labs is part of Anthropos Workforce. Not on your plan yet? Book a demo