Estamos buscando um Desenvolvedor Node.Js Sênior para compor o time. Como Backend software engineer você irá trabalhar no desenvolvimento de aplicações WEB/Microsserviços e irá interagir com times multidisciplinares em reuniões de briefing e acompanhamento, além disso, como membro do time de engenharia, você vai trabalhar com programadores experientes, além de interagir com times de produtos, design e BI. Em nossa stack contamos com:
Desenvolvimento Backend
- Experiência com Node.js.
- Proficiência em TypeScript e JavaScript.
- Familiaridade com o framework NestJS (ou similar, como Express.js).
- Design e implementação de APIs REST e APIs GraphQL.
- Conhecimento avançado de Arquitetura de Microserviços.
- Princípios de Clean Code e SOLID.
Cloud Computing e Infraestrutura
- Experiência prática com AWS:
- Lambda: desenvolvimento de funções serverless.
- DynamoDB: design de tabelas, otimização de queries, e uso de índices.
- SQS e SNS: mensagens assíncronas e notificação entre serviços.
- S3: manipulação de objetos e integração com sistemas.
- API Gateway: design e configuração de APIs.
- CloudWatch: monitoramento de logs e métricas.
- Familiaridade com Azure DevOps (ou pipelines similares).
Mensageria e Comunicação Assíncrona
- Experiência com Kafka:
- Criação de produtores e consumidores.
- Gerenciamento de tópicos e particionamento.
- Garantia de entrega exatamente uma vez (exactly-once delivery).
Contêineres e Orquestração
- Proficiência em Docker:
- Criação e otimização de imagens.
- Debug e troubleshooting de contêineres.
- Experiência com Kubernetes (K8s):
- Configuração de deploys e gestão de clusters.
- Uso de ferramentas como Helm para configuração.
Versionamento e Qualidade de Código
- Domínio de Git (branches, merges, e resolução de conflitos).
- Experiência com SonarCloud ou ferramentas semelhantes para análise de qualidade de código.
- Implementação de testes:
- Unitários: frameworks como Jest ou Mocha.
- Integração: simulação de cenários reais.
- Cobertura mínima garantida de 80%+.
Monitoramento e Observabilidade
- Familiaridade com ferramentas como:
- Grafana e Prometheus: dashboards e monitoramento.
- Elastic Stack (ou equivalente): análise e busca de logs.
Banco de Dados
- Experiência com bancos NoSQL, especialmente DynamoDB.
- Conhecimento em bancos relacionais (ex.: PostgreSQL, MySQL) e otimização de queries.
- Modelagem de dados para alto desempenho e escalabilidade.
Práticas de Desenvolvimento
- Integração e entrega contínuas (CI/CD).
- Familiaridade com metodologias ágeis (SCRUM).
- Habilidade de documentar soluções técnicas (Ex.: Confluence, Swagger).