Pgx Software Engineer Assoc

Empresa: Santander

Buscamos uma pessoa **Tech Lead** com forte experiência em desenvolvimento de software e arquitetura de sistemas distribuídos para atuar como referência técnica do time, contribuindo tanto na evolução da nossa plataforma quanto no desenvolvimento das pessoas. Essa posição terá papel importante nas decisões de arquitetura, qualidade técnica, integrações entre sistemas e evolução das práticas de engenharia. Esperamos alguém com visão de produto, capacidade de equilibrar decisões técnicas e necessidades de negócio e que tenha interesse genuíno em desenvolver e apoiar outras pessoas do time. Nosso ambiente é baseado principalmente em **microserviços com Node.js no backend e React no frontend**, com forte utilização de **comunicação assíncrona e arquiteturas orientadas a eventos**. ## Principais responsabilidades - Ser a principal **referência técnica do time**, apoiando decisões de arquitetura, implementação e evolução dos sistemas. - Participar ativamente do desenvolvimento de software, especialmente em decisões e implementações de maior complexidade. - Desenhar e evoluir arquiteturas baseadas em **microserviços e sistemas distribuídos**. - Garantir boas práticas de engenharia relacionadas a **qualidade, segurança, observabilidade, performance, escalabilidade e manutenibilidade**. - Apoiar o time na definição de padrões técnicos, convenções e boas práticas de desenvolvimento. - Realizar e incentivar **code reviews**, promovendo qualidade de código e compartilhamento de conhecimento. - Identificar e endereçar **dívidas técnicas**, propondo uma evolução sustentável da plataforma. - Atuar na investigação e resolução de problemas complexos em produção. - Trabalhar em conjunto com Produto para avaliar alternativas técnicas, riscos, impactos e trade-offs. - Participar das discussões de refinamento e planejamento, ajudando o time a identificar dependências, riscos técnicos e complexidades. - Trabalhar de forma próxima a **outros times e áreas técnicas**, principalmente na definição e implementação de integrações entre sistemas. - Garantir contratos de integração claros e sustentáveis entre APIs, eventos e serviços. - Apoiar o desenvolvimento técnico das pessoas do time por meio de **mentoria, feedback, pairing e compartilhamento de conhecimento**. - Criar um ambiente que favoreça autonomia técnica e evolução contínua da equipe. - Contribuir para decisões técnicas considerando não apenas a solução imediata, mas também o impacto de longo prazo no produto e na plataforma. ## Requisitos obrigatórios ### Experiência técnica - Experiência sólida com desenvolvimento backend utilizando **Node.js**. - Experiência com desenvolvimento frontend utilizando **React** e seu ecossistema. - Experiência significativa com **arquitetura de microserviços**. - Conhecimento sólido de **arquitetura de software, design patterns e princípios de engenharia de software**, como SOLID, Clean Code e separação de responsabilidades. - Experiência com desenvolvimento e consumo de **APIs REST**. - Experiência com **arquiteturas orientadas a eventos e comunicação assíncrona**. - Experiência prática com pelo menos uma tecnologia de mensageria ou streaming, como: - Kafka; - RabbitMQ; - Azure Service Bus; - ou tecnologias equivalentes. - Conhecimento dos principais desafios relacionados a sistemas assíncronos, incluindo: - idempotência; - retries; - tratamento de falhas; - dead-letter queues; - ordenação de eventos; - consistência eventual; - duplicidade de mensagens. - Experiência com **MongoDB**, incluindo modelagem de dados, índices, performance e Aggregation Framework. - **Boa proficiência em SQL**, incluindo capacidade de desenvolver e analisar queries complexas, joins, CTEs, subqueries, window functions e agregações. - Experiência com **Git** e estratégias de versionamento e colaboração em código. - Experiência com testes automatizados, incluindo **testes unitários, integração e/ou end-to-end**. - Conhecimento de práticas de **CI/CD** e processos automatizados de build, testes e deploy. - Conhecimento de fundamentos de **segurança de aplicações**, autenticação, autorização e proteção de APIs. - Capacidade de diagnosticar problemas de **performance, concorrência, integrações e sistemas distribuídos**. ## Arquitetura e operação Esperamos também familiaridade com conceitos importantes para ambientes modernos de engenharia, como: - observabilidade de aplicações; - logs estruturados; - métricas e tracing distribuído; - monitoramento e alertas; - Docker e containers; - ambientes Cloud; - estratégias de cache; - resiliência e tolerância a falhas; - escalabilidade horizontal; - feature flags; - versionamento e compatibilidade de APIs; - estratégias de deploy e rollback. Não é necessário ser especialista em todos esses temas, mas é importante ter repertório suficiente para participar das decisões e orientar tecnicamente o time. ## Liderança e soft skills Para essa posição, capacidade técnica é tão importante quanto a forma de trabalhar com pessoas e com o produto. Buscamos alguém que tenha: ### Proatividade Capacidade de identificar problemas, riscos e oportunidades de melhoria sem depender exclusivamente de direcionamentos externos. Esperamos uma postura de **ownership**, trazendo problemas para discussão e ajudando a conduzi-los até uma solução. ### Responsabilidade sobre o produto Visão de engenharia além da entrega de código. A pessoa Tech Lead deve compreender o impacto das decisões técnicas no produto, nos clientes e no negócio, buscando soluções que equilibrem: - qualidade; - velocidade; - complexidade; - custo; - experiência do usuário; - sustentabilidade técnica. ### Desenvolvimento das pessoas Interesse genuíno em contribuir para a evolução técnica do time. Esperamos alguém capaz de: - orientar desenvolvedores em decisões técnicas; - realizar mentorias; - compartilhar contexto e conhecimento; - fornecer feedbacks construtivos; - estimular autonomia; - criar oportunidades para que outras pessoas assumam desafios técnicos. O objetivo de uma boa liderança técnica não é concentrar decisões, mas **aumentar a capacidade técnica de todo o time**. ### Comunicação Excelente capacidade de comunicação, conseguindo adaptar o nível de detalhe de acordo com o público. É importante conseguir conversar tanto sobre implementação e arquitetura com pessoas de engenharia quanto explicar riscos, alternativas e impactos técnicos para Produto e outras áreas. ### Colaboração entre times Nossa plataforma possui diversas integrações e dependências entre sistemas. Por isso, é importante ter facilidade para construir relacionamento com **outros times de engenharia, arquitetura, produto e áreas parceiras**, conduzindo discussões técnicas e buscando soluções que funcionem para o ecossistema como um todo. ### Capacidade de tomada de decisão Capacidade de tomar decisões técnicas considerando diferentes alternativas e trade-offs. Esperamos alguém confortável em tomar decisões mesmo quando não existe uma solução perfeita, documentando os motivos e revisitando-as quando necessário. ### Pensamento crítico Capacidade de questionar soluções e requisitos de forma construtiva. Mais importante do que simplesmente implementar uma solução é entender **qual problema estamos tentando resolver e por que determinada abordagem é adequada**. ## Diferenciais Serão considerados diferenciais: - Experiência anterior atuando como **Tech Lead, Staff Engineer, Principal Engineer ou referência técnica de equipe**. - Experiência com **TypeScript** em aplicações Node.js e React. - Experiência com **Domain-Driven Design (DDD)**. - Conhecimento de **Clean Architecture, Hexagonal Architecture ou arquiteturas similares**. - Experiência com **Event-Driven Architecture** em ambientes de grande volume. - Experiência com plataformas Cloud como **AWS, Azure ou GCP**. - Experiência com ferramentas de observabilidade como **Datadog, New Relic, Grafana, Prometheus, OpenTelemetry ou similares**. - Experiência com otimização de performance de aplicações e bancos de dados. - Experiência com estratégias de **API Gateway, BFF e gerenciamento de APIs**. - Conhecimento de práticas de **SRE e engenharia de confiabilidade**. - Experiência na definição ou acompanhamento de métricas como **SLI, SLO e SLA**. - Conhecimento de segurança aplicada a sistemas distribuídos e APIs. - Experiência em ambientes com múltiplos times desenvolvendo produtos e serviços altamente integrados. - Experiência no setor financeiro, pagamentos ou ambientes com requisitos elevados de disponibilidade e segurança. ## O que esperamos dessa pessoa Mais do que alguém que conheça profundamente uma determinada tecnologia, buscamos uma pessoa capaz de **elevar o nível técnico do time e do produto**. Esperamos alguém que consiga navegar entre código, arquitetura, produto e pessoas. Uma pessoa Tech Lead de sucesso nessa posição será capaz de: - entrar profundamente em um problema técnico quando necessário; - ajudar o time a tomar boas decisões sem centralizar todas elas; - antecipar riscos técnicos; - construir boas relações com outros times; - defender qualidade técnica sem perder de vista as necessidades do negócio; - transformar conhecimento individual em conhecimento coletivo; - promover autonomia e evolução das pessoas; - assumir responsabilidade pelo funcionamento e evolução do produto, e não apenas pela entrega de funcionalidades. Sobre a empresa: # Tech Lead — Full Stack | Node.js, React e Arquitetura de Microserviços ## Sobre a posição

Ver todas as vagas