A highly skilled Senior Software Engineer with extensive experience in designing and building scalable enterprise solutions. Proficient in Java (up to Java 17), Spring Boot, microservices architecture, and event-driven systems. Demonstrated expertise in payment processing, transaction management, and integration with high-throughput systems. Proven ability to lead projects, implement design patterns like CQRS, SAGA, and Outbox, and ensure data consistency across distributed systems. Strong knowledge of DevOps tools including Docker, Kubernetes, and cloud technologies such as Azure.
I designed and built an integration to handle large volumes of transactions to APEX, which is Geidea's new payout and settlement system. I used a microservice and event-driven architecture, applying design patterns like the outbox pattern to ensure that all transactions are properly accounted for.
Technologies Used.
Java 17, Spring Boot, Spring MVC, JPA, MongoDB, Spring Reactive programming (WebFlux), JUnit Testing, Docker, Kubernetes, Redis Stream, Redis Cache.
Designed and built a middleware system that efficiently handles, processes, and federates transactions to various payment platforms, including Visa Installment, Tabby, and Tamara. Leveraging the SAGA pattern for distributed transactions, I ensured robust orchestration and fault tolerance across multiple services. Additionally, I implemented the OUTBOX pattern to maintain data consistency and reliability throughout the transaction lifecycle. This comprehensive approach significantly enhanced the system's ability to manage complex transaction workflows and ensured seamless integration with external payment providers.
Technologies Used.
Java 8, Spring Boot, Spring MVC, JPA, PostgreSQL, JavaScript, Bootstrap 4, React js, and Redux, Spring Web Services (REST), Mockito Testing, HTML5, CSS3, TCP/IP, JSON. Docker, Kubernetes, Kafka.
Geidea e-receipt is made up of a POS app, which sends transaction data to a server that processes it. I designed a system to make it scale using the CQRS pattern and the OUTBOX pattern to mitigate the loss of events.
Technologies Used.
Java 8, Spring Boot, Spring MVC, JPA, PostgreSQL, JavaScript, Bootstrap 4, React js, and Redux, Spring Web Services (REST), Mockito Testing, HTML5, CSS3, TCP/IP, JSON. Docker, Kubernetes, Redis stream.
Geidea settlement system gets transaction data, does settlement and reconciliation against bank statement, and does payout to merchants. Designed a system that scales using event-driven architecture with hexagonal and domain-driven design.
Technologies Used.
Java 8, Spring Boot, Spring MVC, JPA, MongoDB, Mockito Testing, JSON. Docker, Kubernetes, Kafka.
Java
Spring Boot
Data Structure
React native
Problem Solving
Logical thinking
Unit testing using Mockito framework
Tomcat
Domain driven design
CQRS
SAGA
Outbox
MySQL
Oracle
Firebase
MongoDB
Git
Docker
Kubernetes
Containerization
Terraform
Java 8 – Java 17
EJB
JPA