A derivatives broker's platform team owns order routing, risk, market data and post-trade services. Regulation and exchange rules limit production changes to one weekly window, Saturday 02:00–05:00, followed at 05:30 by mandatory connectivity tests with the exchange. Teams save up a week of work for the window; last Saturday a schema change on the margin service failed at 03:40, its rollback took 85 minutes, and two other teams' changes were abandoned half-applied.
The interviewer asks“Our only production change window is Saturday 02:00 to 05:00. Last window we packed in 31 changes, one failed, the rollback overran, and the exchange connectivity test at 05:30 started late. How would you run change management from here?”
I'd stop treating the window as the release and start treating it as the place where only the irreversible bits happen. Code ships dark behind flags, schema changes are split into expand and contract steps across windows, and releases happen later by flag as pre-approved standard changes. The window itself gets a budget in rollback minutes, a hard rollback decision point at 03:55, a go or no-go at T minus 24 hours and at 01:45, and changes that were rehearsed and timed on prod-sized data on Thursday. Freeze calendars, a CAB that pre-approves standard changes, and a retrospective after every window close the loop.
A free account unlocks the rest of it, and saves your progress across every track.
bash: variables Shell variables: assign, quote, default and exportbash: if Conditions: if, elif, else, test brackets and casebash: loops Loops: for, while read, until and retrybash: functions Functions: name a block, pass arguments, return a statusbash: arrays Arrays: lists and key-value maps in bashbash: exit codes Exit codes, $?, set -euo pipefail and trapbash: redirection Redirection: stdout, stderr, 2>&1, /dev/null and here-docsbash: arguments Script arguments: $1, $#, "$@", shift and getopts