Job Description
Bachelor's degree in Computer Science, Computer Engineering or a related field or the foreign equivalent
Extensive knowledge and experience working in an Agile environment
7 + years experience working as a hands-on (actively coding) Application Development Lead or related leadership role
10 to 16 years as Java Application Developer in technology stack below
Technology Stack
Java Expert-level implementation skills with Core Java, Spring Boot, Object Oriented Programming concepts and patterns
CI/CD - Expert-level working with Maven as a build tool and GIT as SCM tool
Database Expert-level implementation skills with ORM frameworks like Hibernate/JPA. Must be highly proficient in SQL preferably across multiple databases
UI - Expert level implementation skills with UI framework such as Angular, React, Javascript, workflow knowledge (Camunda)
Automation - Expert level implementation skills with ATDD, AFT, Unit Testing (JUnit, Karma, cucumber/selenium/contract testing)
Cloud Foundry- Expert-level implementation skills with Gaia (GAP, GKS) and S3 (AWS for object storage)
General Comfortable in more than one programming language and have a firm grasp of fundamental web/internet technologies
Project Management - Knowledge of tools such as Jira, Confluence
Engineering Practices
TDD Must have practical experience with unit testing with preference given to those with an understanding of Mock Testing Frameworks like EasyMock or Mockito
ATDD Experience with Acceptance Test Driven Development including the use of tools like Cucumber and Selenium
Continuous Integration Experience automating builds with Maven using CI Servers like Jenkins/Hudson
Continuous Delivery Experience with automated deployments using a tool like Rundeck
Experienced mentor with the ability to work in a collaborative environment and coach other team members on coding practices, design principles, and implementation patterns that lead to high-quality maintainable solutions.