qualifications & experience
Qualifications
- Bachelor’s degree in Computer Science, Information Technology, Engineering or related field and/or appropriate courses and certifications
Experience
- 6+ years’ experience in building java-based services
- Experience in either springboot or openliberty microprofile
- Good understanding of modern architecture and design patterns
- Experience with relational and No-SQL databases; Postgresql and MongoDB an advantage
- Good understanding of continuous delivery practices and automation
- Cloud experience will be an advantage
attributes
- Ability to coach others
- Attention to quality
- Practical mindset
- Enjoy learning
competencies
EMPOWERING INDIVIDUALS
Motivates individuals by empowering them, inspire people and groups and encourages them.
DEVELOPING EXPERTISE
Open to taking up learning opportunities, quick in acquiring knowledge and skills and develops expertise through updating of specialist knowledge.
ADOPTING PRACTICAL APPROACHES
Applies practical skills when investigating issues, prefers learning by doing, is practically minded and applies common sense.
TEAM WORKING
Works participatively with others, is democratic and encourages team contributions; collaboratively involves others in decision-making
CHECKING THINGS
Is meticulous in finding errors, ensures accuracy by being thorough and produces high-quality work by being detailed
Design and implement Java-based services
Apply domain-driven design thinking together with architectural patterns to design and create robust services
Apply REST API and event-based microservice best practices including API documentation, security best practices and other non-functionals.
Apply authorization and access control to backend services using e.g. Oauth.
Construct services using Java 1.8+ with JEE 7 using openliberty and microprofile, or springboot.
Package services with docker (knowledge of docker-compose a bonus)
Use SQL (PostgresQL) and No-SQL (Mongodb) databases and write appropriate queries using either Mybatis, direct or an ORM tool e.g. JPA.
Write unit and integration tests, including automated acceptance tests that can be executed via CD pipeline.
Measure both code quality as well as operational monitoring and alerting using SonarQube, Prometheus and Grafana
Use Git for source version control, applied to branching strategies
Participate in code reviews and code-sharing. This may include pair programming, merge requests and more.
Automate Continuous Integration through use of Gitlab, Jenkins or similar to implement a CI pipeline
Conduct cloud deployments and coding of cloud-native applications for AWS as a provider.
COACH OTHER Java DEVELOPERS
Conduct development code reviews with other developers and guide change.
Collaborate by sharing knowledge, suggesting and fostering appropriate training and being willing to be a servant leader to other developers
Able to include others in research and development work, set goals and guide initiatives in a practical way.
Contributes towards with growing the team’s Continuous Delivery maturity, including team standards and engineering best practices
Desired Skills:
- Java Development
- Java technology
- springboot
- architecture
- No-SQL
- Mongo
- CLOUD
- REST
- JEE
- SQL
- GIT
- AWS