
Senior Consultant - Desenvolvedor Java - Home Office
- Rio de Janeiro - RJ
- Permanente
- Período integral
- Orientação Técnica: Fornecer orientação e suporte técnico à equipe de desenvolvimento, ajudando a resolver problemas complexos e tomando decisões técnicas críticas.
- Desenvolvimento e Revisão de Código: Realizar o desenvolvimento e apoio nas revisões de códigos para garantir a qualidade, consistência e aderência aos padrões estabelecidos.
- Arquitetura de Software: Projetar e desenvolver a arquitetura do sistema, garantindo que seja escalável, sustentável e alinhada com os requisitos do projeto.
- Garantia de Qualidade: Implementar e supervisionar práticas de teste e qualidade para assegurar que o produto final esteja livre de bugs e defeitos.
- Spring Boot/
- Spring Web
- Spring Data JPA
- Spring Security (para autenticação e autorização)
- Monolitico
- Microservico
- Arquitetura Limpa (Clean Architecture)
- Arquitetura Hexagonal (Ports & Adapters)
- Arquitetura MVC
- GET
- POST
- PUT
- DELETE
- PATCH
- Definir endpoints RESTful
- URI semântica
- Versionamento da API (Ex: /v1/resource)
- Global Exception Handler (@ControllerAdvice)
- Exceções customizadas
- Respostas com códigos de status HTTP apropriados
- Gestão de Erros e Respostas Customizadas
- Respostas de erro padrão ({ "error": "message" })
- Mensagens amigáveis e consistentes
- JSON
- XML (opcional)
- HATEOAS (opcional)
- API First
- Swagger/OpenAPI
- Anotações @Api, @Operation, @Schema
- JWT (JSON Web Token)
- OAuth2
- Basic Authentication
- Anotações de validação (@NotNull, @Size, @Valid)
- Validação customizada
- Repositórios Spring Data JPA
- Banco de dados relacional ou NoSQL
- Cache com Spring Cache
- Caching HTTP (headers, ETag, etc.)
- Logback/SLF4J
- Metrics com Micrometer
- Tracing com Sleuth/Zipkin (para tracing distribuído)
- Unit Tests (JUnit, Mockito)
- Integration Tests (Spring Boot Test)
- Testes de contrato (ex: Testes de API com RestAssured)
- CSRF Protection
- CORS (Cross-Origin Resource Sharing)
- HTTPS/TLS
- Respostas de erro padrão ({ "error": "message" })
- Mensagens amigáveis e consistentes
- Paginador de dados
- Filtros de query (ex: GET /resources?name=xyz)
- Client HTTP (RestTemplate ou WebClient)
- Tratamento de erros e status de resposta
- Idempotência
- Limitação de taxa (Rate Limiting)
- Paginação e Ordenação de Listas
- Suporte a múltiplos idiomas
- RabbitMQ tipos de filas e exchagens
- Controller
- Service
- Repository
- Fallbacks (Plano de Contingência)
- Circuit Breaker