Skip to content

Search jobs right inside Claude, ChatGPT or Cursor.

Connect MCP to your agent →

Decision group

NewBe an early applicant

Desenvolvedor de Software C

Posted Updated
Discussion

Summary

Mid/senior C#/.NET software developer, on-site in Santos, SP, who designs, builds, tests, and sustains internal systems — including REST APIs, system integrations, and SQL database work — applying SOLID, Clean Code, secure development practices, and helping modernize legacy applications.

Nível Acadêmico: Ensino Superior Completo Turno/Horas -- Áreas de Atuação Profissional: TI - Projetos Descrição: Desenvolvedor de Software C# Nível: Pleno / Sênior Modelo: Presencial Área: Tecnologia da Informação Habilidades: Objetivo do Cargo Atuar no desenvolvimento, evolução e sustentação de soluções de software utilizando C#/.NET, aplicando princípios, práticas e padrões de engenharia de software para construir sistemas confiáveis, seguros, escaláveis, sustentáveis e de fácil manutenção. O profissional deve atuar além da implementação de código, participando da análise técnica, definição de soluções, arquitetura, integração entre sistemas, qualidade do código, testes, diagnóstico de problemas e evolução tecnológica das aplicações. O foco é transformar requisitos de negócio e necessidades técnicas em soluções de software estruturadas, sustentáveis e alinhadas à arquitetura tecnológica da organização. Principais Responsabilidades Desenvolver e evoluir aplicações, serviços e componentes de software utilizando C# e .NET, aplicando boas práticas de engenharia e padrões de desenvolvimento. Participar de todo o ciclo de vida do software, desde a análise técnica e definição da solução até desenvolvimento, testes, implantação, sustentação e evolução. Analisar requisitos funcionais e não funcionais, identificando impactos técnicos, dependências, riscos e alternativas de implementação. Avaliar a melhor abordagem técnica para cada necessidade, considerando arquitetura, desempenho, segurança, escalabilidade, integração, manutenção e custo de evolução. Desenvolver soluções com foco em baixo acoplamento, alta coesão, reutilização, legibilidade, testabilidade e facilidade de manutenção. Participar da definição e evolução da arquitetura das aplicações, contribuindo para decisões técnicas relacionadas à estrutura dos sistemas e seus componentes. Aplicar princípios de SOLID, Clean Code, Separation of Concerns, Design Patterns e boas práticas de arquitetura de software. Avaliar impactos e dependências antes de alterações estruturais em sistemas existentes. Contribuir para a modernização de aplicações legadas, reduzindo dívida técnica e dependências tecnológicas que possam comprometer a evolução dos sistemas. Identificar oportunidades de refatoração e melhoria arquitetural, evitando soluções pontuais que aumentem a complexidade ou a dívida técnica. Desenvolver e manter APIs, serviços e integrações entre sistemas internos e externos. Trabalhar com arquiteturas de integração baseadas em APIs REST, serviços, mensageria e outros mecanismos adequados à necessidade da solução. Garantir consistência, segurança, rastreabilidade e tratamento adequado de erros nas integrações. Avaliar impactos de alterações em interfaces e contratos entre sistemas. Desenvolver consultas e operações utilizando SQL e bancos de dados relacionais. Avaliar a forma como os dados são armazenados, relacionados e manipulados pelas aplicações. Garantir consistência e integridade dos dados durante o desenvolvimento e evolução das soluções. Analisar problemas relacionados a dados, identificando possíveis causas em código, consultas, integrações ou regras de negócio. O conhecimento de banco de dados deve ser utilizado como parte da engenharia da solução, não apenas como recurso para desenvolvimento de consultas. Desenvolver software considerando qualidade, confiabilidade, segurança e testabilidade desde sua concepção. Criar e manter testes automatizados sempre que aplicável, especialmente testes unitários e de componentes. Realizar validações técnicas antes da disponibilização da solução para o processo formal de QA. Trabalhar em conjunto com o Analista de Qualidade e Testes de Software, tratando defeitos identificados, analisando suas causas e realizando os respectivos ajustes e retestes. Contribuir para a redução de defeitos em produção e de reincidência de problemas. Investigar problemas técnicos em aplicações, integrações e serviços, utilizando análise de logs, rastreamento de execução, dados e demais mecanismos de diagnóstico. Identificar a causa raiz dos problemas, evitando correções exclusivamente paliativas. Atuar na correção de falhas considerando não apenas o problema imediato, mas também seus impactos e possibilidades de recorrência. Contribuir para melhoria da observabilidade das aplicações, incluindo logs, métricas, monitoramento e rastreabilidade. Desenvolver soluções considerando princípios de Secure Software Development. Aplicar controles adequados de autenticação, autorização, tratamento de dados, validação de entradas e proteção contra vulnerabilidades conhecidas. Considerar segurança desde a concepção da solução, evitando que requisitos de segurança sejam tratados somente após o desenvolvimento. Utilizar adequadamente sistemas de controle de versão, especialmente Git. Trabalhar com branches, pull requests, code review e estratégias adequadas de versionamento. Participar da evolução de processos de CI/CD, quando aplicável. Contribuir para a automatização de build, testes e implantação das aplicações. Documentar decisões técnicas relevantes, componentes, integrações e particularidades necessárias à manutenção das soluções. Realizar e participar de revisões de código, buscando identificar problemas de qualidade, segurança, desempenho, arquitetura e manutenção. Compartilhar conhecimento técnico com os demais integrantes da equipe. Propor melhorias de padrões, ferramentas, bibliotecas, frameworks e práticas de desenvolvimento. Contribuir para a criação e evolução dos padrões técnicos de desenvolvimento da área de TI. Conhecimentos e Competências Obrigatórios C# e plataforma .NET; Programação orientada a objetos; Princípios de Engenharia de Software; SOLID e Clean Code; Design Patterns; Desenvolvimento de aplicações e serviços; Desenvolvimento de APIs REST; SQL e bancos de dados relacionais; Git e controle de versão; Tratamento de exceções e erros; Logging e diagnóstico de aplicações; Análise e resolução de problemas; Testes de software, especialmente testes unitários; Conhecimento de arquitetura e design de aplicações; Capacidade de interpretar requisitos funcionais e não funcionais; Capacidade de análise de impacto técnico. Conhecimentos Desejáveis ASP.NET Core; Entity Framework / Entity Framework Core; Arquitetura em camadas; Clean Architecture; DDD; Microsserviços; Mensageria e processamento assíncrono; Docker e containers; CI/CD; Azure DevOps ou GitHub; Cloud Computing, especialmente Azure; Observabilidade, métricas, logs e tracing; Testes automatizados; Testes de APIs; Práticas de DevSecOps; Event-driven architecture; Performance e escalabilidade; Ferramentas de análise estática de código; Ferramentas de IA aplicadas à Engenharia de Software. Diferenciais Será considerado diferencial possuir experiência com: sistemas corporativos de alta criticidade; integração entre múltiplos sistemas; ERP, TMS, WMS ou sistemas operacionais; sistemas com grande volume de dados e transações; modernização de sistemas legados; definição e evolução de arquitetura de software; automação de testes e pipelines; práticas de DevOps/DevSecOps; desenvolvimento orientado a APIs; aplicação de IA no ciclo de desenvolvimento de software; ambientes com forte necessidade de rastreabilidade, disponibilidade e continuidade operacional. Conhecimento prévio do segmento de logística, transporte, comércio exterior, recintos alfandegados, terminais ou armazenagem será considerado um diferencial, mas não constitui requisito obrigatório. ______________________________________________________________________________________________________________________________________________ Engenharia de Software como Princípio O profissional deve demonstrar maturidade para compreender que desenvolver software não significa apenas escrever código. A atuação esperada envolve: Entender Analisar Projetar Desenvolver Testar Revisar Entregar Monitorar Evoluir Cada solução deve considerar, conforme sua criticidade: Funcionalidade + Arquitetura + Qualidade + Segurança + Dados + Performance + Testabilidade + Manutenibilidade + Evolução O profissional deve buscar soluções que resolvam a necessidade atual sem criar, desnecessariamente, novos problemas técnicos para o futuro. Integração com os Demais Perfis de TI O Desenvolvedor de Software C# / .NET atuará de forma integrada aos demais papéis da equipe: Analista de Negócios, Processos e Projetos estrutura o problema, processo, necessidade e requisitos. Desenvolvedor de Software C# / .NET analisa tecnicamente, projeta e constrói a solução de software. Analista de Qualidade e Testes de Software valida funcionalmente e tecnicamente a solução, incluindo os resultados produzidos no banco de dados. Infraestrutura / Segurança / Tecnologia garante os recursos, ambientes, segurança e condições necessárias para operação da solução. Dessa forma, o desenvolvimento deixa de ser uma atividade isolada e passa a fazer parte de um processo estruturado de engenharia de software. Perfil Comportamental Espera-se um profissional: com forte raciocínio lógico e capacidade analítica; orientado à solução de problemas; preocupado com qualidade e sustentabilidade técnica; capaz de questionar requisitos e decisões técnicas quando identificar riscos ou inconsistências; organizado e comprometido com entregas; colaborativo e disposto a compartilhar conhecimento; interessado em evolução tecnológica; capaz de compreender o contexto funcional da solução; responsável pelo resultado técnico daquilo que desenvolve; com visão de longo prazo sobre manutenção e evolução do software. Indicadores de Sucesso A atuação poderá ser avaliada, entre outros aspectos, por: qualidade das soluções desenvolvidas; redução de defeitos em produção; redução de reincidência de problemas; redução de retrabalho; qualidade e manutenibilidade do código; cumprimento de prazos e compromissos técnicos; evolução da cobertura de testes automatizados; redução de dívida técnica; melhoria de desempenho e estabilidade das aplicações; qualidade das integrações; evolução da arquitetura; redução da dependência de soluções legadas; adoção de boas práticas de Engenharia de Software. Conceito do Perfil O profissional ideal é um Desenvolvedor de Software C# / .NET com mentalidade de engenharia de software. Não se espera apenas a capacidade de transformar uma especificação em código, mas a capacidade de entender o problema, avaliar alternativas, projetar uma solução adequada, desenvolver com qualidade, testar, diagnosticar, evoluir e sustentar o software ao longo de seu ciclo de vida.

Skills

Apply

See also

Software Engineering jobs by country — openings, pay and top skills →