Summary

As a Java Developer with 10 years of experience, I have honed my skills in developing robust and scalable applications using Spring Boot. My expertise spans multiple domains, including banking, e-commerce, traveling, and testing domain as well.

Seeking a senior role in a dynamic organization where my deep expertise in Java development, particularly within the Spring framework, can be leveraged to contribute to the successful delivery of innovative, high-performance systems. Committed to actively participating in the agile development process, I aim to drive continuous improvement, encourage collaboration, and ensure the development of cutting-edge software solutions.

My proficiency in Java, Spring Boot, and other related technologies has allowed me to design and develop efficient and maintainable code. I am also adept at troubleshooting and quickly resolving issues to ensure smooth application performance.

By aligning my proficiency in Spring technologies, troubleshooting acumen, and agile mindset with the organization's goals, I am dedicated to achieving exceptional results and delivering value to both the team and end users.

In addition to my strong background in Back-End development (Java, Spring Boot), I also have experience working as a Full-Stack Developer in projects. During this time, I utilized Angular as the primary Front-End framework, allowing me to contribute effectively to both client-side and server-side development. This experience has broadened my skill set and given me a deeper understanding of the end-to-end development lifecycle.

Overall, I am a dedicated Senior Java Developer with 10 years of comprehensive experience and a proven track record in the design, development, and maintenance of high-quality, scalable systems. Proficient in the Spring Boot and Spring ecosystems, I am committed to delivering efficient and robust solutions that meet the dynamic demands of the modern digital landscape.

Technical proficiencies

Programming Languages: Java, SQL, HTML, JavaScript, PHP

Skills:

Java Framework and Libraries:  

  • I have more than 10 years of working with Java and Java Frameworks, especially SpringBoot, Spring Security, and Spring MVC, Hibernate... Recently, I have had a chance to work with Spring Cloud.
  • Because I work closely with Java, I am familiar with Maven and Gradle. Many features need to migrate data by using Flyway and Liquibase.
  • Working from the server side, I need to provide the APIs to the client side so I have experience with OpenAPI.

Relational/NoSQL Databases:  

  • I have 7 years of experience with some relational databases. As a backend guy, I have more opportunities to work with databases closely which is why I’m familiar with relational and NoSQL databases. Most Java projects always go with MySQL, PostgreSQL, or SQL Server. Recently, NoSQL has been a trend. Some of them are DynamoDB and MongoDB.

SSO Framework:  

  • Having more than 2 years' experience. Almost all projects that I am working on are secured by authentication and authorization using Oauth 2. I used to apply KeyCloak as a 3rd framework.

Front-End frameworks:

  • I am still spending time researching front-end frameworks one of them is Angular, Bootstrap, and Material. Overall, I have 1.5 years of experience with these things.

Cloud Services:  Having more than 1 years of experience working with AWS. Some of the services I am using as below:

  • AWS S3, EC2, RDS, AWS Load Balancing.

Open Sources:

  • I am experienced with Apache Camel as an Enterprise Service Bus for integrating and routing services.
  • Things Board, an open-source IoT platform, for managing and processing telemetry data from IoT devices.

DevOps:  

  • I am not only programming the features of projects but also joining the process of deployment, so I have experience with CI, CD, Docker, and Jenkins.

Regarding source control, I can work with Bitbucket and GitHub.

Regarding source Message Broker: I have more than 4 years of experience with Kafka and RabbitMQ.

Tools: IntelliJ, PHPStorm, Visual Studio Code, Sublime Text, Git, Jira, Slack, Sonar Cloud, Kibana

Professional Experience

Fleet Management - Uganda
Back-end Developer, January 2025 – Current

Project description

  • Fleet Management System (FMS) is an enterprise-level solution designed to monitor, analyse, and manage vehicle fleets in real-time. The platform integrates with both IoT devices and third-party providers to provide comprehensive insights such as vehicle locations, fuel levels, engine health, driver behaviour, and operational efficiency.
  • The architecture is microservice-based, leveraging modern technologies such as Spring Boot, Apache Camel (ESB), Kafka, Redis, PostgreSQL, MongoDB, Kubernetes, and AWS. Data is ingested from GPS trackers, fuel sensors, and other telematics devices, either directly through custom IoT servers (Things Board) or via third-party API integrations handled by Apache Camel. Incoming data is processed, normalized, and routed through Kafka, then visualized in real-time via Web Sockets and intuitive dashboards.
  • The system also includes compliance audit, geofencing, route optimization, driver management, and vehicle maintenance modules. The system also includes compliance audit, geofencing, route optimization, driver management, and vehicle maintenance modules.

Responsibilities

  • Designed the system architecture and developed multiple backend services for real-time tracking, driver-vehicle assignment, route geozoning, and event management, while also consulting on optimal technical solutions to ensure scalability and performance.
  • Integrated with third-party APIs like Mettaxiot and Jimilab (TrackSolid) to ingest GPS and trip data using Apache Camel as an ESB for routing, transformation, and error handling. Built a Kafka-based pipeline to decouple data ingestion from downstream processing workflows.
  • Leveraged the open-source IoT platform ThingsBoard to build a custom IoT Server that collects data directly from GPS and telematics devices. Processed and pushed real-time updates to the iFMS system via WebSocket for live fleet monitoring.
  • Actively participated in daily stand-ups by sharing meaningful progress updates, highlighting critical backend issues, proposing solutions, and collaborating with teammates when needed. Also contributed to code quality through in-depth code reviews—spotting potential problems, applying design best practices, and refactoring to maintain clean, maintainable, and high-quality code throughout the project lifecycle.

Technologies:

  • For the Fleet Management System, we used a range of modern technologies to ensure scalability, performance, and maintainability:
  • The frontend is built with ReactJS for a responsive and intuitive UI, enabling fleet managers to interact with real-time data and control panels seamlessly.
  • The backend is developed using Spring Boot, along with Spring Security, Spring Data JPA, and Apache Kafka for event-driven communication and inter-service integration via Apache Camel as the ESB.
  • For data storage, PostgreSQL handles structured data, MongoDB stores telemetry and time-series data from IoT devices, and Redis acts as a caching layer for high-read traffic.
  • ThingsBoard, an open-source IoT platform, processes incoming telemetry data and streams real-time updates to the backend via WebSockets.

The application is containerized with Docker and Kubernetes for scalability and high availability. GitHub Actions is used for CI, and ArgoCD handles continuous deployment across environments.

Payment (Checkout) - Saudi Arabia
Back-end Developer, November 2023 – January 2025

Project description

  • The project is a B2C platform. It is available as a website and mobile application that provides personal purchasing with simplified payments and elevates experiences. You’re able to split it into 3,4,5…12 payments. No late fees.
  • Overall, we provide a user interface that VueJs built, which helps end-users interact with us, and from the back-end side, we’re using Java technologies, PHP, and GCP to build an ecosystem.

Responsibilities

  • I am not in charge of the whole system but I am responsible for some services that relate to KYC such as:  
  • Checkout Service
  • Fraud Detection Service
  • ID Verification
  • Pre-qualification
  • Decoupling the PHP monolithic to the microservice based on Java Technologies.
  • As a back-end developer, I am in charge of ensuring a stable system. I worked closely with a project team that included 2 Java developers, 2 PHP developers, 2 testers, 2 front-end developers, 1 project owner, 1 project manager, and 1 designer on the successful implementation of a complex project to build a B2C financial platform.
  • Implemented features following the client's requirements utilizing MySQL as the database management system. About the back-end side we decided to use Java frameworks like Spring boot, Spring Data, Spring Security, and Open-API...to implement the features and provide the API. Since this project is based on the Micro-Services architecture we used RabbitMQ and Rest for the communicating between services. To simplify the process of setting up the development environment and deployment we leveraged Docker's robustness as docker-compose.
  • During the time working on the project, I've successfully delivered many below functionalities:
  • Implemented the feature of checking customers’ eligible that are allowed or not allowed to split the payment.
  • Implemented the feature of detecting fraud activities of customers based on their data
  • Implemented the feature of pre-qualification that rejects the customer at the beginning of the process.
  • Implemented the feature of Overdue/Due fallback that allow customer to early settle thier payment.
  • Decoupling the PHP monolithic to the microservice based on Java Technologies.
  • Participated in daily stand-up meetings, consistently providing valuable updates and insights such as identifying critical bugs in the backend code, raising the problem that impacts the whole flow, suggesting solutions, and asking for help... Additionally, actively contributed to code reviews by thoroughly examining the codebase, identifying potential issues, applying design patterns, and cleaning code... to ensure the delivery of high-quality, maintainable code throughout the development process.

Technologies:

  • From the description of the “Responsibilities” section we are applying many new and modern technologies, however, I am going to explain in more detail below:
  • The front-end side uses VueJS to build a UX/UI and consumes the APIs that are provided by the back-end side.
  • The back-end side is responsible for providing APIs and handling the business logic so we're using Spring frameworks like Spring Boot, and Spring Security...And we're using MySQL and SpringJPA
  • Cloud services are the most important technologies in our system. The OCI is the best choice for us until now. We used Docker to publish the images. We also used Gitlab for  CodeBuild and CodePipeline to implement the CI and CD for testing and staging environments.
  • We're implementing the microservices architecture, so we decided to use RabbitMQ as a messages broker that helps our services communicate easily.

Banking System – Malaysia

Java Back-end Developer, October 2021 – October 2023

Project description

  • The banking system focuses on Fraud management is a robust platform built on a microservices architecture, leveraging AWS, Kafka, and Java Spring Boot. This architecture allows for modular development, scalability, and flexibility in handling lending operations.
  • The Fraud management system aims to develop and implement an advanced fraud detection and prevention system for our banking institution. This project is critical to ensuring the security of our customers’ financial assets, maintaining regulatory compliance, and preserving the reputation and trust of our bank in the market.

Responsibilities

  • As a backend developer, my responsibilities in building a fraud management system would include designing and implementing the core functionality and developing the backend logic and business rules.
  • Design and implement the APIs that expose the fraud management system's functionality to other components. These APIs would enable communication and data exchange between the front end, microservices, and other integrations.
  • Designing and implementing the data storage layer of the fraud management system. Using Postgres DB to store and retrieve fraud and transaction records.
  • I would optimize the system's performance by implementing efficient algorithms, database indexing, and caching mechanisms.
  • Writing unit tests to verify the correctness of code and ensure it meets the defined requirements. Participate in code reviews to maintain code quality.
  • I also work closely with front-end developers, data scientists, DevOps engineers, and other stakeholders to ensure seamless integration and smooth operation.
  • Overall, as a backend developer, I am involved in designing, implementing, and maintaining the backend components that power the fraud management process, ensuring functionality, performance, security, and scalability.

Technologies

  • In our project, we have utilized Java, the Spring Framework, Docker, JUnit, AWS, Kafka, and PostgresDB.
  • Java and Spring are used for backend development and cloud deployment. Docker enables containerization, while JUnit facilitates automated testing. AWS serves as the cloud deployment platform, and PostgresDB is utilized for data storage. Avro ensures efficient data serialization and compatibility. Kafka enables messaging and event streaming within the system.

Testing Platform – United States

Full-stack Developer, August 2020 – October 2021

Project description

  • A cloud-hosted solution that help users to deploy test environments to execute automated test scripts simultaneously across multiple browsers and operating systems without having to set up or maintain physical testing resources or third-party configurations.
  • This is a comprehensive cloud-based testing solution that offers an array of features to simplify and optimize the testing lifecycle for software development teams. It is designed to help organizations efficiently run and manage automated tests, enabling them to ensure the quality, functionality, and performance of their applications.
  • In summary, this testing platform is a powerful tool for automating and managing the testing of web and mobile applications, allowing development teams to execute tests more efficiently, improve test coverage, and deliver high-quality software. Its cloud-based nature makes it a convenient and scalable choice for organizations looking to optimize their software testing processes.

Responsibilities

  • As a full-stack developer, I play a crucial role in designing, developing, and maintaining test automation solutions using integrated test automation platform. This role requires a combination of skills in both front-end and back-end development, as well as expertise in test automation
  • I am also responsible for developing a function that allows TestCloud to execute automated test scripts across multiple browsers and operating systems. Besides that, I also work closely with TestOps’s developers to design how to return the test result after execution is finished.
  • In addition to my development and design responsibilities, I also work closely with other members of the team using Agile methodology. This involves participating in daily stand-up meetings, sprint planning sessions, and retrospectives to ensure that we are aligned on project goals and progress. We work in two-week sprints, with each sprint culminating in a demo of the new features developed during that time.
  • As part of our Agile process, I also collaborate with the QA team to ensure that all features are thoroughly tested and meet high-quality standards. This includes designing and implementing unit tests and collaborating with the QA team to ensure that all features are properly tested before release.

Technologies

  • In my project, I used Java, JPA, the Spring Framework, PostgresDB, Docker, JUnit, K8s, and AWS.
  • Java was used for backend development; Spring Framework was used for cloud deployment. PostgresDB for data storage, Docker for containerization, JUnit for testing, and AWS for cloud deployment.
  • On the front end, we used ReactJS to implement the user interface, providing a responsive and seamless user experience.

E-Commerce – Thailand

Full-stack Developer, July 2019 - August 2020

Project description

  • This project is an e-commerce platform in Thailand. It included e-wallet, marketing and technology, e-procurement, data center, and cloud services.
  • Its e-commerce platform is a leading branded marketplace and retail destination for quality brands in electronic gadgets, smartphones, tablets, cameras, home appliances, personal care, health, and beauty products.

Responsibilities

  • Our team focuses on designing and developing the notification feature in this commerce platform. We analyse the requirements and provide the technical solutions. After the technical solution was approved, we made a technical design in detail for notification features such as architecture, technology, and which third party should be used.
  • As a full-stack developer, my responsibilities in building a notification system would include designing and implementing the core functionality and developing the backend logic and business rules. Developing and maintaining user interfaces related to notification management and setting using Angular. Implement Angular components for displaying notifications and their statuses to administrators and end users.
  • Design and implement the event-driven message solution using Kafka to communicate between two services of the notification system. I am also responsible for the failure case of Kafka message queue design, designing the retry topic and dead letter queue pattern to handle it.
  • Integrate with Google Firebase for mobile app notification and internal system for SMS notification.
  • Besides the notification feature, I also support the new requirement in Product and Merchant services.
  • Overall, as a backend developer, I am involved in designing, implementing, and maintaining the backend components of the notification features and some other services.

Technologies

  • We built the microservices architecture based on Spring cloud projects and used JHipsters as a generator for fast-creating web applications, microservices, and mobile applications as well.
  • We used the Java programming language with Spring Boot Framework to implement the backend functionality. For the database, we used MySQL DB to store and manage data securely, while Kafka was used as a message broker to facilitate asynchronous communication between various components of the platform. We also utilized JUnit for automated testing of individual components, ensuring that the platform's functionality was working correctly at all times.
  • Angular as the primary front-end framework for building dynamic and interactive user interfaces
  • Google Firebase is used for the notification server and we also leverage the Gitlab CI to build the CI/CD pipeline.

Social Network Platform – Vietnam

Java Back-end Developer, February 2018 - July 2019

Project description

  • A social network about tourism: the website is where everybody shares and discusses famous places. Travelers can book a tour or find a tour guide on this website.
  • This platform aims to become a travel social network in which everybody can share their experiences while traveling in Vietnam and support the local guide to advertise the attractive tourist destinations in their town.
  • PostgreSQL is used as the database management system. It is a powerful and open-source relational database that provides scalability, data integrity, and a wide range of advanced features. Integrating PostgreSQL with JPA provides a reliable and efficient way to manage the data

Responsibilities

  • As a backend developer on the project, my primary responsibility is to develop a function that relates to managing trips, managing post and post comments, and booking tours for travellers. I work closely with the front-end developers and the design team to ensure that all the process meets the project's requirements. I also developed the APIs that allow the front end to communicate with the backend and the database.
  • I am also responsible for considering and designing the technical solution for managing the location and things to do in each town in Vietnam.
  • Furthermore, I work with front-end developers to create a user interface that facilitates easy access to outstanding post data. I also developed the backend functionality that enables the retrieval and processing of tours and scenic spot data.
  • Overall, my responsibilities as a backend developer on the project involve developing the functional core of the system. I collaborate closely with the front-end developers and the design team to ensure that the system's design and functionality meet the project's requirements. I also ensure that the system is reliable, secure, and scalable to handle high traffic.

Technologies

  • The technology stack for the asset management system project includes Java, Spring boot, Postgres Database, JUnit, ReactJS, and SwaggerUI.  
  • These technologies provide an efficient and reliable platform for developing the system, with Java as the backend language, Postgres Database for data management, JUnit for testing, ReactJS for frontend development, and SwaggerUI for API documentation.

E-Tecketing – Hong Kong

Java Back-end Developer, January 2017 - February 2018

Project description

  • E-Ticketing: In the coming new e-Ticketing and Admission System, two channels including B2B and B2C will be provided for selling tickets.
  • Customers can make advance sales on the B2C channel on the PTC home website. PTC can also conduct business with their business partners such as local travel agencies, overseas travel agencies, and groups on B2B channels by selling electronic tickets. Both B2C and B2B provide a real-time web-based ticketing system that supports ticket reservations via browsers popularly used by the general public.
  • Besides, the sales marketing and finance department uses a reporting system to analyze revenue, sales, channels, and so on.

Responsibilities

  • Our team focuses on designing and developing the selling report in Peak Tram e-ticketing using Spring and Jxls library
  • As a backend developer, my responsibilities are to collaborate with the project team and stakeholders to gather requirements for the selling report feature. Create comprehensive and detailed design documents outlining the architecture, data models, and algorithms required for the implementation.
  • Write clean, efficient, and maintainable Java code that aligns with the detailed design and functional requirements. Ensure that the codebase is well-organized, follows coding standards, and is thoroughly documented for easy maintenance and future enhancements.
  • Develop and execute unit tests to validate the correctness of the implemented code. Debug and resolve any issues or discrepancies found during testing.
  • Integrate the Jxls library into the project to generate selling reports in Excel format. This includes setting up templates, mapping data to the templates, and producing Excel files...

Technologies

  • The technology stack for the asset management system project includes Java, and MySQL Database to store the selling tickets data. Using Spring framework to build a based service to leverage the JPA for interacting with databases.  
  • The Jxls library is used to define the report template, map data, and generate the report in Excel format.

IT HelpDesk Asset Management – Vietnam

Java Back-end Developer, June 2016 - January 2017

Project description

  • The asset management system is a web application that helps organizations manage their assets efficiently. The system is developed using Spring Boot, a popular Java-based framework that provides a robust platform for building web applications. JPA (Java Persistence API) is used to manage the interactions with the database. JPA allows developers to map Java objects to database tables and provides an easy-to-use interface for executing database operations.
  • MySQL is used as the database management system in the asset management system. It is a powerful and open-source relational database that provides scalability, data integrity, and a wide range of advanced features. Integrating MySQL with JPA provides a reliable and efficient way to manage the data.
  • Swagger is used for documenting the RESTful APIs used in the asset management system. Swagger provides a user-friendly interface that allows developers to explore the APIs and test them easily. The Swagger documentation also allows third-party developers to quickly understand the system's functionality and integrate with it.

Responsibilities

  • As a backend developer on the asset management system project, my primary responsibility is to develop a function that allows for the creation of new assets. I work closely with the front-end developers and the design team to ensure that the asset creation process meets the project's requirements. I also developed the APIs that allow the front end to communicate with the backend and the database.
  • I am also responsible for developing a function that enables the allocation of assets to employees. I work with front-end developers to create an intuitive user interface that allows for easy allocation of assets. I also developed the backend functionality that enables the storage and retrieval of asset allocation data.
  • Additionally, I developed a function that allows for the return of assets by employees. I work with the front-end developers to ensure that the return process is clear and easy to use. I also developed the backend functionality that enables the storage and retrieval of asset return data.
  • Furthermore, I developed a function that provides a summary of all assets in the system. I work with front-end developers to create a user interface that facilitates easy access to asset summary data. I also developed the backend functionality that enables the retrieval and processing of asset summary data.
  • Overall, my responsibilities as a backend developer on the asset management system project involve developing the functional core of the system. I collaborate closely with the front-end developers and the design team to ensure that the system's design and functionality meet the project's requirements.

Technologies

  • The technology stack for the asset management system project includes Java, MySQL Database, JUnit, and SwaggerUI.  
  • These technologies provide an efficient and reliable platform for developing the system, with Java as the backend language, MySQL Database for data management, JUnit for testing, and SwaggerUI for API documentation.
Certifications

Education: University of science of Ho Chi Minh City

Bachelor of Information Technology

Navigating OurCooperation Models

We assess your needs first. Then, we will send you the top software engineer CV options so that you can select your favorite. The chosen engineer becomes part of your in-house team.

Ideal for businesses that:
Need specialized expertise but don't want to hire full-time staff
Want to scale resources up and down quickly
Require extra support for upcoming or ongoing projects
You can choose from our numerous software developer CV options. The selected developers form a dedicated team that works exclusively on your project. They also collaborate closely with your in-house team to achieve your goals.

Ideal for businesses that:
Require cost-effective and scalable solutions for large and long-term projects
Want to form a consistent team with excellent skills
Need a development team committed to their business goal
We define a clear path for your project. Since the project has clear timelines and scopes, you can control your budget better. You can also choose to work with a remote team or manage specialized technical roles.

Ideal for businesses that:
Have a set budget and clearly outline the project scope
Struggle with strict deadlines
Handle projects with clear goals, a detailed outline, and achievable milestones
How to Hire Top Developers from Saigon Technology?