Vaga: Desenvolvedor Java Pleno/Sênior
Estamos em busca de um(a) Desenvolvedor(a) Java Pleno/Sênior com sólida experiência em desenvolvimento de sistemas corporativos, domínio de boas práticas de engenharia de software e atuação em ambientes ágeis. O profissional atuará em projetos desafiadores, com foco em qualidade, escalabilidade e integração de sistemas.
Responsabilidades
- Aplicar princípios e práticas de desenvolvimento ágil: Manifesto Ágil, Scrum, XP e Kanban.
- Realizar análise de requisitos funcionais, não-funcionais e requisitos ágeis.
- Utilizar padrões de projeto como Design Patterns, SOA, Microservices Patterns e Enterprise Integration Patterns.
- Modelar dados relacionais com clareza e eficiência.
- Projetar e implementar arquiteturas em três camadas e modelo MVC.
- Desenvolver interfaces responsivas e aplicações PWA.
- Integrar sistemas via mensageria (JMS), Web Services, REST, EJB 3 e barramento de serviços (WebSphere Message Broker).
- Programar com tecnologias front-end: JavaScript (ES5/ES6+), Ajax, JQuery, AngularJS 1.5+, Bootstrap 3+, HTML5, XML, CSS3 e ASP.
- Aplicar conceitos de UX e usabilidade.
- Implementar práticas de integração contínua com Jenkins, TDD, ATDD, refatoração e entrega contínua.
- Realizar testes de software: unidade, integração, sistema, aceitação, carga, desempenho, vulnerabilidade, usabilidade e acessibilidade.
- Automatizar testes com JUnit 3+, Selenium WebDriver 2.4+, Protractor e JMeter 2+.
- Desenvolver aplicações Java Web com JEE 6+, JSE 5+, JSF 2.x, JPA 2 e Struts 1.x.
- Programar aplicações desktop com Java Swing.
- Realizar análise estática de código com SonarQube.
- Construir consultas SQL otimizadas.
- Utilizar ferramentas de versionamento como ClearCase e Git.
- Trabalhar com a IDE Eclipse e configurar servidores de aplicação.
- Projetar APIs e aplicações baseadas em microserviços e containers.
- Desenvolver soluções com arquitetura multi-tenancy.
- Implementar e manter processos batch em Java.
Requisitos
- Formação superior em Ciência da Computação, Engenharia de Software ou áreas correlatas.
- Experiência comprovada nas tecnologias e práticas mencionadas.
- Capacidade de trabalho em equipe, boa comunicação e perfil analítico.
Diferenciais
- Certificações em metodologias ágeis ou tecnologias Java.
- Experiência em ambientes de alta disponibilidade e escalabilidade.