Leveling de Junior - Mid en RN
Una matriz de habilidades para competencias específicas de dispositivos móviles en equipos de Expo SDK 57 - define cómo se ve junior, qué posee mid, y cómo cerrar brechas con evidencia.
Busca en todas las páginas de la documentación
Una matriz de habilidades para competencias específicas de dispositivos móviles en equipos de Expo SDK 57 - define cómo se ve junior, qué posee mid, y cómo cerrar brechas con evidencia.
Tarjeta de leveling de referencia rápida - copia en escalera de ingeniería o rúbrica de desempeño.
Junior RN (L3) - "entrega con soporte"
✓ Pantallas de Expo Router + navegación Link
✓ Tests RNTL para happy path
✓ Checks PR en verde; corrige sus propios fallos de lint/tsc
✓ Ejecuta app en simulador + un dispositivo físico
✓ Pide revisión antes de tocar configuración nativa
Mid RN (L4) - "posee slices verticales"
✓ Carpeta de features de extremo a extremo: ruta - API - test - preview build
✓ Patrones de TanStack Query; sin duplicación de fetch en store global
✓ Depura Metro, redboxes de Hermes, y CI flaky
✓ Dispara preview EAS build; lee perfiles de eas.json
✓ Escribe 1-3 pasos de smoke Maestro o E2E equivalente
✓ Participa en rotación on-call / release con checklistCuándo usar esto:
Califica A (autónomo), G (guiado), N (no aún) por trimestre. Barra mid = A en todas las filas mid, G+ en la mayoría de filas junior.
| Competencia | Junior (L3) | Mid (L4) | Evidencia |
| --- | --- | --- |
| Expo Router | G - añade pantallas en grupos existentes | A - route groups, modals, parámetros tipados | PRs fusionados tocando app/ |
| React / RN UI | G - listas, formularios, loading states | A - listas conscientes del rendimiento, keyboard, roles a11y | Notas del reviewer; queries RNTL por role |
| TypeScript | G - tipos de props, corrige errores de tsc | A - narrowing de uniones en límites de rutas | Cero supresiones de tsc en archivos propios |
| Testing | G - un test de componente por PR | A - tests de hooks + integración MSW | Cobertura de CI en carpeta de features propias |
| Networking | G - llama hooks API existentes | A - diseña keys de Query, UX de error, política de reintentos | Patrones de TanStack Query on Mobile |
| Navigation edge cases | N - sorpresas de back stack | G - deep links, redirecciones auth | Matriz de test manual documentada en PR |
| Native / EAS | N - usa dev client proporcionado | G - dispara preview build, lee logs | Screenshot de dashboard EAS en PR |
| Permissions | N - copia patrón existente | G - flujos de camera/location con denial path | Screenshots de diálogos del SO en notas de QA |
| Offline / NetInfo | N - consciente | G - empty/offline UI states | Test unitario con NetInfo mockeado |
| Performance | N - evita obvious rerenders | G - FlashList, memo boundaries | Profiler before/after en lista caliente |
| CI/CD literacy | G - corrige fallos de PR check | A - conoce preview vs release lanes | Pase de quiz Mobile CI/CD Basics |
| Release hygiene | N | G - conocimiento de runtimeVersion, sin secretos en bundle | Firma de checklist en RC |
| Debugging | G - cache de Metro, redbox básico | A - trazas simbolizadas, device logs | Participación en postmortem |
| Communication | G - standup diario, pide pronto | A - estima slices, señala riesgos nativos en planning | Calidad de desglose de ticket |
Una competencia de enfoque por sprint - no "aprenderlo todo".
## <Engineer> - Q3 leveling plan
| Sprint | Focus | Success signal |
| --- | --- | --- |
| 1 | Router + thin routes | 2 screens via feature re-export |
| 2 | RNTL by role/label | 80% new UI has test |
| 3 | TanStack Query reads | Remove one Zustand fetch duplication |
| 4 | Error + loading UX | Standard ErrorView on owned feature |
| 5 | Preview EAS build | Solo `eas build --profile preview` |
| 6 | Physical device QA | Device matrix row in PR template |
| 7 | Deep link or auth redirect | One `Redirect` / guard flow owned |
| 8 | Maestro smoke slice | 3-step YAML flow in CI optional job |
| 9 | List performance | Migrate one ScrollView - FlashList |
| 10 | Offline empty state | NetInfo mock test + UI |
| 11 | Release shadow | Buddy on RC checklist |
| 12 | Mid packet review | Matrix all A/G on mid rows || Nivel | Tickets apropiados | Evita hasta mid |
|---|---|---|
| Junior | UI de nueva fila, copia, ícono, hook aislado, arreglos de test | SDK bump, nuevo config plugin, store submit |
| Mid | Nuevo slice de feature, integración de API, reestructuración de navegación | Solo upgrade mayor de SDK sin ingeniero de staff |
| Senior+ | Módulos cross-app, native bridges, arquitectura de CI | - |
Ejemplo de ticket Junior:
"Add order status badge to OrderRow - uses existing useOrder hook"
Ejemplo de ticket Mid:
"Add order cancellation flow - new route, mutation, error states, preview build"| Habilidad web | Se mapea a móvil | Brecha a cerrar |
|---|---|---|
| React hooks | Mismo modelo mental | Primitivas de RN (View, Pressable) |
| CSS layout | Flexbox similar | Sin cascade - StyleSheet / NativeWind |
| React Router | Expo Router file routes | router.push imperativo, back stack móvil |
| Browser DevTools | React DevTools | Flipper / React Native DevTools, sim logs |
fetch + SWR | TanStack Query | Offline, app backgrounding, token refresh |
| Jest + RTL | RNTL | jest-expo, native module mocks |
| Deploy to Vercel | EAS Build + stores | Firma de código, rollout por fases |
La promoción a mid debe citar artifacts, no adjetivos:
## Evidence de promoción mid - <name>
### Delivery
- 3 feature slices owned E2E (link PRs)
- 1 preview-build-driven QA cycle led
### Quality
- RNTL tests on owned features - <count> tests added
- Zero P1 bugs traced to missing loading/error state in owned code
### Mobile craft
- Maestro smoke: <link or flow file>
- Device matrix completed on RC <version>
### Collaboration
- Onboarded 1 hire on codebase tour
- Release checklist buddy on <date>
### Growth edges (honest)
- Still G on: push notification cold start
- Plan: pair with <senior> in Q4| Señal | Por qué falla |
|---|---|
| "Conoce React hace 5 años" | Antigüedad web ≠ alfabetización de release nativa |
| "PRs fusionados 100" | Contar sin scope - arreglos de typo ≠ posesión de feature |
| "Trabaja tarde" | Horas ≠ autonomía en EAS o matriz de dispositivos |
| "Opiniones fuertes sobre Redux" | Debates de arquitectura sin evidencia de shipping |
Usa en reuniones de leveling:
| Brecha | Recurso en este sitio de docs |
|---|---|
| Router | Expo Router Basics |
| EAS | EAS Build Basics |
| Testing | Mobile Testing Basics |
| CI | Mobile CI/CD Basics |
| Structure | Folder Structure for Features |
| Performance | Performance Basics |
La velocidad de UI puede ser nivel mid; nativa/EAS/permisos probablemente junior. Divide filas de matriz - no saltes dispositivo y alfabetización de release.
Ratio común: 2 mid : 1 senior : 1-2 junior para un squad de producto de 4-5. Ajusta cuando la carga de release es alta.
Usa matriz para límites de scope, no promoción. Los contractors pueden ser "scope mid" sin título L4.
No - la barra mid aún requiere alfabetización de preview build. Usa dev client compartido de la org si el acceso personal a EAS es limitado.
Versiones de Stack: Esta página fue escrita para React 19.2.3, React Native 0.86.0, y Expo SDK 57 (
expo~57.0.4).
Revisado por Chris St. John·Última actualización: 19 jul 2026