Full Stack Java Developer
- 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.
- 3 – 5 years’ experience working as a hands-on (actively coding) Application Development Lead
or related role.
- Java – Expert-level implementation skills with Java and J2EE.
- Frequent usage of Spring, Reactive Streams, Threads and Annotation Processors is a benefit.
- Strong security understanding with CSRF, XSS and CORS for browser / native clients.
- Experience with streaming API’s a benefit and supporting large scale API versioning with
- Usage of analytical tools like Splunk and Dynatrace a benefit.
- Spring – Expert-level implementation skills with the Core Spring Framework and including other
sub-projects like Spring Security, Spring data Cassandra Spring Apache Kafka
- Preference for advanced experience with Apache Kafka
- Application Servers – Broad and deep understanding of multiple application server platforms.
- Experience with containers and deployment (Dockers / Kubernetes as an example)
- General – Comfortable in more than one programming language and have a firm grasp of
fundamental web/internet technologies.
ENGINEERING PRACTISES –
- TDD – Must have practical experience with unit testing including deep 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 and 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.
- Excellent communication skills in English (both written and spoken forms)