Para quem é este guia?

Estudantes de Engenharia de Software, Análise e Desenvolvimento de Sistemas e Sistemas de Informação que querem se tornar Desenvolvedores Fullstack produtivos e especialistas em uma área. A filosofia aqui é o perfil T-shaped: você conhece tudo um pouco, mas domina de verdade uma área.

Este post foi baseado na minha Stack principal JS/TS então vou falar sobre o caminho que eu entendo e tenho propriedade.

O que é a Filosofia T-Shaped Developer

A ideia é simples: você entende o sistema como um todo, consegue atuar em qualquer camada, mas tem uma área onde você é referência na empresa.

Os 4 Níveis de Carreira Técnico

Nível Tempo estimado O que define
Estagiário 0 – 12 meses Aprende executando tarefas supervisionadas
Júnior 1 – 2 anos Entrega com autonomia em tarefas bem definidas
Pleno 2 – 5 anos Resolve problemas complexos e guia júniores
Sênior 5+ anos Define arquitetura, antecipa problemas, influencia time

Obs.: Após estes níveis ainda temos o especialista que não entra nesse post. Se quiser saber um pouco sobre carreira em Y segue um conteúdo publicado na TOTVS veja aqui

FASE 0 — Fundamentos Universais

Todos os níveis precisam dominar isso antes de escolher uma especialização.

Lógica e Programação

  • Lógica de programação e algoritmos
  • Estruturas de dados (arrays, listas, filas, pilhas, árvores, grafos)
  • Complexidade de algoritmos (Big O notation)
  • Paradigmas: OOP, funcional, procedural

Ferramentas de Desenvolvimento

  • Git — controle de versão (branching, merge, rebase, pull requests)
  • Terminal / linha de comando (bash/zsh)
  • VS Code e extensões essenciais (IDE)
  • Figma — leitura e interpretação de protótipos (todo dev precisa saber ler um design)

Fundamentos Web

  • HTTP/HTTPS — verbos, status codes, headers
  • DNS, domínios e como a internet funciona
  • APIs REST — o que são, como consumir e criar
  • JSON e serialização de dados
  • Autenticação: cookies, sessions, JWT, OAuth2

Metodologias

  • Scrum — sprints, cerimônias, artefatos (product backlog, sprint backlog, DoD)
  • Kanban básico
  • Gitflow ou trunk-based development

TRILHA 1 — Frontend

Stack de referência: React · Next.js · SCSS

Estagiário → Júnior

HTML & CSS

  • HTML semântico (acessibilidade, SEO básico)
  • CSS Flexbox e Grid
  • SCSS/Sass — variáveis, mixins, nesting, @extend
  • Responsividade e mobile-first
  • Design System: tokens de cor, tipografia, espaçamento

JavaScript Fundamental

  • ES6+ (arrow functions, destructuring, spread, modules)
  • Promises, async/await
  • Manipulação do DOM
  • Fetch API e consumo de APIs REST

React

  • Componentes funcionais e JSX
  • Props e state (useState, useEffect)
  • Componentização e reutilização
  • React Router (rotas básicas)
  • Formulários controlados e validação

Júnior → Pleno

React Avançado

  • Hooks avançados: useCallback, useMemo, useRef, useContext
  • Custom Hooks
  • Gerenciamento de estado global: Zustand ou Redux Toolkit
  • React Query / TanStack Query (cache e sincronização de dados)
  • Error Boundaries

Next.js

  • Pages Router vs App Router
  • SSR, SSG, ISR — quando usar cada um
  • API Routes no Next.js
  • Middleware e autenticação com NextAuth
  • Otimização de imagens, fontes e performance (Core Web Vitals)
  • SEO: meta tags, Open Graph, sitemap

Qualidade e Testes

  • TypeScript no React
  • Testes com Jest + React Testing Library
  • Storybook para documentação de componentes
  • Acessibilidade (WCAG, ARIA)

Pleno → Sênior (Especialização Frontend)

  • Micro-frontends (Module Federation)
  • Design Systems do zero (Tokens, Theming, multi-brand)
  • Performance avançada: code splitting, lazy loading, bundle analysis
  • Web Vitals e monitoramento com Real User Monitoring (RUM)
  • Arquitetura de componentes escalável (Atomic Design, Feature Sliced Design)
  • Server Components (React 18+) e Streaming SSR
  • Internacionalização (i18n) com next-intl
  • Segurança no frontend: XSS, CSRF, Content Security Policy
  • Figma to Code avançado — documentar e criar handoffs profissionais

TRILHA 2 — Backend 💘

Stack de referência: NestJS · PostgreSQL · Redis · RabbitMQ

Estagiário → Júnior

Node.js & TypeScript

  • Node.js: event loop, módulos, npm/yarn
  • TypeScript: tipos, interfaces, generics, decorators
  • Express.js para entender o básico de HTTP servers

NestJS

  • Arquitetura: Modules, Controllers, Services, Providers
  • Injeção de dependências
  • DTOs e validação com class-validator
  • Guards, Interceptors, Pipes, Filters
  • Autenticação com JWT e Passport

Banco de Dados

  • PostgreSQL: DDL/DML, JOINs, índices básicos, constraints
  • ORM com TypeORM ou Prisma
  • Migrations e Seeding

Júnior → Pleno

NestJS Avançado

  • Módulos dinâmicos e configuração por ambiente (.env)
  • Microserviços com RabbitMQ (producers, consumers, fanout, direct)
  • WebSockets com NestJS
  • Caching com Redis (cache-aside, TTL, invalidação)
  • Upload de arquivos e integração com S3 (AWS)
  • Documentação com Swagger/OpenAPI

PostgreSQL Avançado

  • Window functions, CTEs, subqueries
  • Índices (B-tree, GIN, GiST) e EXPLAIN ANALYZE
  • Transactions e controle de concorrência (MVCC)
  • Full-text search nativo

Qualidade

  • Testes unitários com Jest
  • Testes de integração e e2e com Supertest
  • Clean Code e SOLID na prática
  • Domain-Driven Design (DDD) básico

Pleno → Sênior (Especialização Backend)

  • Arquitetura de microsserviços — comunicação síncrona vs assíncrona
  • Event-Driven Architecture com RabbitMQ / Kafka
  • CQRS e Event Sourcing
  • API Gateway e BFF (Backend for Frontend)
  • Rate limiting, throttling e resiliência (circuit breaker, retry, bulkhead)
  • Observabilidade: logs estruturados, métricas, tracing distribuído (OpenTelemetry)
  • Segurança avançada: OWASP Top 10, SQL Injection, validações
  • Design de APIs escaláveis (versioning, pagination, HATEOAS)

TRILHA 3 — Mobile

Stack de referência: React Native

Estagiário → Júnior

React Native Fundamentos

  • Diferenças entre React e React Native
  • Componentes nativos: View, Text, Image, ScrollView, FlatList
  • StyleSheet e Flexbox no React Native
  • Navegação com React Navigation (Stack, Tab, Drawer)
  • Expo vs React Native CLI — quando usar cada
  • Consumo de APIs REST no mobile

Júnior → Pleno

React Native Intermediário

  • Armazenamento local: AsyncStorage, MMKV
  • Câmera, localização e permissões
  • Push notifications com Firebase (FCM)
  • Animações com Reanimated 2
  • Deep linking e Universal Links
  • Gerenciamento de estado: Zustand ou Redux Toolkit
  • TypeScript no React Native

Qualidade e Deploy

  • Testes com Jest + React Native Testing Library
  • Build e publicação na App Store e Google Play
  • CI/CD para mobile (Fastlane, EAS Build)

Pleno → Sênior (Especialização Mobile)

  • New Architecture do React Native (Fabric, JSI, TurboModules)
  • Native Modules em Swift/Kotlin quando necessário
  • Desempenho: hermes engine, bundle splitting, profiling
  • Offline-first com sync strategy
  • A/B testing e feature flags no mobile
  • Monitoramento: Crashlytics, Sentry, Performance monitoring
  • App Store Optimization (ASO) e processo de review

TRILHA 4 — DBA (Database Administrator / Data Engineer)

Stack de referência: PostgreSQL · Redis

Estagiário → Júnior

  • Modelagem relacional: entidades, atributos, relacionamentos
  • Normalização (1NF, 2NF, 3NF, BCNF)
  • SQL completo: SELECT, INSERT, UPDATE, DELETE, JOINs, GROUP BY, HAVING
  • Constraints: PK, FK, UNIQUE, NOT NULL, CHECK
  • PostgreSQL: instalação, psql, pgAdmin
  • Redis: estruturas de dados (strings, hashes, lists, sets, sorted sets)

Júnior → Pleno

  • Índices: tipos, criação, quando usar e quando não usar
  • EXPLAIN / EXPLAIN ANALYZE — leitura de query plans
  • Transactions: BEGIN, COMMIT, ROLLBACK, SAVEPOINT
  • Stored Procedures e Functions no PostgreSQL
  • Views, Materialized Views e Triggers
  • Backup e restore (pg_dump, pg_restore)
  • Redis: pub/sub, Lua scripting, TTL e eviction policies
  • Redis como session store e cache distribuído

Pleno → Sênior (Especialização DBA)

  • Replicação (streaming replication, logical replication)
  • High Availability: Patroni, pgBouncer (connection pooling)
  • Particionamento de tabelas (range, list, hash)
  • Vacuuming, autovacuum e bloat management
  • Monitoramento com pgstat*, pgBadger
  • Tuning de PostgreSQL (work_mem, shared_buffers, autovacuum)
  • NoSQL: diferenças, quando usar cada paradigma
  • Data Warehousing básico e conceitos OLAP vs OLTP
  • Segurança: roles, row-level security, criptografia em repouso

TRILHA 5 — DevOps

Stack de referência: AWS · Docker · GitHub Actions

Estagiário → Júnior

  • Linux: comandos essenciais, permissões, processos, systemd
  • Redes: TCP/IP, DNS, HTTP, portas, firewalls
  • Docker: imagens, containers, Dockerfile, docker-compose
  • Variáveis de ambiente e gerenciamento de segredos
  • AWS básico: IAM, EC2, S3, RDS, VPC
  • CI/CD básico com GitHub Actions (build, test, deploy)

Júnior → Pleno

  • Docker avançado: multi-stage builds, otimização de imagens
  • Kubernetes: pods, deployments, services, ingress
  • Helm Charts básicos
  • AWS intermediário: ECS/EKS, Lambda, CloudFront, Route53, SQS, SNS
  • Infrastructure as Code com Terraform
  • Monitoramento: CloudWatch, Grafana + Prometheus
  • Logs centralizados: ELK Stack ou CloudWatch Logs
  • Segurança: IAM roles, security groups, secrets manager

Pleno → Sênior (Especialização DevOps / SRE)

  • GitOps com ArgoCD ou Flux
  • Service Mesh (Istio)
  • FinOps: otimização de custos na nuvem
  • SRE: SLO, SLI, SLA, error budgets
  • Chaos Engineering
  • Multi-region e disaster recovery
  • Platform Engineering: criação de developer portals internos
  • Segurança DevSecOps: SAST, DAST, triagem de vulnerabilidades
  • RabbitMQ em produção: clustering, HA, dead letter queues, monitoramento

TRILHA 6 — Gestão de Projetos / Tech Lead

Stack de referência: Scrum · PMBOK

Estagiário → Júnior

  • Scrum completo: papéis (PO, SM, Time), eventos, artefatos
  • Escrita de User Stories (Como… quero… para…)
  • Critérios de aceite e Definition of Done
  • Ferramentas: Jira, Trello, Notion, Linear
  • Comunicação assíncrona eficaz (Slack, documentação)

Júnior → Pleno

  • PMBOK fundamentos: grupos de processo, áreas de conhecimento
  • Gestão de riscos: identificação, análise, plano de resposta
  • Estimativas: Planning Poker, T-shirt sizing, story points
  • OKRs e alinhamento estratégico
  • Facilitação de reuniões e cerimônias Agile
  • Gestão de stakeholders e comunicação com não-técnicos
  • Métricas Agile: velocity, lead time, cycle time, throughput

Pleno → Sênior (Especialização Tech Lead / PM)

  • Arquitetura de decisão: ADRs (Architecture Decision Records)
  • Gestão de dívida técnica
  • Roadmap de produto e priorização (RICE, MoSCoW, Kano)
  • Discovery e técnicas UX: entrevistas de usuário, jobs to be done
  • Liderança técnica sem autoridade formal
  • Mentoria e desenvolvimento de time
  • Gestão de contratos e fornecedores
  • PMI-ACP e/ou PSM — certificações recomendadas

Como Escolher Sua Especialização

Responda com honestidade:

Pergunta Aponta para
Você fica animado resolvendo problemas de UX e visual? Frontend
Você curte desenhar sistemas e fluxos de dados? Backend
Você quer ver seu app na mão das pessoas? Mobile
Dados e performance de queries te fascinam? DBA
Você quer garantir que tudo funciona em produção? DevOps
Você gosta de organizar times e projetos? Gestão

Dica: Não espere terminar todas as trilhas para escolher. A especialização começa a se revelar naturalmente pelos problemas que você escolhe resolver.

Plano de Estudos por Semana

Semana tipo para quem está estudando fora do trabalho:

Dia Foco
Segunda Fundamentos / Teoria da especialização
Terça Prática: projeto pessoal
Quarta Trilha fullstack (área diferente da especialização)
Quinta Prática: projeto pessoal
Sexta Conteúdo: artigos, vídeos, podcasts da área
Sábado Projeto pessoal ou contribuição open source
Domingo Revisão e planejamento da semana

Projetos Práticos por Nível

Estagiário

  • To-do list com React + API fake (json-server)
  • CRUD simples com NestJS + PostgreSQL
  • Tela de login com React Native

Júnior

  • Blog com Next.js (SSG + SSR)
  • API RESTful com autenticação JWT (NestJS + PostgreSQL)
  • App mobile com autenticação + listagem de dados reais

Pleno

  • Sistema SaaS multi-tenant (Next.js + NestJS + PostgreSQL)
  • Worker com RabbitMQ + Redis para processamento assíncrono
  • App mobile com offline-first e sincronização

Sênior

  • Plataforma com microserviços comunicando via RabbitMQ
  • Pipeline CI/CD completo com GitHub Actions + ECS/EKS (AWS)
  • Design System publicado no npm
  • Dashboard de monitoramento com Grafana + PostgreSQL

Recursos de Estudo Recomendados

Documentações Oficiais (leitura obrigatória)

  • react.dev | nextjs.org | docs.nestjs.com
  • postgresql.org/docs | redis.io/docs
  • docs.aws.amazon.com | docs.docker.com

Livros Essenciais

  • Clean Code — Robert C. Martin
  • Clean Architecture — Robert C. Martin
  • Domain-Driven Design — Eric Evans
  • Accelerate — Nicole Forsgren (DevOps)
  • The Pragmatic Programmer — Hunt & Thomas
  • Scrum: A Arte de Fazer o Dobro do Trabalho na Metade do Tempo — Jeff Sutherland

Canais e Comunidades

  • YouTube: Fireship, Traversy Media, Rocketseat, Full Cycle, Frontend Masters
  • Newsletter: Bytes.dev, JavaScript Weekly, Node Weekly

Marcos de Conquista por Nível

Estagiário — você está pronto para ser Júnior quando

  • Consegue clonar um repo, criar uma branch e abrir um PR sem ajuda
  • Entende e executa tarefas bem definidas com orientação
  • Lê código de outros e entende o que está acontecendo
  • Consumiu e criou ao menos uma API REST completa

Júnior — você está pronto para ser Pleno quando

  • Entrega funcionalidades completas de ponta a ponta sem supervisão constante
  • Identifica e resolve bugs por conta própria
  • Escreve testes automatizados
  • Faz code review com comentários construtivos

Pleno — você está pronto para ser Sênior quando

  • Define a solução técnica antes de codificar
  • Antecipa problemas de performance e escalabilidade
  • Guia desenvolvedores júniores e plenos ativamente
  • Participa de decisões de arquitetura
  • Documenta decisões e comunica tradeoffs

Sênior — sinais que você chegou lá

  • O time vem até você quando há um problema difícil
  • Você influencia a cultura técnica da empresa
  • Consegue estimar com segurança e defender escolhas técnicas
  • Pensa no produto, não só no código

Mensagem Final

"Um desenvolvedor sênior não é alguém que sabe tudo — é alguém que sabe o suficiente para resolver o que não conhece ainda."

A jornada do estágio ao sênior não é linear. Haverá momentos em que você vai se sentir voltando ao começo — isso é aprendizado. O que separa quem chega lá de quem desiste não é talento: é consistência, curiosidade e disposição para errar em público.

Escolha uma especialização, aprofunde com intenção, e construa a base fullstack aos poucos. O mercado precisa de pessoas que entendem o todo e dominam uma parte.

Bons estudos e Até +.