Senior Software Engineer
Dhaka, Dhaka, Bangladesh
Full Time
Experienced
PalmPay is a pan-African fintech company currently operating in Nigeria, Ghana, Kenya, Uganda, and Tanzania and expanding to other markets this year. We’re reinventing the payment experience by making it easy and reliable for everyone to transfer money, pay bills and shop online.
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 that focus on developing or integrating payment solutions, gateway and/or libraries, and also have previous experience working in banks or other fintech establishments. As a key member of the backend team, you will work closely with other developers, architects, and stakeholders to deliver high-quality software solutions that meet the technical and business requirements.
Key Responsibilities:
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 that focus on developing or integrating payment solutions, gateway and/or libraries, and also have previous experience working in banks or other fintech establishments. As a key member of the backend team, you will work closely with other developers, architects, and stakeholders to deliver high-quality software solutions that meet the technical and business requirements.
Key Responsibilities:
- Build and maintain scalable, reliable, and high-performance backend payment services and APIs using Java and Spring Boot.
- Collaborate with architects and other engineers to design and implement payment systems that meet performance, scalability, and reliability requirements.
- Write clean, maintainable, and efficient code following best practices in software development (SOLID principles, design patterns, etc.) in relation to the establishment of Engineering SOP.
- Ensure the code is well-tested by writing unit, integration, and performance tests. Debug and troubleshoot issues in the production environment independently or collaborate with QA or other valued member of the team
- Design and develop microservices that can seamlessly integrate with the broader system architecture.
- Work with relational and NoSQL databases, ensuring proper indexing, query optimization, and data integrity.
- Build RESTful APIs and ensure efficient communication between backend and frontend systems and have full knowledge of payment library development that supports core payment services.
- Implement security best practices (e.g., encryption & decryption, authentication, authorization) and performance optimizations for highly available systems.
- Work closely with cross-functional teams, including frontend engineers, DevOps, PM and QA to deliver high-quality features and improvements.
- Conduct code reviews, provide constructive feedback, and mentor junior engineers to ensure a high standard of code quality.
- Understand working with CI/CD pipelines, automated build systems, and cloud environments to ensure seamless deployments and minimal downtime.
- Write and maintain technical documentation for system designs, API specifications, and development processes.
- Java: Expert proficiency in Java (8 and above) with a solid understanding of object-oriented programming, concurrency, and multi-threading.
- Spring Boot: Extensive experience building RESTful services and enterprise applications using Spring Boot.
- Spring Framework: In-depth knowledge of related technologies such as Spring MVC, Spring Data, Spring Security, and Spring Cloud, hibernate and/or Mybatis
- Databases: Strong experience with both SQL (PostgreSQL, MySQL) and NoSQL (MongoDB, Redis) databases.
- Messaging Systems: Experience with messaging and event-driven architectures using tools like RocketMQ, Kafka, RabbitMQ, or ActiveMQ.
- APIs & Integrations: Experience building and consuming RESTful, SOAP APIs and working with API design principles and tools like Swagger or OpenAPI.
- Version Control: Proficient with Git for source code management, branching, and pull requests.
- Containerization: Experience with containerization technologies like Docker and orchestration tools like Kubernetes.
- Cloud Platforms: Experience with cloud environments such as AWS, Ali Cloud, Google Cloud, or Azure.
- Testing: Experience with testing frameworks like JUnit, Mockito, and integration test strategies for ensuring the robustness of backend services.
- CI/CD: must have devops development mindset such as knowledge about continuous integration and deployment pipelines and or ideally using Jenkins, CircleCI, or similar tools.
Soft Skills & Communication:
- Strong Communication Skills: Ability to articulate complex technical concepts clearly and effectively to both technical and non-technical stakeholders.
- Collaboration: Demonstrated ability to work well in a team environment and collaborate across teams.
- Problem-Solving: Strong analytical and problem-solving skills, with the ability to debug and fix complex technical issues quickly.
- Mentorship: Experience mentoring junior engineers and participating in knowledge-sharing activities.
- Attention to Detail: Strong focus on quality, maintainability, and performance in all aspects of software development and good prioritization ability.
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 working with infrastructure-as-code tools such as Terraform or Ansible.
Apply for this position
Required*