Training
Intermediate
Time available:45 minutes
|Available in+4
Skills you'll learn
IoT Incident Management
Debugging and Troubleshooting
Training scores won't be added to your skill profile.
Your Role
Billing Platform Software Engineer
Your Goal
Restore Beacon Billing’s broken invoice draft save endpoint.
Simulation Details:
Beacon Billing runs a multi-tenant B2B invoicing API in Node.js/TypeScript and the POST /v1/invoices/save endpoint is a revenue-path SLO because every draft save must persist an invoiceId used downstream. The save path is strictly layered—invoiceController decodes and validates into a DTO, InvoiceService applies business rules and maps fields, then a repository call serializes and persists—so a bug in validation, DTO mapping, or serialization can immediately surface as a customer-facing HTTP failure. Large tenants often repeatedly “Save” the same draft during peak billing, which quickly amplifies any consistent partial failure. Invoices are considered valid only if customerId, currency, and at least one lineItem survive controller→service mapping unchanged and are persisted together with a stable invoiceId, and the incident playbook favors the smallest defensible fix-forward or narrow guard over a full rollback; in this simulation your admissible evidence is limited to the two save-layer files and a targeted test.
You are the Billing Platform Software Engineer working one-on-one with Maria Gomez, the team lead, to restore the broken invoice-save path. Triage with Maria to confirm when the failures began relative to the morning deploy, who is affected, the exact UI/API symptom (400 vs 500), and a concrete reproduction narrative, then recommend and defend a restore strategy (rollback, fix-forward, or narrow guard). Using only the shared TypeScript workspace (invoiceController.ts, InvoiceService.ts, invoiceSave.spec.ts) and Maria’s operational signal, reproduce the production-shaped failure by encoding the update-draft payload into a targeted Jest test, isolate the fault to controller, service, or persistence, and make the smallest possible change confined to invoiceController.ts or InvoiceService.ts that restores the invariants. Prove the fix with the failing/passing test cycle, narrate the precise code path and tradeoffs to Maria, and get her approval before concluding.
- Confirm incident scope with Maria: start time, blast radius, error type, and a reproducible user narrative.
- Recommend and align on a restore strategy (rollback vs fix-forward vs narrow guard) with clear tradeoffs.
- Reproduce the production-shaped failure in invoiceSave.spec.ts with a targeted failing test for the update-draft case.
- Implement the minimal fix within invoiceController.ts or InvoiceService.ts, add a regression test, and ensure the tests pass.
- Present concrete evidence to Maria: the failing/passing test, the specific code path that broke, why the fix is low risk, and what to monitor next.
Helpful for
Billing Platform Software Engineer, Site Reliability Engineer, Backend Engineer
How it worksNot sure how it works? Watch the video below.
Explore more simulations by category and topic: Product & Delivery > Project Management ‧ Product Management | Leadership & Organization > Change Management & Digital Transformation | Customer Facing Roles > Customer Support & Customer Success ‧ Sales & Account Management ‧ Marketing & Digital Marketing | People & Culture > Soft Skills, Communication & Interpersonal ‧ Talent Acquisition & Development ‧ Team Management | Business Operations > Operations and Supply Chain Management ‧ Finance & Financial Analysis | Technology & Engineering > AI, Machine Learning & Gen AI ‧ Cybersecurity & Information Security ‧ Data Analytics & Business Intelligence ‧ Cloud, DevOps & IT Systems ‧ Coding, Software & Engineering