Lead Java Developer will be responsible for building Java applications. This includes anything between complex groups of back-end services and their client-end (desktop and mobile) counterparts. Your primary responsibility will be to design and develop these applications, and to coordinate with the rest of the team working on different components of the Application.
Thus, a commitment to collaborative problem solving, sophisticated design, and product quality is essential. The position will work closely with the Senior Manager: Application Development, Business Analysts, Testers and systems support staff. The incumbent reports directly to the Senior Manager: Application Development.
It is expected that the Lead Java Developer will be an individual who is a self-starter skilled, in designing efficient coding solutions, while keeping abreast of current IT technologies so as to assist the organisation in meeting their demanding roll out plans. While managing the organisation's ICT activities, he/she will foster an environment of accountability, excellence, collaboration, continuous improvement and innovation among the staff.
• Design, build, and maintain efficient, reusable code according to best practices;
• Design and develop systems delivering high-availability and performance
• Prepare and produce release documentation for all software releases;
• Support continuous improvement by investigating alternative solution approaches and technologies and presenting these for architectural review;
• Ensure the best possible performance, quality, and responsiveness of the applications;
• Identify bottlenecks and bugs, and devise solutions to these problems;
• Help maintain code quality, organization, and automatization;
• Provide leadership and guidance to coach, motivate, and lead team members to their optimum performance levels and career development;
• Coach junior Java Developers;
• Delivery of software development in compliance with an SDLC and Agile process;
• Develop within a continuous integration environment together with test automation to ensure high quality software component delivery;
• Actively engage with the Enterprise Architecture team so as to ensure establishment and compliance with design standards.
• A degree in Information Technology, or similar relevant qualification;
• A minimum of ten years’ Java experience in at least JDK 1.6;
• A minimum of ten years’ server-side development capabilities;
• Hands on experience in designing and developing applications using Java EE platforms
• Object Oriented analysis and design using common design patterns.
• Profound insight of Java and JEE internals (Class loading, Memory Management, Transaction management etc.)
• Experience in the Spring Framework
• Experience in developing web applications using at least one popular web framework (JSF, Wicket, GWT, Spring, MVC)
• Experience with test-driven development
• Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate)
• Experience with service-oriented architecture and associated software development processes; and Web Services (REST and SOAP).
• Oracle/Sun Java Certification;
• Experience with architecting and implementing highly automated development and testing environments;
• Automation Testing Experience (example Cucumber, Selenium)
• Experience in implementation of industry standard data models (for example UDM), and how to leverage the value thereof;
• Message Queuing (RabbitMQ / Kafka) knowledge;
• Exposure to BPM systems;
• Exposure to Hibernate and Spring;
• Experience of CICD tools (example Jenkins);
• Experience of containers and orchestration on large scale projects (for example Kubernetes, Docker and Docker Swarm;
• Experience of Micro Services; and
• Experience of dynamically scaling software components or services for high transaction volumes.