Key Purpose
Designs, develops, and implements Java applications to support business requirements. Follows approved life cycle methodologies, creates design documents, writes code and performs unit and functional testing of software. Contributes to the overall architecture and standards.
Areas of Responsibility
- Work closely with business analysts to analyze and understand the business requirements and business case, in order to produce simple, cost-effective and innovative solution designs.
- Implement the designed solutions in the required development language (typically Java) in accordance with best practices, processes, tools and frameworks.
- Test the quality of produced software thoroughly through participation in code reviews, the use of static code analysis tools, creation and execution of unit tests, functional regression tests, load tests and stress tests, and evaluating the results of performance metrics collected on the software.
- Participate in feasibility studies, proof of concepts, JAD sessions, estimation and costing sessions, evaluate and review programming methods, tools and standards.
- Maintain the system in production and provide support in the form of query resolution and defect fixes.
- Prepare the necessary technical documentation including payload definitions, class diagrams, activity diagrams, ERDs, operational and support documentation.
- Drive the skills development of team members, coaching of team members for performance and career development, recruitment, staff training, and performance management.
Personal Attributes and Skills
Behavioral Skills
- Stress Management
- Time management and prioritization
- Creativeness
- Learning orientation
- Negotiation skills
- Innovation
- Bias for action
- Teamwork and cooperation
Technical Skills
- In-depth working knowledge of Java language features.
- High standards for delivery.
- Solution Architecture.
- Structured and analytical problem solver.
- Process Mapping.
- Software testing pack design, functional testing.
- Clean code thinking.
- Coaching and mentoring of junior teammates.
- Understanding of JIRA and Agile principles.
Other
- Overtime may be required from time to time.
- Standby is required on a rotational cycle.
Education and Experience
Education Required:
- Matric.
- BSc/BEng Degree or Diploma in Information Technology or Computer Science or equivalent.
Experience:
- 6 - 10 years’ experience developing Java applications.
Knowledge:
- Extensive experience working with Java.
- Solid understanding of Object-Oriented programming fundamentals.
- High-level understanding of the common frameworks in the Java technology stack.
- Extensive knowledge of design patterns and the ability to recognize and apply them.
- Spring.
- Hibernate.
- JUnit.
- SOA.
- Microservices.
- Docker.
- Data Modelling.
- UML.
- SQL.
- SoapUI (SOAP) / REST client (JSON).
Architectural Styles
- Kafka.
- Zookeeper.
- Zuul.
- Eureka.
- Obsidian.
- Elasticsearch.
- Kibana.
- FluentD.
#J-18808-Ljbffr