duo-mobile-engineering
Duolingo Mobile Engineering — Map of Content
Performance work fails in a predictable way: it gets filed as polish, funded as polish, measured in milliseconds nobody can connect to behaviour, and then quietly undone by the next four quarters of feature work. The same is true of client tech debt — the cleanup that is nobody's job never happens.
This skill collects the moves that break that cycle: tie speed to a conversion number someone is accountable for, make the measurement loop cheap enough that you can be surprised, put regression deltas where changes are reviewed, and stage migrations so the expensive decision waits for evidence.
This skill is a graph: scan the descriptions, follow only the [[wikilinks]] you need.
Boundary. Server-driven UI — shipping interface changes without a release, the config/data split, client versioning, the server contract — is not here. That pain feels like an app-store problem but the answer is a backend one: [[../duo-backend-architecture/SKILL]]. Pixel craft (easing curves, token values, contrast, component props) is out of scope for this whole pack; route it to the external design-engineering skill.
Measure the right thing
- [[references/optimize-against-conversion-not-milliseconds]] — score performance by conversion through the step, then make that number a company-wide guardrail.
- [[references/cold-start-is-a-retention-metric]] — startup is churn, not polish; precompute the warmup if you ship faster than it can mature.
- [[references/measure-from-your-worst-region-and-device]] — a check invisible at 20ms is a product-killing block at 1000ms, and payload size is a CPU cost.