Responsabilidades e atribuições
- Definir a Arquitetura de Software: Estabelecer padrões arquiteturais robustos (Clean Architecture, Hexagonal ou DDD) e decidir sobre a divisão de microsserviços ou monolitos modulares.
- Gerenciar DevOps e CI/CD: Criar e manter pipelines de integração e entrega contínua (GitHub Actions, Azure DevOps) e orquestrar a containerização das aplicações (Docker, Kubernetes).
- Otimizar Performance de Dados: Liderar a modelagem avançada no PostgreSQL, analisando planos de execução de queries, criando índices e implementando estratégias de cache distribuído (Redis).
- Implementar Observabilidade: Garantir que as aplicações tenham logs estruturados, métricas e rastreamento distribuído (Serilog, OpenTelemetry, Grafana/Prometheus ou Datadog) para diagnóstico rápido de falhas.
- Garantir Qualidade e Segurança: Configurar ferramentas de análise estática de código (SonarQube) e validar práticas de segurança (OWASP) nas Web APIs e autenticação (Keycloak/OAuth2).
- Mentoria Técnica Avançada: Guiar o time no uso de recursos modernos do C# (.NET 8+), programação assíncrona complexa e padrões de comunicação entre sistemas (RabbitMQ/Kafka/MassTransit).
- Revisão de Código Estratégica: Focar os Code Reviews em design de código, manutenibilidade a longo prazo e prevenção de memory leaks ou gargalos de performance.
- Gestão de Dívida Técnica: Identificar trechos de código legado ou ineficiente e planejar refatorações que não impactem as entregas de negócio.
Requisitos e qualificações
- Vivência prévia como Desenvolvedor Sênior ou Tech Lead, liderando tecnicamente entregas de software.
- Conhecimento profundo em C# e ASP.NET Core (versões recentes), incluindo funcionamento interno do framework e gerenciamento de memória.
- Capacidade comprovada de desenhar e implementar arquiteturas escaláveis (Clean Architecture, DDD, Microsserviços ou Monolitos Modulares).
- Experiência profunda com PostgreSQL (ou similar), incluindo modelagem de dados complexa, análise de planos de execução e otimização de queries (Tuning).
- Domínio prático de princípios SOLID, Design Patterns, Clean Code e estratégias avançadas de refatoração.
- Experiência na definição de estratégias de testes automatizados (unidade, integração e carga) utilizando XUnit/NUnit e ferramentas complementares.
- Vivência prática com versionamento avançado (Git), conteinerização (Docker) e criação/manutenção de esteiras de integração e entrega contínuas.
- Excelente comunicação para alinhar requisitos com stakeholders (produto/negócio) e capacidade de mentorar desenvolvedores (Pleno/Júnior).
Diferenciais
- Experiência com soluções de autenticação e autorização, como Keycloak, OAuth2 ou OpenID Connect.
- Conhecimento em sistemas distribuídos e comunicação assíncrona utilizando RabbitMQ, Kafka, MassTransit ou Azure Service Bus.
- Vivência na implementação de métricas, logs estruturados e tracing distribuído (OpenTelemetry, Grafana, Prometheus, Datadog ou ELK Stack).
- Conhecimento em Kubernetes (K8s) para gestão de aplicações em larga escala.