Contribute to the improvement of the development and build process
Design and develop production grade, enterprise level systems that make extensive use of messaging and microservices
Participate in the Java implementation of a microservices solution, writing backend code in a reliable, fast, scalable and secure way, satisfying requirements and service level agreements
Write OAUTH authentication mechanisms. Implement validation mechanisms as unit and integration tests
Assist with deployment and configuration of the system. Set up CI/CD pipelines. Familiarity with Kubernetes and Docker is assumed
Follow Scrum procedures and disciplines. Estimate the work to be done upon request
Write technical documentation. Account for secure coding practices, logging and auditing features
Communicate in a clean, concise way, not only to peers but to upper layers when needed
Work with Git following pull request procedure. Write clean, secure and high-quality code
Qualifications
Mandatory:
9+ years of professional experience in Java Backend Development using REST APIs, RDBMs, microservices, CI/CD pipelines and BDD, of which more than 3 years in an Agile/Scrum environment
Sound knowledge of Java and hands-on, provable experience with Spring Boot 3 and Vert.X
Provable experience in production-ready solutions using Apache NiFi 2.0
Experience in at least one production-ready solution using TensorFlow and TensorFlow Java bindings
Experience in OAUTH standard, with sound knowledge of OAUTH standard application design
Sound knowledge of the design and development of back-end components (REST APIs, integrations, microservices)
Sound knowledge of Apache Camel including Enterprise Integration Patterns and messaging patterns involving popular messaging systems (ActiveMQ or RabbitMQ)
Good knowledge of Kafka Streams architecture
Sound knowledge on how to write unit tests for Java
Good knowledge of programming on SQL Server databases with T-SQL
Good knowledge of OOP paradigms and SOLID principles
Good knowledge of software development methodologies (e.g. Agile)
Capable of being part of an Agile Team implementing Scrum (team worker, easy going, good communication capabilities)
Desirable:
More than 2 years of experience in an international/multi-cultural environment
Good knowledge of Kubernetes (image creation, image optimisation, stateful container management, container lifecycle, Helm Charts, probes, upgrade procedures, pod lifecycle, persistent volumes and other specificities related to the development of containerised applications)