Descrição da vaga
Estamos construindo o aplicativo mobile da Oplano R. Hoje o produto é web (Laravel); o app será o canal principal do aluno — onde ele assiste às aulas em vídeo, monta e resolve simulados, acompanha o plano de estudos e as revisões, registra seu desempenho e recebe lembretes. É um produto de uso diário, na mão de quem estuda várias horas por dia sob pressão de prova.
• Você vai atuar em duas frentes: *
- App mobile (React Native + Expo) — construir o aplicativo do aluno do zero, junto com o time, em cima da API da plataforma.
- Backend Laravel — evoluir a API, o domínio e as features que sustentam o app e a web.
Não buscamos alguém que só empacote telas: queremos alguém que entenda o domínio (como um aluno estuda, o que é uma revisão atrasada, por que um deck existe) e proponha soluções
• Responsabilidades*
Mobile
- Desenvolver e manter o app React Native com Expo (TypeScript), do setup à publicação.
- Implementar navegação, estados de carregamento/erro, cache e funcionamento offline para as sessões de estudo — o aluno estuda no ônibus, no intervalo, em rede ruim.
- Integrar reprodução de vídeo (streaming, controle de progresso, retomar de onde parou) e as sessões de simulado e flashcards.
- Integrar autenticação, notificações push (lembretes de revisão) e deep links.
- Cuidar do ciclo de build e release: EAS Build/Submit, versionamento, publicação na App Store e Google Play, OTA updates.
- Garantir performance em listas longas e em sessões de estudo (animações fluidas, sem travamento, sem perder resposta do aluno).
Backend
- Desenvolver endpoints e recursos de API em Laravel para consumo do app.
- Modelar dados e escrever queries Eloquent eficientes sobre MySQL, atento a N+1 e a volume.
- Trabalhar com filas, jobs, eventos e broadcasting (Laravel Reverb) quando a feature pedir.
- Escrever testes automatizados (Pest/PHPUnit) das partes críticas do domínio.
- Participar de code review e manter o padrão de qualidade do repositório.
Requisitos Obrigatórios
- 2+ anos com PHP/Laravel em produção: Eloquent, migrations, filas, autenticação (Sanctum), APIs REST.
- Experiência real publicando ou mantendo um app em React Native com Expo — não apenas tutoriais. Queremos ver algo que foi para a loja ou para usuários reais.
- TypeScript no dia a dia.
- Consumo de APIs em app mobile: autenticação com token, tratamento de erro, paginação, cache de dados (React Query/TanStack Query ou equivalente).
- MySQL e modelagem relacional.
- Git e trabalho com pull requests e code review.
Diferenciais
- Publicação e manutenção de apps nas lojas (revisão da Apple, políticas do Google Play, contas de desenvolvedor).
- Estratégias offline-first: SQLite/MMKV/WatermelonDB, sincronização e resolução de conflitos.
- Notificações push (Expo Notifications, FCM/APNs) e agendamento de lembretes.
- Ecossistema Laravel: Livewire, Filament, Reverb/WebSockets, Horizon, Laravel Forge.
- NativePHP for Mobile — ter experimentado, ou ter opinião fundamentada sobre quando ele compensa frente ao React Native (ver nota sobre stack acima).
- Reprodução de vídeo em mobile: HLS, players (expo-video), controle de progresso, DRM ou proteção de conteúdo.
- Qualidade estática: PHPStan/Larastan, Rector, Pint.
- Algoritmos de repetição espaçada (SM-2, FSRS) ou experiência com produtos de estudo/edtech.
- CI/CD com GitHub Actions.
- Ter sido usuário ou professor de cursinho — entender a rotina de quem estuda para prova de Medicina conta muito aqui.
Perfil
Autonomia: recebe um problema, faz as perguntas certas e entrega.
Cuidado com o usuário final: aluno em véspera de prova não tem paciência com bug.
Disposição para revisar código dos colegas e ter o seu revisado.
Vontade de apoiar o desenvolvedor júnior do time.
Como trabalhamos
Stack: [Laravel 12 / PHP 8.4 — confirmar versões], MySQL, Redis, Laravel Reverb, Vite + Tailwind, infraestrutura em VPS gerenciada por Laravel Forge.
Ambiente de staging espelhando produção antes de cada release.
Análise estática automatizada (PHPStan/Rector) rodando no fluxo de desenvolvimento.
Gestão de tarefas em [GitHub Projects / ClickUp — ajustar], com boards separados de desenvolvimento e suporte e SLA definido para chamados.
• Time enxuto, sem camadas de gestão entre você e as decisões de produto.