Atividades:
Desenvolver soluções escaláveis e de alta performance, atendendo a grandes volumes de dados e tráfego elevado.
Projetar e implementar arquiteturas distribuídas e orientadas a eventos, garantindo resiliência e eficiência no processamento de dados.
Conduzir estudos de caso sobre soluções de mercado, avaliando trade-offs e tomando decisões técnicas fundamentadas.
Implementar e otimizar consultas em bancos de dados NoSQL, especialmente MongoDB, para assegurar eficiência e alto desempenho.
Criar APIs RESTful e servidores WebSocket, otimizando o consumo de dados por sistemas e interfaces de terceiros.
Garantir a qualidade do código, aplicando princípios como Clean Code, SOLID, DRY, KISS e YAGNI.
Trabalhar com processamento paralelo (multi-threading e multi-processing) para otimizar a execução de processos intensivos.
Aplicar padrões de design e boas práticas de arquitetura para desenvolver sistemas modulares, manuteníveis e flexíveis.
Mentorar e orientar a equipe em melhores práticas de desenvolvimento, promovendo o crescimento técnico do time.
Facilitar a comunicação entre a squad e outras áreas da empresa, garantindo o alinhamento de prioridades e objetivos.
Participar ativamente de dailys, plannings, reviews e retrospectivas, colaborando para manter um ciclo ágil e produtivo.
Requisitos Obrigatórios:
Experiência sólida com Node.js e linguagens associadas (JavaScript/TypeScript).
Conhecimento avançado de boas práticas e princípios de desenvolvimento (Clean Code, SOLID, DRY, KISS, YAGNI).
Forte base em Programação Orientada a Objetos (POO) e Domain-Driven Design (DDD).
Experiência no desenvolvimento de APIs RESTful e WebSocket.
Conhecimento em estilos e padrões de arquitetura de software:
Microsserviços
Layered Architecture
Publish-Subscriber
Experiência com multi-threading e multi-processing.
Habilidade para projetar arquiteturas escaláveis e distribuídas.
Implementação de sistemas de logs distribuídos.
Aplicação de técnicas de resiliência (ex.: Circuit Breaker, balanceamento de carga, sharding de eventos, retries automáticos).
Capacidade de garantir qualidade de código com testes automatizados (unitários, integração).
Experiência com Test-Driven Development (TDD).
Familiaridade com sistemas de mensageria (Kafka).
Experiência com metodologias ágeis (Scrum, Kanban).
Experiência com integração de CRMs (ex.: Zendesk, Salesforce).
Conhecimento em sistemas embedded integration.
Requisitos Desejáveis:
Experiência com projetos de sustentação de longo prazo.
Conhecimento em servidores on-premises.
Experiência com técnicas de caching para otimização de performance.
Conhecimento em Design Patterns.
Experiência em refatoração de projetos (Change Preventer, Composing Methods, Object-Orientation Abusers).
Experiência com sistemas de documentação e logs automatizados (ADLS):
AADL (Architecture Analysis & Design Language)
ADML (Architecture Description Markup Language)
Unicon (Unified Constraint Language)
Conhecimento aprofundado em MongoDB:
Otimização de consultas e desempenho.
Modelagem de dados eficiente para garantir escalabilidade.
Experiência prática com padrões arquiteturais:
Event-Driven Architecture (EDA)
Message Broker
Microkernel Architecture