6330: Desenvolvedor(a) .NET Sênior

Há 3 semanas

, Brasil mazzatech Tempo integral

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 re