Senior Java Engineer
Role details
Job location
Tech stack
Job description
-
Identify, prioritize, and execute tasks in the software development life cycle
-
Develop tools and applications with clean, maintainable, and secure code and guide the rest of the team in doing so
-
Demonstrate excellent RDBMS skills (design, implementation, migration) working with large amounts of data in production systems
-
Conduct code reviews and provide feedback to help the team keep the code quality high
-
Review and debug code
-
Implement REST APIs
-
Deploy and maintain dev & production systems
-
Apply best practices in software engineering
-
Write Unit tests
Requirements
-
University-level degree (at postgraduate level is a plus) in Computer Science, Information Technology, or a relevant field of study
-
5+ years of proven working experience with at least one Java framework (preferably Spring 4+) and ORM framework
-
Excellent RDBMS skills (design, implementation, migration) working with large amounts of data in production systems.
-
Experience in implementing REST APIs.
-
Excellent understanding of concurrency in Java
-
Understanding of distributed computing principles and challenges.
-
Understanding of how to write clean, maintainable, and secure code as well as guiding the rest of the team in doing so.
-
Experience in implementing REST APIs.
-
Experience with OAUTH
-
Experience deploying and maintaining production systems
-
A strong drive to follow and apply best practices in software engineering
-
Experience in Unit tests using JUnit or Spock
-
Good understanding of Docker.
-
Familiarity with Microservice architecture
-
A strong drive to follow and apply best practices in software engineering
-
Excellent oral and written communication skills
-
Excellent presentation skills
-
Excellent command of English language
-
Proficient in Java and RDBMS
Nice-to-have skills:
- Experience with K8S
- Experience with at least one of the major cloud providers (ie AWS, GCE, Azure)
- Experience in Automated testing (functional tests and integration tests) and CI / CD.
- Experience with JVM languages other than Java
- Demonstrated ability to write Unit tests using JUnit or Spock
- Good understanding of front-end technologies and frameworks
- Event-driven architecture