At Aleph, we design human experiences by asking the right questions. Here, you’d find a curious breed of creative engineers spread across the globe, specialising in craft, strategy, and technology. With a keen ear to the ground, we turn big dreams into user-first digital solutions by design. Through rigorous prototyping, close collaboration, and responsive engineering, we commit to creating a future that leaves our craft, community, and clients better than before we began.
We are looking for an experienced Senior Java Software Engineer with a strong Java engineering background and extensive experience in banking and payments. The role will focus on understanding complex business requirements, translating them into scalable technical solutions, and driving application development, system design, architecture and integration design. You will be working with our team of engineers and developers who are proficient in IT, programming and software development.
This is a hands‑on software engineering role that combines Java application development with system analysis and solution design. The successful candidate will design, develop, test, enhance and maintain Java‑based banking and payment applications, APIs and microservices. The role will also provide technical direction throughout the software development lifecycle, from requirements analysis and solution design through development, testing, integration and implementation.
The successful candidate will work closely with Product Owners, Business Analysts, Architects, Developers and other stakeholders to define and develop end‑to‑end solutions, technical specifications, APIs, data models and system flows.
Key Responsibilities
- Software Engineering and Development: Design, develop, test, enhance and maintain Java-based applications, APIs and microservices for banking and payment systems. Write clean, maintainable and scalable code aligned with technical specifications and engineering standards. Troubleshoot application issues, resolve software defects and enhance existing software capabilities.
- System Analysis & Solution Design: Analyse complex business and functional requirements and translate them into scalable technical solutions. Define end‑to‑end application and system designs aligned with business and technical requirements. Evaluate existing applications and identify opportunities for improvement, optimisation and modernisation. Define functional and non‑functional requirements including performance, scalability, security, availability and integration requirements. Identify technical dependencies, risks and impacts across applications and systems.
- Application Architecture & Technical Design: Design application architecture, system components and integration patterns. Create solution architecture diagrams, application flows, sequence diagrams and technical design documents. Define service boundaries, APIs, integration patterns and data flows. Provide technical recommendations on application architecture and technology choices. Review existing architecture and recommend improvements to scalability, maintainability and performance. Work with enterprise/solution architects to ensure proposed solutions align with overall architecture standards.
- Drive Requirements Lifecycle: From abstract product vision all the way to detailed functional requirements, system integration, and business processes required to support them.
- Bridge Product Owners and Developers: Translate the high‑level product vision and initiatives into tangible, detailed requirements and software solutions. This can be in the form of working software, technical documentation, systems integration documentation, API specifications, data models, architecture diagrams, process flows, or functional specifications.
- Technical Leadership: Provide technical guidance to development teams throughout the implementation lifecycle. Participate in hands‑on development and code reviews. Review proposed technical solutions and provide feedback on design decision. Support developers in resolving complex software, technical and integration issues. Participate in technical design reviews and architecture discussions.
- Testing and Software Quality: Develop and support software testing and validation procedures. Conduct unit and integration testing and work with quality assurance teams to ensure applications meet functional, performance, security and reliability requirements. Collaborate with Product Owners and Business Analysts to clarify requirements and ensure they are sufficiently detailed for technical solutioning and software development.
- Technical Documentation: Cre