AI Jobs Map

Mazzatech · Remoto

Desenvolvedor(a) .NET Sênior

RemotePosted 29 days ago
Apply on IndeedIndeedOpens the original posting. AI Jobs Map never asks for your details.

Stack mentioned

.netnosqlc#postgresqlsqlmongodbazureoauthopentelemetrydatadogdockerkubernetesdevopsgitci/cdgithubreacttypescriptnode.jsdrupal

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.

More jobs at Mazzatech