Summary

I have over 12 years of experience working in software development. I mainly work with Java and Java frameworks such as Spring Framework, and ORM, and the frameworks of migration data such as Liquibase and Lightway.  

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.

Besides that, many projects require the developers to work on both front-end and back-end which helps me to learn much about some technologies like Angular, AngularJS, HTML, and CSS.

I am not only programming the features of projects but also joining the process of deployment so I have a little bit of experience with CI, CD, Docker, and AWS. Regarding source control, I can work with Git, Bitbucket, and GitHub. That is a little bit about me, it's not too much but hopefully, this information help you understand my work and my experiences and so on.

Technical proficiencies

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

Skills:

Java Framework and Libraries:  

  • I have more than 10 years of working with Java and Java Frameworks, especially Spring Boot, 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. 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 AngularJs, Angular, Bootstrap, and Material. Overall, I have more than 2 years of experience with these things.

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

  • AWS S3, EC2, RDS, Route53, AWS Load Balancing.
  • AWS-ECR, AWS-ECS, AWS Code Build, AWS Code Pipeline.

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 3 years of experience with Kafka and RabbitMQ.

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

Professional Experience

E-commerce (Check Out) – Saudi Arabia

Developer, Dec 2023 – Present

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 OCI 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:  

  • 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.
  • 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.

INSURANCE – United States

Developer, January 2019 – Nov 2023

Project description

  • The project is a B2B platform. It is available as a website that provides insurance products to enterprises that can help them protect their properties. All contracts have a premium and getting approval automatically depends upon the entered data of the customer.
  • Overall, we provide a user interface that AngularJS built, it helps end-users interact with us, and from the back-end side, we’re using Java technologies and a Relational database to build the system.

Responsibilities

The whole system includes both the front-end and back-end sides. Front-end provides UI and back-end handles for the business logic. I am one of the back-end guys.

As a back-end developer, I am in charge of ensuring a stable system. I worked closely with a project team that included 5 Java developers, 3 testers, 5 front-end developers, 1 project manager, and 2 business analysts on the successful implementation of a complex project to build a B2B insurance platform.

Implemented features following the client's requirements and maintaining the current features. Using SQL-Server as the relational database. We used Spring Security for authentication and authorization and some services of AWS such as S3, and EC2...for cloud infrastructure. About the back-end side we decided to use Java frameworks like Spring boot, Spring Data, and Open-API...to implement the features and provide the API. The project is monolithic architecture. We used Docker to simplify the process of setting up the development environment. We also build the process of payment and we're using Worldpay as a payment library.

During the time working on the project, I delivered successfully many functionalities:

  • Implemented the feature of purchasing an insurance product.
  • Implemented the feature of questionnaire management.
  • Implemented the feature of up-sale and cross-sale.
  • Implemented the feature of contract approval.
  • Implemented the feature of payment transactions.
  • Cleaned up the procedures by using Java code and refactoring bad lines of code.

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 technologies however, I am going to explain in more detail below:

  • The front-end side is using AngularJS, and NodeJS 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...We're using SQL-Server as a relational database, so we applied the Hibernate to perform the CRUD action on our db.
  • At that time, we were using a physical server and then we were going to use the Cloud services instead of a physical anymore. Finally, we decided that using AWS is the best choice. The most common service is S3 which we use to store the documents and EC2 as a cloud server. Route53 is being used for setting a domain name for server testing.
  • We also used the Command Pattern, Factory Pattern, and Chain of Responsibility to design the complex workflow in our system.
  • There was an important feature that was payment. We were using WorldPay to build up a payment process. The system supported two types of payment: instalment payment and one-time payment.

FINANCIAL – Netherlands

Developer, April 2015 – January 2019

Project description

  • The project is a B2C and multi-tenancy platform. It is available as a website that provides two types of personal loans: mortgage and unsecured loans. All loans will be approved manually based on the entered data of the customer.
  • Overall, we provide a user interface that was built by Angular, which helps end-users interact with us, and from the back-end side, we’re using Java technologies and MySQL to build the system.

Responsibilities

The whole system includes both the front-end and back-end sides. Front-end provides UI and back-end handles for the business logic. I am one of the back-end guys.

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, 1 tester, 1 front-end developer, and 1 project manager on the successful implementation of a complex project to build a B2C financial platform.

Implemented features following the client's requirements and maintaining the current features. Using MySQL as the relational database. We used KeyCloak for authentication and authorization. About the back-end side we decided to use Java EE instead of Spring frameworks and Open-API...to implement the features and provide the API. The project is monolithic architecture. We used Docker to simplify the process of setting up the development environment.

During the time working on the project, I successfully delivered many functionalities:

  • Implemented the feature of authentication and authorization.
  • Implemented the feature of questionnaire management.
  • Implemented the feature of lending money.
  • Implemented the feature of uploading documents.
  • Implemented the feature of the submission application.

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, I 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 technologies however, I am going to explain in more detail below:

  • The front-end side is using Angular 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 Java EE and MySQL as relational databases we applied Hibernate to perform the CRUD action on our DB.
  • This application has been developed for a long time; it is using a physical server. We used Jenkins to develop the CI, CD, and BlueOcean as a view of it.
  • There was an important feature that was sending messages including SMS and email. We used the SendInblue one of the 3rd libraries to help us implement that feature.
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?