The setting
Halden Mobility builds Rove, a phone app for buying transit passes and planning trips across three metro regions. You are a mobile engineer on the tickets team, shipping the iOS and Android apps on a two-week train.
Every mission on this path happens at the same company, so context carries over the way it does in a real job: the data you cleaned in mission two is the data the finance lead questions in mission four.
The missions
1. mobile flowstarter
Spec the tap-to-activate single-ride flow for Rove
Product wants a new single-ride ticket riders can buy on the spot and tap to activate at the turnstile. Design starts Thursday and they need a screen flow to design against, so the spec is on you.
You deliver: A screen flow spec for the single-ride ticket covering every screen, state, and transition, including the gaps the brief left open.
Scored on: Covers every state, Catches the missing states, Reuses existing components, Ready for handoff.
Working from: pass_requirements.md, current_flow_notes.md.
2. offline statestarter
Define offline behavior for the Rove ticket wallet
Beta riders keep losing tickets underground. Three bugs are open and all of them come down to the wallet assuming a network connection it does not have at the turnstile. Support is escalating.
You deliver: An offline behavior spec for the ticket wallet covering display, activation, and reconnect reconciliation.
Scored on: Covers display and activate offline, Fixes the three bugs, Reconnect reconciliation, Honest about limits.
Working from: offline_bugs.md, wallet_sync_notes.md.
3. API synccore
Review the wallet-sync module before it ships in 4.6
Priya opened a pull request that rewrites how Rove syncs the ticket wallet, and it is your review. It touches money and fare enforcement, so a quiet bug here becomes a fraud report or a stranded rider.
You deliver: A code review of the wallet-sync module with ranked findings tied to the API contract.
Scored on: Catches the real defects, Checks against the contract, Ranked by severity, Constructive tone.
Working from: ticket_sync.md, sync_api.md.
4. performancecore
Fix the trip-history screen that janks on scroll
The trip-history screen stutters badly on scroll and it is the top complaint in the app store this month. QA captured frame timings across screens so you can find the cause with data, not guesswork.
You deliver: A performance review of the trip-history screen with a data-backed diagnosis and a concrete fix plan.
Scored on: Identifies the bottlenecks, Backed by the CSV, Concrete fix plan, Measurable target.
Working from: trip_list.md, frame_timings.csv.
5. release QAstretch
Run the go/no-go for Rove 4.7 with a crash in the field
Rove 4.7 is release-candidate two and the train ships tomorrow. It carries the tap-to-activate ticket and the offline wallet fixes you specced, and the beta has been running seven days. The call to ship or hold is yours to recommend.
You deliver: A go/no-go recommendation for Rove 4.7 with a crash and test read, a decision, and a rollout and rollback plan.
Scored on: Reads the crash clusters, Names the failed tests, Defensible decision, Rollout and rollback.
Working from: crash_reports.md, qa_results.csv, release_checklist.md.
How the scoring works
Each deliverable is graded against the rubric written for that mission. Separately, every mission on every path is graded on how you used AI, against the same four criteria:
- Understood the task. The learner framed the goal for the assistant clearly instead of pasting the brief and hoping.
- Grounded in the material. The learner directed the assistant into the provided files and based the work on them, not on invented facts.
- Verified the output. The learner checked claims, numbers, or coverage against the source material before submitting.
- Iterated with judgment. The learner refined weak parts of the draft with specific follow-ups rather than accepting the first answer.
Both scores, with the work behind them, go on your proof profile. That is what makes a claim like "I can use AI for mobile engineering" something an employer can check.