Engenheiro(a) de Software Sênior — .NET / Desktop Cross-Platform
Híbrido/ Local Barueri
Sobre a oportunidade
Buscamos uma pessoa sênior para atuar como referência técnica no desenvolvimento de um agente desktop corporativo multiplataforma (Windows, macOS, Linux), parte central de uma plataforma SaaS B2B enterprise. O agente roda em larga escala em parques de clientes corporativos, com responsabilidade sobre coleta de telemetria, gestão de endpoint e integrações de produto. A plataforma processa hoje milhões de mensagens por dia, em operação tanto em cloud quanto on-premises nos ambientes dos clientes — e o agente está na ponta que gera boa parte desse volume.
Em paralelo, a pessoa atua na evolução dos serviços de backend em .NET que sustentam a plataforma e participa da migração gradual de serviços legados para a arquitetura .NET atual. Parte desses serviços legados está em Node.Js e Python — não esperamos entrega solo nessas stacks, mas esperamos autonomia para ler e executar esse código a fim de entender o comportamento que está sendo migrado.
Procuramos um perfil de engenharia ponta-a-ponta: alguém que pensa em produto, arquitetura, ambiente local, observabilidade, segurança e experiência do desenvolvedor — não apenas no código de uma feature isolada.
Foco da posição
* Primário — desenvolvimento e evolução do agente desktop em C# / .NET, com paridade entre Windows, macOS e Linux.
* Secundário — evolução de serviços de backend em .NET (APIs e workers) que se comunicam com o agente e sustentam o backoffice da plataforma.
* Apoio — leitura e execução de serviços legados em Node.Js e Python como parte do trabalho de migração para .NET.
Stack-chave
Onde se espera entrega autônoma
* C# / .NET — em sistemas reais, em produção
* Aplicações desktop cross-platform em .NET (Windows, macOS, Linux)
* APIs REST e integrações HTTP
* Processamento assíncrono e mensageria
* Bancos de dados relacionais e NoSQL (PostgreSQL, MongoDB, Redis)
* Containers e CI/CD
* Microsoft Azure como plataforma de cloud
Onde se espera consumidor consciente da plataforma
Não esperamos que essa pessoa seja a dona da plataforma de cloud, do cluster ou da stack de observabilidade. Esperamos autonomia para diagnosticar, operar e tomar boas decisões de design sobre o que afeta o serviço dela:
* Kubernetes — uso de linha de comando no dia a dia (logs, exec, port-forward, descrição de recursos), leitura de manifests, entendimento dos componentes essenciais. Suficiente para diagnosticar um problema e abrir uma issue precisa para a plataforma.
* Microsoft Azure — entender as primitivas de cloud usadas pelo serviço (armazenamento, mensageria, gestão de segredos, telemetria) o bastante para tomar boas decisões de design, sem necessidade de provisionar.
* Observabilidade — raciocínio sistêmico: correlacionar logs, métricas e traces, formular hipótese a partir de evidência, escolher o indicador certo para o problema, saber o que instrumentar e por que. Sem responsabilidade por operar a stack.
Onde se espera ler e executar
* Node.Js — rodar serviços localmente, debugar, entender o fluxo
* Python — rodar workers e scripts, entender o que está sendo migrado
* Angular / Ionic — leitura e ajustes pontuais quando o problema cruza fronteira frontend/backend
Responsabilidades
* Evoluir o agente desktop em produção com foco em estabilidade, segurança, performance e paridade entre sistemas operacionais.
* Reduzir dívida técnica e elevar o padrão do código.
* Participar das migrações de serviços legados para a arquitetura .NET atual, com decisões orientadas por contrato e risco — não por reescrita cosmética.
* Atuar em troubleshooting de produção com método: hipótese, evidência e ação reversível.
* Apoiar, quando necessário, a análise de chamados de N2 e N3, com o compromisso de gerar base de conhecimento a cada caso resolvido — de forma que novos acionamentos da mesma natureza sejam tratados nos níveis anteriores e parem de escalar para N3.
* Conduzir code reviews que ensinam, refinamentos com decomposição clara e documentação útil.
* Apoiar desenvolvedores plenos e juniores sem virar gargalo.
* Contribuir para um ambiente local replicável onde qualquer pessoa do time consiga rodar a plataforma inteira sem dor.
Hard skills obrigatórias
Desenvolvimento
* C# em nível avançado, com base sólida em .NET
* Experiência com aplicações .NET rodando em mais de um sistema operacional — não apenas Windows
* APIs REST, integração HTTP e processamento assíncrono
* Concorrência e padrões de resiliência em sistemas distribuídos
* Mensageria assíncrona e padrões associados (idempotência, dead-letter, ordenação)
Bancos de dados
* Modelagem relacional e NoSQL
* Otimização de queries
* Estratégias de cache
Qualidade
* Testes unitários e de integração como parte do fluxo, não como tarefa separada
* Code review como ferramenta de elevação do time
* Histórico de Git inteligível
Segurança
* Gestão de segredos
* Secure coding e OWASP
* Atenção ao contexto desktop: distribuição assinada, atualização segura e proteção de credenciais locais
Outras stacks (no nível "ler e executar")
* Capacidade comprovada de ler e rodar Node.Js e Python para entender o comportamento de um serviço a ser migrado
Diferenciais
* Experiência com agentes ou serviços rodando em endpoint do cliente (não apenas servidor)
* Experiência com frotas distribuídas e telemetria em larga escala
* Vivência com SaaS multi-tenant
* Vivência com plataformas enterprise B2B
* Experiência prévia com migrações de stack sem reescrita big-bang
* Arquitetura orientada a eventos
* Uso de IA e code agents no ciclo de desenvolvimento
Soft skills
Buscamos uma pessoa que:
* Discuta soluções com arquitetos sem ego — defenda posições com dados, mude de ideia diante de argumento melhor.
* Traduza complexidade técnica para negócio.
* Colabore real com QA, SRE, UX e produto, sem virar silo.
* Peça ajuda cedo, compartilhe contexto e evite heroísmo.
* Tenha ownership: investigue causa raiz e traga proposta junto do diagnóstico.
* Tenha maturidade sob pressão: em incidente, priorize fato, log e evidência;
ação reversível antes de ação heroica.
* Tenha mentalidade de produto: questione requisitos quando preciso.
* Tenha humildade técnica: ensine, aprenda, faça code review para elevar pessoas.
* Tenha pragmatismo: arquitetura que entrega vence arquitetura bonita.