Responsabilidades
Desenvolver e implementar soluções de software complexas, ;
Participar do ciclo de vida completo do desenvolvimento de software, ;
Realizar análise e design de sistemas, ;
Escrever código limpo, eficiente e testável, ;
Colaborar com outros desenvolvedores e stakeholders. ;
Requisitos
Formação em Ciência da Computação, Engenharia da Computação ou áreas afins ou ainda qualquer curso superior acrescido de especialização na área de informática, com carga horária mínima de 360h;
Experiência comprovada de 3+ anos como Engenheiro de Software, ;
Domínio em linguagens de programação como Java, Python ou JavaScript, ;
Experiência com bancos de dados relacionais e NoSQL, ;
Conhecimento de metodologias ágeis de desenvolvimento. ;
Habilidades
Forte habilidade de resolução de problemas, ;
Excelente comunicação e habilidades interpessoais, ;
Capacidade de trabalhar de forma independente e em equipe, ;
Proficiência em ferramentas de controle de versão (Git), ;
Inglês técnico avançado.
Engenheiro de software com ênfase em ambiente Web: o Linguagens de programação para Web Java, Javascript, Python, Typescript; o Linguagens e notação html, CSS3, JSON, markdown, asciidoc; o Princípios e práticas de desenvolvimento de software ágil, tais como os especificados na metodologia AgiTSE – Framework de Desenvolvimento de Software do TSE; o Padrões de projeto (enterprise integration patterns, design patterns, microservices patterns); o Arquitetura de aplicações para ambiente web, arquitetura em três camadas, modelo MVC; o Domain-driven design (DDD); o Modelagem de dados relacional; o Integração entre sistemas: Mensageria, Web services, REST, EJB; o Integração contínua (continuous integration), test-driven development (TDD); o Publicação de aplicações em plataformas como serviço (Platform as a service – PaaS); o Refactoring; o Entrega contínua (continuous delivery); o Análise estática de código; o Testes de software: teste de unidade, integração, sistema/funcional, aceitação/história, carga, desempenho, vulnerabilidade, usabilidade, acessibilidade; o Automatização de testes funcionais, de unidade e de carga com ferramentas de software. Testes de unidade em Java com a ferramenta JUnit 4 ou superior. Automatização de testes funcionais com a ferramenta Selenium Webdriver 2.4 ou superior. Testes de carga com JMeter 2 ou superior; o Construção de consultas a bancos de dados em linguagem SQL; o Controle de versão de código-fonte e outros artefatos com uso das ferramenta GIT 2 ou superior.