To be a successful Lead Application Engineer, the candidate will require the following core skills:
- High communication skill - Working at remote - Code quality - Has a passion for code quality, performing thorough code reviews and enforcing good coding standards, practices and tools. - Agile - Follows the ideas and principles of Agile software development practices and testing models, able to lead their team through Scrum ceremonies. - Technical Design - Ability to understand, produce and communicate technical designs (in UML2 for example) to a team of engineers and product owners (producers), adhering to appropriate design patterns.
Ideally, the candidate will have strong experience in the following areas:
- Domain-driven design - Test-driven development - Full stack development - Spring Framework, including Spring Boot and Spring Batch - RESTful Web Services, including Jersey, Spring MVC, JWT - Java ORM & NoSQL - SQL, Hibernate, MyBatis and Redis, Memcached - Git - Maintaining large codebases through competing releases with minimum stress
The candidate must have good experience in the following areas:
- CI/CD & DevOps - Automation of deployments, tests and releases using tools such as Jenkins - Auditing code quality, coverage with SonarQube, understands cyclomatic complexity - Monitoring and logging, knowledge of logging frameworks and troubleshooting all through the technology stack - Testing - Unit and Integration testing using frameworks such as JUnit, DBUnit and Cucumber - Automating UI testing using tools such as Selenium - Process management and documentation using tools such as JIRA, Confluence