Technical Leadership Best Practices
A condensed summary of the 25 most important technical leadership practices for Expo SDK 57 mobile teams - drawn from every page in this section. Protect quality without becoming the bottleneck.
Search across all documentation pages
A condensed summary of the 25 most important technical leadership practices for Expo SDK 57 mobile teams - drawn from every page in this section. Protect quality without becoming the bottleneck.
Classify changes by release clock: JS-only OTA vs native store binary vs backend dependency - before sprint commitment - Tech Lead Basics on Mobile.
Maintain a three-clock dependency map: Align mobile leads with backend and release managers on Release Train Calendar - not surprise Friday API breaks.
Risk budget store submits: Cap store releases per sprint; track rejections as process debt - velocity without guardrails ships rollback weekends.
OTA requires runtimeVersion discipline: Mismatch needs new binary - document rollback updateId every production OTA - Runtime Version Policy.
Preview builds on native-touching PRs: Expo Go hides custom native modules - Preview Builds on PRs.
Write ADRs for irreversible choices: OTA-to-production policy, new native modules, navigation/state commits - short markdown in repo - Architecture Decision Records.
Supersede ADRs - never silent edits: Status field + new file preserves onboarding truth.
Point to ranked architecture docs: Team ADR records your choice; frameworks live in architecture-design.
Default native boundary to Expo SDK: Custom TurboModules need maintenance owners and cost worksheet - Native vs JavaScript Trade-offs.
Enforce PR review checklist: Perf lists, a11y labels, native expo install, thin routes - Code Review Standards for RN.
Require device evidence on UI PRs: iOS + Android screenshot or recording - sim-only Pro Max review lies on Android-majority apps.
Small PRs over hero reviews: Target under 400 lines; same-day review beats weekly mega-diffs.
CODEOWNERS on app.config.ts and eas.json: Native config mistakes are org-wide - not junior solo experimentation.
Time-box technical disagreements: Owner, decide-by date ≤ 5 days, ranked ADR or spike - no 50-message Slack limbo - Handling Technical Disagreements.
Disagree-and-commit in writing: Dissent preserved; one implementation after commit; revisit trigger named.
Navigation debates use ranked ADR: Greenfield SDK 57 defaults Expo Router; brownfield exceptions documented - ADR: Navigation Library Choice.
State debates classify first: Server → Query; client UI → Zustand; URL → Router params - ADR: State Management Selection.
Mentor structured week one: Metro green, tiny merged PR, preview on device - not production tickets day one - Mentoring Junior Mobile Devs.
Safe first PR scope: Copy, tests, a11y - defer solo native config until mid-level evidence - Junior → Mid RN Leveling.
Buddy + capstone path: Use First-Week Learning Path - not "read the repo."
Teach debugging ladder: Redbox → DevTools → expo-doctor → preview build → native logs paired.
Pair on first EAS build and submit shadow: Release literacy before on-call rotation - Onboarding Basics.
Review architecture boundaries - delegate feature diffs: Lead on native, release, and cross-squad contracts; mids own feature quality.
Run refactoring checklist before major release: God modules block parallel PRs and SDK upgrades - Refactoring Checklist.
Improve onboarding from every hire retro: Confusion → doc PR - leadership is a feedback loop into team practices.
Publish checklists and ranked ADRs so mids block boundary violations. You approve exceptions and release PRs - not every Text color change.
Three ADRs: navigation choice, state stack, OTA vs store policy. Expand when native modules appear.
Tech lead owns technical option scoring; EM breaks ties on calendar risk and staffing. Both sign compliance-sensitive ADRs.
Same review checklist and ADR stack; scope mentoring to contract length. No solo eas.json edits without staff review.
Optimizing PR count without release-clock literacy - fast merges that OTA native changes or miss store review buffers.
Stack versions: This page was written for React 19.2.3, React Native 0.86.0, and Expo SDK 57 (
expo~57.0.4).
Reviewed by Chris St. John·Last updated Jul 16, 2026