PalmPay is an Africa-focused fintech firm, launched in 2019. PalmPay is a mobile payments platform that offers a number of financial services.
We are recruiting to fill the position below:
Job Title: Senior Software Engineer (Java & Spring Boot)
Location: Ikeja, Lagos
Job Description
We are seeking a highly skilled Senior Software Engineer with deep expertise in Java and Spring Boot to join our engineering team.
The ideal candidate will be responsible for designing, developing, and maintaining robust and scalable backend systems, focusing on payment solutions, gateways, and libraries.
Previous experience working in banks or other fintech establishments is required.
As a key member of the backend team, you will collaborate with developers, architects, and stakeholders to deliver high-quality software solutions that meet both technical and business requirements.
Key Responsibilities
Design and Development: Build and maintain scalable, reliable, and high-performance backend payment services and APIs using Java and Spring Boot.
Architecture & Design: Collaborate with architects and engineers to design and implement payment systems that meet performance, scalability, and reliability goals.
Code Quality: Write clean, maintainable, and efficient code following best practices (SOLID principles, design patterns, etc.) and the company’s engineering standards.
Testing & Debugging: Write unit, integration, and performance tests. Debug and troubleshoot issues in production independently or with QA and other team members.
Microservices Development: Design and develop microservices that integrate seamlessly with the broader system architecture.
Database Management: Work with relational and NoSQL databases, ensuring proper indexing, query optimization, and data integrity.
API Development: Build RESTful APIs and ensure efficient communication between backend and frontend systems, with strong knowledge of payment library development supporting core payment services.
Security & Performance: Implement security best practices (encryption/decryption, authentication, authorization) and optimize performance for highly available systems.
Collaboration: Work closely with cross-functional teams including frontend, DevOps, PM, and QA to deliver high-quality features.
Code Reviews: Conduct code reviews, provide feedback, and mentor junior engineers to maintain high code quality.
Continuous Integration & Deployment: Work with CI/CD pipelines, automated build systems, and cloud environments to ensure smooth deployments and minimal downtime.
Technical Documentation: Write and maintain documentation for system designs, API specifications, and development processes.
Required Technical Skills
Java: Expert proficiency (Java 8 and above) with a strong understanding of object-oriented programming, concurrency, and multi-threading.
Spring Boot: Extensive experience building RESTful services and enterprise applications.
Spring Framework: In-depth knowledge of Spring MVC, Spring Data, Spring Security, Spring Cloud, Hibernate, and/or MyBatis.
Databases: Strong experience with SQL (PostgreSQL, MySQL) and NoSQL (MongoDB, Redis).
Messaging Systems: Experience with messaging and event-driven architectures using RocketMQ, Kafka, RabbitMQ, or ActiveMQ.
APIs & Integrations: Skilled in building and consuming RESTful and SOAP APIs; familiar with Swagger or OpenAPI.
Version Control: Proficient in Git for source code management, branching, and pull requests.
Containerization: Experience with Docker and orchestration tools like Kubernetes.
Cloud Platforms: Hands-on experience with AWS, AliCloud, Google Cloud, or Azure.
Testing: Proficient with testing frameworks like JUnit and Mockito; experienced with integration test strategies.
CI/CD: Familiar with DevOps practices, continuous integration, and deployment tools such as Jenkins or CircleCI.
Soft Skills & Communication:
Strong Communication: Ability to explain complex technical concepts clearly to both technical and non-technical stakeholders.
Collaboration: Proven ability to work effectively within and across teams.
Problem-Solving: Excellent analytical and debugging skills for resolving complex technical issues.
Mentorship: Experience mentoring junior engineers and sharing knowledge within the team.
Attention to Detail: Strong focus on quality, maintainability, and performance with effective prioritization skills.
Nice to Have:
Experience with GraphQL.
Knowledge of Reactive Programming using Spring WebFlux.
Familiarity with OAuth2 and JWT for authentication and authorization.
Experience with API Gateways and distributed tracing tools.
Understanding of DevOps principles and experience with infrastructure-as-code tools such as Terraform or Ansible.