Desenvolvedor Full Stack Senior
Krav:C#GraphQLGitAzureGoogle CloudDockerKubernetesCloudFrontendBackendDevOpsQA/TestCI/CD
Tarefas
- Desenvolvimento de Software: projetar, construir e evoluir aplicações backend robustas, seguras e escaláveis utilizando C# e o ecossistema .NET, com forte foco na criação de APIs RESTful e arquitetura de microsserviços.
- Operação em Nuvem e Orquestração: realizar o deploy, a configuração e a manutenção de aplicações em nossa infraestrutura no Google Cloud Platform (GCP), gerenciando e escalando os serviços ativamente em clusters Kubernetes.
- Garantia de Qualidade: escrever código limpo, documentado e testável. Criar e manter rotinas de testes automatizados (unitários e de integração) para garantir a resiliência das entregas.
- Revisão de Código (Code Review): participar ativamente das revisões de código da equipe, garantindo a adoção de boas práticas, padrões de projeto (Design Patterns, SOLID) e segurança.
- Colaboração e Integração: trabalhar em estreita colaboração com os times de Front-end, Mobile e Produto para entender os requisitos do negócio, definir contratos de APIs eficientes e entregar funcionalidades de ponta a ponta.
- Monitoramento e Troubleshooting: acompanhar a saúde dos microsserviços em produção, analisar logs, identificar gargalos de performance e atuar de forma ágil na resolução de bugs ou incidentes.
- Manutenção e Refatoração: avaliar continuamente a base de código existente para propor melhorias de arquitetura, atualizações de versão de frameworks e redução de débito técnico.
- Participação no Ciclo Ágil: engajar-se nos ritos ágeis (dailies, plannings, refinamentos), ajudando na estimativa de tarefas e na tomada de decisões técnicas para o produto.
Requisitos
Requisitos técnicos (obrigatórios)
- .NET / C#: ASP.NET Core, Entity Framework Core, injeção de dependência, async/await.
- Construção e consumo de APIs REST: versionamento, paginação, tratamento de erros e idempotência.
- Modelagem e otimização de banco relacional (SQL Server e/ou PostgreSQL): índices, planos de execução e migrations.
- Cache e NoSQL: Redis, MongoDB ou Firestore.
- Autenticação e autorização: OAuth 2.0, OIDC, JWT e RBAC.
- Observabilidade com Datadog: APM, tracing distribuído, logs estruturados, dashboards e alertas — capacidade de investigar incidentes em produção pela ferramenta.
- Uso avançado de IA no desenvolvimento: trabalho com assistentes de código (Cursor, Claude, Copilot), escrita de specs e prompts que geram código confiável e revisão crítica do que a IA produz.
- Testes automatizados: unitários, integração e contrato (xUnit/NUnit).
- Git: pull requests e code review.
- Docker e CI/CD: Azure DevOps, GitHub Actions ou Cloud Build.
Requisitos desejáveis
- Cloud, com preferência por GCP (Cloud Run, Pub/Sub, Cloud SQL, Secret Manager, VPC/Cloud NAT).
- Arquitetura de microsserviços e mensageria assíncrona (Pub/Sub, Kafka, RabbitMQ).
- Desenvolvimento orientado a especificação (SDD): escrever a spec antes do código e usá-la como contrato com a IA e com o QA.
- Infraestrutura como código (Terraform).
- gRPC ou GraphQL.
- Performance e escalabilidade: profiling, load testing e estratégias de cache.
- Segurança de aplicação: OWASP Top 10, criptografia em trânsito e em repouso e gestão de segredos.
Diferenciais para o contexto de saúde digital
- Integrações com padrões de saúde: HL7 FHIR, TISS/ANS, RNDS e e-SUS.
- Dados sensíveis sob LGPD: anonimização, trilha de auditoria e controle de acesso.
- Integração com sistemas legados hospitalares ou de operadoras (SOAP/XML, arquivos em lote).
- Alta disponibilidade e resiliência em serviços críticos (retry, circuit breaker e DLQ).
Soft Skills
- Comunicação técnica escrita: documenta decisões, escreve PRs e ADRs que outra pessoa entende sem reunião.
- Colaboração em squad: participa das cerimônias, sinaliza bloqueios cedo, negocia escopo com PM e QA em vez de decidir sozinho.
- Autonomia com transparência: puxa a tarefa, destrava o que consegue e expõe o que não consegue no mesmo dia.
- Recebe e dá code review sem defensividade: critica o código, não a pessoa, e aceita críticas ao próprio código.
- Pensamento de produto: pergunta qual problema do usuário a demanda resolve antes de codar.
- Gestão de prioridade e prazo: estima com faixa de incerteza e renegocia quando a estimativa fura.