Descrição de Vaga






Código: 16516
Título da vaga: Desenvolvedor de Software C#  
Local: Santos, SP
Nível Profissional: Sênior
Nível Acadêmico: Ensino Superior Completo
Á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.

Para se candidatar a essa vaga, selecione como voce ficou sabendo da vaga e clique no botão "Enviar o seu currículo" abaixo.
Como você ficou sabendo sobre essa vaga?

Enviar este trabalho para um amigo
Seu nome: 
O nome do seu amigo: 
O endereço de email do seu amigo: 
Importar seus Contatos:

Compartilhar essa vaga

Share