Job Summary
Build and maintain high-performing, scalable, enterprise-grade applications & build capability in others to do the same. This includes but is not limited to applying critical thinking, design thinking and problem solving skills in an agile team environment to solve complex technical problems with high quality solutions & leading all phases of the development lifecycle to deliver.
Job Description
The DebiCheck team within our client’s organization is looking for a Senior Java Developer.
DebiCheck is an initiative by the Payments Association of South Africa (PASA) to re-architect the way that debit orders are processed. The debit orders are now electronically confirmed by the customer (Debtor) with their bank on a once-off basis, relating to a new contract that they have signed with a company (Creditor). DebiCheck has been implemented by all banks in the industry and our team represents clients at an industry level as well as servicing all internal channels and product houses. This creates opportunity and exposure to a number of different business areas within the bank. From a technical point of view, our stack is 95% in-house built using open-source technologies. The application has been architected with a micro services approach and implemented as SpringBoot applications deployed into containers which runs within the Rancher platform. The application needs to be performant as we are required to process a very large number of transactions. We employ a DevOps approach to our work which means we support the full lifecycle of our product from development to production. We have a number of upcoming projects that are a mix between technical redesign of some parts of the applications, enhancing existing components as well as replacements of some other legacy applications which DebiCheck will supersede once fully implemented in industry.
Technical Skills:
Java8, SpringBoot, Docker, Kubernetes, Rest, MQ, Spring cloud, Camel, Spring batch (optional), Cloud computing principals will definitely help
Debi Check knowledge advantageous.
DevOps
- Apply critical thinking, design thinking and problem solving skills in an agile team environment to solve complex technical problems with high quality solutions
- Contribute to all phases of the development lifecycle including e.g. design process
- Determine operational feasibility of solutions by evaluating analysis, problem definition, business requirements, solution development and proposed solutions
- Develop high quality software / application design and architecture in a test driven & domain driven / cross domain environment
- Produce well-organised, optimized, and documented source code and take ownership of your technical delivery
- Ensure designs & solutions support the technical organisation principles of self-service, repeatability, testability, scalability & resilience
- Apply general design patterns and paradigms to deliver technical solutions
- Create & Maintain Sophisticated CI / CD Pipelines (authoring & supporting CI/CD pipelines in Jenkins and deploy to multi-site environments – supporting and managing your applications all the way to production)
- Use & configure modern observability techniques to provide a deeper understanding of the application. To do this, leverage e.g. aggregated logging via ELK stack, metrics via Prometheus / Grafana / NewRelic and distributed tracing like Zipkin/Jaeger etc.
- Automate tasks through appropriate tools and scripting
- Debug existing source code and polish feature sets.
- Work with guilds and other technical SME’s to improve and evolve technical products and services
- Apply unit testing frameworks and perform integration, validation and verification testing (apply knowledge of stubbing tools e.g. wiremock, hoverfly etc.)
- Apply version control and related concepts and techniques
- Align all application development & development process to Architecture, Security & Infrastructure guidelines
- Work with project & program teams (when required) to plan & manage the development lifecycle e.g. releases, risk management, testing, integration etc.
- Conduct reviews, performance monitoring & ongoing optimization and maintenance on applications
- Stay ahead of the curve on emerging technologies and development practices e.g. scripting languages, containerization etc.
- Contribute to the design & evolution of Architecture, Infrastructure & associated technical standards for the organization
People
- Coach & mentor other engineers
- Conduct peer reviews, testing, problem solving within and across the broader team
- Provide technical subject matter expertise and support in the attraction and recruitment of Product Engineers for the organization
- Participate as a subject matter expert in the development & development planning of the broader product engineering team
- Support the people change teams in the design of adoption processes (Customer, Employee & 3rd Party Adoption)
Risk & Governance
- Identify technical risks and mitigate these (pre, during & post deployment)
- Update / Design all application documentation aligned to the organization technical standards and risk / governance frameworks
- Create business cases & solution specifications for various governance processes (e.g. grooming)
- Participate in incident management & DR activity – applying critical thinking, problem solving & technical expertise to get to the bottom of major incidents
- Deliver on time
Qualifications
Bachelor’s Degree – Information Technology and/or Experience in a similar environment and technical delivery record
Desired Skills:
- SpringBoot