Job Purpose: The incumbent will design, build and maintain scalable software systems, identify and devise solutions to bottlenecks and bugs and contribute to all phases of the Software Development Lifecycle. He/She will also support the tech team to bring product visions to life.
Design, build, and maintain efficient, reusable, and reliable Java code
Identify bottlenecks and bugs, and devise solutions to these problems
Help maintain code quality, organization, and automatization
Create the formal design documentation as required
Contributing in all phases of the development lifecycle.
Translate requirements and use cases into functional applications
Develop code that complies with design specifications and meets security and Java/JEE best practices.
Design, develop and maintain back-end services with a focus on high availability, low latency and scalability.
Conduct code reviews, as requested, to comply with coding standards
Produce and maintain high-quality technical process documentation.
Specifications & Requirements:
The ideal candidate must be;
Creative thinker and problem solver who can help develop scalable software systems
A self-starter and self-motivated person who is willing to support the tech team deliver on its strategic objectives
Passionate about innovation and result oriented
The ideal candidate must have;
Minimum 5 years' of professional Java development experience
Proficient in Java, with a good knowledge of its ecosystems
Solid understanding of object-oriented programming and design patterns
Excellent knowledge of Relational Databases, SQL and ORM technologies
Experience working with Hibernate, Oracle, and MySQL, PostgreSQL databases
Experience with creating, managing and consuming RESTful APIs
Experience working with Spring Framework
Proficient understanding of code versioning tools, such as Git
Experience with, or understanding of CI/CD, AWS infrastructure services, Docker.
Familiarity with build tools such as Ant, Maven, and Gradle
Experience with Automated quality assurance testing, jMeter, unit, and functional testing
Experience developing, profiling, and troubleshooting Java application code and automated testing tools
Knowledge and experience in EFK, Kakfa, AWS Cloud environments, docker containers
Experience in containerization of Springboot microservices
Strong oral and written communication skills
Solid analytical skills with strong attention to detail
Financial Services or banking industry experience preferred
Experience with application performance and memory management, and understand fundamentals of garbage collection.