O que esta vaga pede
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;
- Fluent
- Validation;
- 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;
- WebApplication <li...