Descrição do Cargo
O Engenheiro de Software é uma profissão que abrange o desenvolvimento e gestão de serviços distribuídos e autônomos, tanto de software quanto embarcados.
Esses serviços são projetados para serem altamente disponíveis e confiáveis, construídos com base em ferramentas reutilizáveis, adaptadores, arquitetura comum e padrões de design computacional.
Eles dão suporte a fluxos de trabalho, lógica de negócios, transformação e comunicação bidirecional entre infraestrutura, fontes de dados, plataformas de dados e serviços de API/Edge — formando os sistemas centrais da organização.
Responsabilidades do Cargo
* Projetar, desenvolver, testar, implantar, manter e aprimorar soluções de software.
* Contribuir para o design e desenvolvimento de soluções de ponta a ponta, com foco em sistemas backend.
* Construir camadas de dados e serviços utilizados por aplicações para interagir com bancos de dados como MS SQL, Oracle, entre outros.
* Participar da definição de contratos e esquemas para APIs e serviços de middleware.
* Estabelecer padrões, criar bibliotecas de componentes e contribuir com documentação.
* Adotar aprendizado contínuo no dia a dia, utilizando tempo de trabalho para conquistar certificações e credenciamentos.
Habilidades e Qualificações Requisitadas
Para exercer o cargo de Engenheiro de Software, é necessário:
1. Graduação em Ciência da Computação ou área relacionada.
2. Fluência no idioma Inglês.
3. Experiência prática no desenvolvimento de software escalável.
4. Excelente compreensão do ciclo de vida de desenvolvimento de software (SDLC) e da execução de soluções ponta a ponta.
5. Experiência no design, implementação e consumo de serviços de API, além de padrões de arquitetura orientada a serviços (SOA).
6. Experiência com C# .NET e/ou Python para construção de serviços backend, adaptadores e ferramentas.
7. Experiência no desenvolvimento de serviços distribuídos desacoplados.
8. Capacidade de depuração e profiling de aplicações, visando eficiência, escalabilidade e estabilidade.
9. Experiência com arquiteturas RESTful e orientadas a eventos.
10. Conhecimento prático de serviços em nuvem Azure.
11. Conhecimento de especificações OpenAPI/Swagger.
12. Familiaridade com mecanismos modernos de autorização que possibilitam acesso seguro baseado em papéis.
13. Domínio de conceitos centrais de programação, como algoritmos e estruturas de dados.
14. Experiência com Git, Azure DevOps ou outras ferramentas de CI/CD.
15. Conhecimento em Infrastructure as Code (IaC) e Terraform será um diferencial.
16. Conhecimento de GraphQL e outras estratégias de API será um diferencial.