Caro usuário, habilite o javascript para que esse site funcione corretamente.

Desenvolvedor(a) .NET Sênior

* Salário: R$ 11.000 a R$ 20.000 por mês (estimado)

* O valor exibido é uma estimativa calculada com base em dados públicos e referências do mercado. Não garantimos que este seja o salário oferecido para esta vaga específica.

Área: Tecnologia da Informação

Nível: Senior

Sobre a oportunidade

Buscamos um(a) Desenvolvedor(a) .NET Sênior com forte experiência em engenharia de software, arquitetura backend e desenvolvimento de aplicações robustas, escaláveis e de alta qualidade.
A posição exige um profissional com profundidade técnica no ecossistema .NET, capacidade de tomar decisões arquiteturais, autonomia para conduzir problemas complexos e maturidade para contribuir tecnicamente com outros desenvolvedores.
Mais do que executar tarefas, buscamos alguém capaz de compreender o contexto do problema, discutir trade-offs, propor soluções, implementar arquiteturas sustentáveis e explicar claramente as decisões tomadas.
O profissional atuará em um ambiente com arquitetura distribuída, microsserviços, APIs, mensageria, observabilidade e práticas modernas de engenharia de software.

100% Remoto | Inglês Intermediário B1

Principais responsabilidades
• Desenvolver e evoluir aplicações backend utilizando .NET;
• Projetar APIs REST robustas, seguras, performáticas e escaláveis;
• Participar da definição e evolução da arquitetura das aplicações;
• Desenvolver soluções baseadas em microsserviços;
• Implementar integrações síncronas via APIs e assíncronas via mensageria;
• Modelar domínios, regras de negócio e estruturas de dados;
• Garantir separação adequada de responsabilidades entre as diferentes camadas da aplicação;
• Aplicar princípios de Clean Architecture, SOLID, Clean Code, CQRS e DDD;
• Implementar mecanismos de resiliência para serviços distribuídos;
• Desenvolver e manter testes unitários e de integração;
• Implementar mecanismos de autenticação e autorização;
• Trabalhar com bancos de dados relacionais e NoSQL;
• Implementar observabilidade, tracing, métricas e logs;
• Investigar problemas e gargalos em ambientes produtivos;
• Participar ativamente de code reviews;
• Apoiar decisões técnicas do time;
• Contribuir para evolução dos padrões e práticas de engenharia;
• Compartilhar conhecimento e apoiar o desenvolvimento técnico de outros profissionais;
• Participar de reuniões e discussões técnicas em inglês;
• Documentar decisões, componentes, APIs e arquiteturas de forma clara.

Stack técnica principal
.NET e Backend
Esperamos experiência sólida com:
• .NET 8 ou superior;
• C#;
• ASP.NET Core;
• Minimal APIs e/ou Controllers;
• Desenvolvimento de aplicações de alta disponibilidade;
• Aplicações escaláveis e distribuídas;
• Programação assíncrona;
• Dependency Injection;
• Middleware;
• Exception handling;
• Configuration e Options Pattern;
• Background Services;
• Boas práticas de gerenciamento de recursos e memória.

O processo técnico poderá utilizar .NET 10, portanto o candidato deverá demonstrar facilidade para trabalhar com versões atuais da plataforma.

APIs REST
O profissional deverá possuir experiência consistente na construção e evolução de APIs.
Esperamos conhecimento em:
• Design de APIs REST;
• Verbos e status HTTP;
• Modelagem de recursos;
• Paginação;
• Filtros;
• Ordenação;
• Versionamento;
• Health checks;
• Tratamento padronizado de erros;
• Validação de requests;
• Idempotência;
• Documentação de APIs;
• Swagger / OpenAPI;
• Evolução de contratos sem quebra de consumidores;
• Segurança e performance de endpoints.
O candidato deverá compreender não apenas como implementar endpoints, mas também como definir contratos de API sustentáveis e adequados para ambientes distribuídos.

Arquitetura de Software
Buscamos forte domínio dos seguintes conceitos:
• Clean Architecture;
• SOLID;
• Clean Code;
• CQRS;
• Domain-Driven Design — DDD;
• Design Patterns;
• Dependency Injection;
• Separation of Concerns;
• Microsserviços;
• Arquiteturas orientadas a eventos;
• Integração entre sistemas;
• APIs síncronas e comunicação assíncrona.
O profissional deverá conseguir discutir criticamente decisões arquiteturais e compreender os trade-offs envolvidos.
Não esperamos apenas conhecimento conceitual. O candidato deverá demonstrar experiência prática aplicando esses princípios em sistemas reais.

CQRS e domínio
Esperamos experiência com:
• Separação entre Commands e Queries;
• MediatR ou abordagem equivalente;
• Handlers;
• Pipeline Behaviors;
• FluentValidation;
• Modelagem de domínio;
• Encapsulamento de regras de negócio;
• Entidades;
• Value Objects;
• Domain Services;
• Application Services;
• Eventos de domínio;
• Invariantes de negócio.
É importante que as regras de domínio estejam corretamente posicionadas e não sejam concentradas em Controllers ou na camada de infraestrutura.

Bancos de dados e persistência
Bancos relacionais
Experiência com:
• PostgreSQL;
• SQL Server;
• Modelagem relacional;
• Normalização;
• Índices;
• Queries;
• Transações;
• Concorrência;
• Otimização de consultas.

NoSQL
Experiência com:
• MongoDB;
• Modelagem orientada a documentos;
• Estratégias de consulta;
• Indexação;
• Análise do momento adequado para utilização de bancos relacionais ou NoSQL.

Entity Framework Core
Esperamos conhecimento sólido em:
• Entity Framework Core;
• DbContext;
• Mapeamento de entidades;
• Fluent API;
• Relacionamentos;
• Tracking e No Tracking;
• Queries;
• Migrations;
• Estratégias de atualização de banco;
• Performance;
• Transações;
• Concorrência.

Mensageria e arquitetura orientada a eventos
O profissional deverá possuir experiência com:
• Azure Service Bus;
• Filas;
• Topics e Subscriptions;
• Producers e Consumers;
• Eventos de integração;
• Processamento assíncrono;
• Event-driven architecture;
• Retry;
• Dead-letter queues;
• Idempotência;
• Tratamento de mensagens duplicadas;
• Consistência eventual;
• Tratamento de falhas em ambientes distribuídos.
Também deverá compreender os impactos de mensageria sobre observabilidade, consistência e troubleshooting.

Resiliência
Esperamos conhecimento prático com Polly ou ferramentas equivalentes para implementação de:
• Retry;
• Circuit Breaker;
• Timeout;
• Fallback;
• Controle de falhas transitórias.
O candidato deverá compreender quando aplicar cada padrão e, principalmente, evitar a utilização indiscriminada de retries que possam amplificar falhas em ambientes
distribuídos.

Segurança
Experiência com segurança de APIs incluindo:
• OAuth 2.0;
• OpenID Connect;
• JWT;
• Azure AD / Microsoft Entra ID;
• Keycloak;
• Claims;
• Roles;
• Scopes;
• Policies;
• Authentication;
• Authorization;
• Token validation;
• Refresh tokens;
• Segurança de endpoints.
O profissional deverá compreender a diferença entre autenticação e autorização e conseguir implementar políticas de acesso adequadas ao contexto da aplicação.

Testes e qualidade
Testes automatizados são parte essencial da posição.
Esperamos experiência com:
• xUnit ou NUnit;
• Testes unitários;
• Testes de integração;
• Mocking;
• Testes de handlers;
• Testes de regras de domínio;
• Testes de APIs;
• WebApplicationFactory;
• Estratégias de isolamento de dependências;
• Testabilidade da arquitetura.

O candidato deverá conseguir explicar claramente:
• O que deve ser testado;
• O que não precisa ser testado;
• Diferença entre teste unitário e teste de integração;
• Como garantir confiabilidade sem gerar uma suíte excessivamente frágil.
Código sem cobertura mínima das principais regras de negócio será considerado insuficiente para o nível esperado.

Observabilidade
Esperamos experiência com instrumentação e diagnóstico de aplicações distribuídas.
OpenTelemetry
Conhecimento em:
• Traces;
• Metrics;
• Logs;
• Distributed tracing;
• Instrumentação;
• Propagação de contexto entre serviços.

Datadog
Experiência desejada com:
• APM;
• Logs;
• Distributed tracing;
• Dashboards;
• Monitoramento;
• Análise de erros;
• Investigação de problemas em produção;
• Identificação de gargalos de performance.
O profissional deverá ser capaz de investigar um problema utilizando evidências de produção em vez de depender apenas da análise do código.

Containers e infraestrutura
Experiência com:
• Docker;
• Dockerfile;
• Docker Compose;
• Kubernetes;
• Containers;
• Configuração por ambiente;
• Gerenciamento de secrets;
• Health checks;
• Deploy de aplicações distribuídas.
O candidato não precisa atuar como DevOps, mas deve compreender como sua aplicação será executada e operada em ambientes containerizados.

Versionamento e colaboração
Experiência com:
• Git;
• GitFlow;
• Pull Requests;
• Merge Requests;
• Branching strategies;
• Code review;
• Resolução de conflitos;
• Boas práticas de commits.
Espera-se maturidade para participar tanto como autor quanto como revisor de código.

CI/CD
Desejável experiência com:
• Azure DevOps;
• GitHub Actions;
• Pipelines de build;
• Pipelines de testes;
• Deploy automatizado;
• Quality gates;
• Gestão de ambientes.

Cloud
Desejável experiência com Microsoft Azure, principalmente em ambientes que utilizem:
• Azure App Service;
• Azure Kubernetes Service — AKS;
• Azure Service Bus;
• Azure SQL;
• Storage;
• Key Vault;
• Azure Monitor;
• Application Insights;
• Microsoft Entra ID.

Qualidade contínua
Desejável conhecimento em:
• SonarQube;
• Análise estática;
• Code smells;
• Technical debt;
• Code coverage;
• Quality gates;
• Analyzers do .NET.

Frontend e integração
Embora esta não seja uma posição predominantemente frontend, é desejável que o profissional possua conhecimento ou experiência com:
• React;
• TypeScript;
• Consumo de APIs;
• Integração frontend/backend;
• Contratos de APIs;
• Autenticação em aplicações SPA.
O objetivo é facilitar a colaboração técnica com equipes frontend e permitir uma visão mais completa da solução.

Tecnologias relacionadas ao contexto atual
Conhecimento de:
• Node.js;
• Drupal;
Será considerado diferencial por existir um contexto de migração de plataforma em andamento.
Não é necessário que o candidato seja especialista nessas tecnologias, mas experiência em modernização ou migração de aplicações será valorizada.

Inteligência Artificial
Será considerado diferencial experiência com integração de APIs de IA generativa, incluindo:
• Azure OpenAI;
• OpenAI API;
• Integração de LLMs em aplicações;
• Consumo de APIs de modelos;
• Prompt orchestration;
• Tratamento de respostas;
• Segurança e controle de dados enviados para modelos;
• Observabilidade e controle de custos de integrações com IA.
Não é esperado que o candidato seja especialista em Machine Learning.

Competências comportamentais
Autonomia
Este é um dos principais critérios da posição.
Esperamos um profissional capaz de:
• Receber um problema e conduzir sua análise;
• Buscar informações antes de depender de direcionamento;
• Propor alternativas;
• Avaliar trade-offs;
• Tomar decisões técnicas fundamentadas;
• Identificar riscos antecipadamente;
• Comunicar impedimentos;
• Conduzir uma implementação até sua conclusão.
O candidato não deve depender constantemente de orientação detalhada para avançar.

Proatividade
Esperamos capacidade de:
• Identificar problemas antes que sejam explicitamente apontados;
• Sugerir melhorias arquiteturais;
• Antecipar riscos;
• Questionar requisitos quando necessário;
• Propor melhorias de qualidade;
• Investigar problemas de forma independente;
• Ajudar o time além de suas próprias tarefas.

Curiosidade técnica
Buscamos profissionais que procurem compreender:
• Por que determinada arquitetura foi escolhida;
• Como os serviços se relacionam;
• Como uma aplicação se comporta em produção;
• Quais impactos uma alteração poderá gerar;
• Como melhorar qualidade, performance ou manutenção.
É importante demonstrar interesse genuíno pela engenharia da solução, não apenas pela implementação da tarefa.

Liderança técnica
Experiência ou forte potencial de liderança técnica é relevante para a posição.
Esperamos que o profissional seja capaz de:
• Influenciar decisões técnicas;
• Conduzir discussões de arquitetura;
• Apoiar desenvolvedores menos experientes;
• Realizar code reviews construtivos;
• Explicar conceitos técnicos;
• Compartilhar conhecimento;
• Identificar riscos arquiteturais;
• Propor padrões de desenvolvimento;
• Contribuir para evolução da maturidade técnica do time.
Não é obrigatório ter exercido formalmente o cargo de Tech Lead, mas é importante possuir evidências de atuação como referência técnica.

Comunicação
O profissional deverá possuir comunicação técnica clara e objetiva.
Esperamos capacidade para:
• Explicar decisões arquiteturais;
• Defender uma solução utilizando argumentos técnicos;
• Explicar conceitos complexos para profissionais de diferentes níveis;
• Fazer perguntas quando requisitos não estiverem claros;
• Documentar decisões;
• Dar e receber feedback técnico.

Inglês
Necessário nível intermediário — B1.
O profissional deverá conseguir:
• Participar de reuniões;
• Compreender perguntas técnicas;
• Explicar uma implementação;
• Descrever problemas;
• Comunicar riscos e dependências;
• Interagir com profissionais internacionais.
Não é necessária fluência equivalente a nível avançado ou nativo.

Perfil profissional esperado
Buscamos um desenvolvedor sênior que vá além da implementação de tickets.
O profissional ideal deverá conseguir:
• Compreender o problema de negócio;
• Modelar uma solução;
• Definir responsabilidades entre componentes;
• Implementar a solução;
• Garantir testabilidade;
• Analisar segurança;
• Avaliar performance;
• Identificar riscos operacionais;
• Monitorar o comportamento em produção;
• Defender suas decisões técnicas;
• Evoluir o código quando requisitos mudarem.
A senioridade será avaliada principalmente pela qualidade das decisões e pela capacidade de explicar seus trade-offs.

Diferenciais
Serão considerados diferenciais:
• Experiência avançada com DDD;
• Bounded Contexts;
• Context Mapping;
• Azure Cloud;
• Azure DevOps;
• GitHub Actions;
• SonarQube;
• React;
• TypeScript;
• Node.js;
• Drupal;
• Integrações com Azure OpenAI ou OpenAI API;
• Experiência com modernização de plataformas;
• Experiência com migração de sistemas legados;
• Atuação anterior como Tech Lead ou referência técnica;
• Experiência desenvolvendo outros profissionais.