Principais tarefas a desenvolver
- Desenvolver e manter microserviços, APIs e business logic em Java com Spring Boot, seguindo boas práticas de desenvolvimento e as práticas definidas para o programa. Este desenvolvimento deve estar alinhado e orientado para tecnologias cloud native e cloud agnostic, e em constante processo de otimização e monitorização e melhoria de performance, considerando a volumetria e requisitos de resiliência e latência inerentes.
- Escrever testes unitários, de integração e de contrato. Apoiar equipa de QA na automação de testes
- Participar no desenho técnico das soluções com os arquitetos e em alinhamento com a arquitetura definida.
- Colaborar com a equipa (arquitetura, QA, SRE, segurança, negócio) em refinements, plannings e code reviews, garantindo que o código nasce seguro e observável (logs, tracing, métricas)
- Contribuir para a documentação técnica (serviços, APIs, decisões técnicas relevantes)
- Análise de incidentes/problemas em ambiente de desenvolvimento e QA/certificação, bem como atuar como 3a linha na análise e resolução de problemas
Competências e Conhecimentos técnicos
- Domínio e experiência sólidos de Java e dos seus conceitos de concorrência e gestão de memória.
- Experiência em SpringBoot, idealmente ecosistema Spring Boot (idealmente Spring Cloud e restante ecosistema Sprint)
- Compreensão de arquitetura distribuída, padrões de comunicação (síncrono vs assíncrono), APIs REST e tratamento de falhas (retries, circuit breakers,fallbacks, idempotêmcia etc)
- Conhecimentos em bases de dados geo-distribuídas e/ou relacionais e/ou NoSQL
- Experiência com práticas de desenvolvimento moderno (Git, CI/CD, DevSecOps, práticas de code review, testing com tools como JUnit, Mockito, Testcontainers)
Competências e Conhecimentos técnicos desejáveis
- Experiência em contextos cloud native (containers, Docker/Podman, Kubernetes, 12 factor apps) e sistemas high-throughput, low-latency
- Conhecimentos em arquiteturas distribuídas e event-driven
- Conhecimentos em bases de dados geo-distribuídas, NoSQL, NewSQL (MongoDB, CockroachDB, etc.)
- Experiência com observabilidade (logging centralizado, métricas, tracing distribuído) e SRE
- Experiência prévia em soluções de pagamentos ou sistemas financeiros de missão crítica
- Conhecimentos de blockchains e wallets (online e offline)