Summary

As a Java Developer with 4+ years of experience, I have honed my skills in developing robust and scalable applications using Spring Boot. My expertise spans multiple domains, including voting, insurance and banking.  

In my previous roles, I have been involved in the full software development life cycle, from requirement gathering to deployment, and have consistently delivered high-quality code that meets business needs. I have experience working in agile/scrum environments and collaborating with cross-functional teams, including product managers, designers, and QA engineers.  

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. Overall, I am a dedicated and results-driven professional who is committed to delivering software solutions that meet or exceed business requirements.

Technical proficiencies

Programming Languages: Java, Kotlin, JavaScript/TypeScript. 

Skills: 

Java Development:

  • SpringBoot, Spring MVC, Spring JPA, Hibernate
  • Unit testing

Database Development:

SQL Databases:

  • SQL Server
  • MySQL
  • Oracle

NoSQL Databases:

  • MongoDB
  • DynamoDB

JavaScript/TypeScript Development:

  • JavaScript/TypeScript
  • JQuery
  • ReactJs
  • VueJS3
  • Jest

Web Development:

  • Single Page Application (Web-based)
  • RESTful Web API
  • HTML5
  • CSS3
  • Bootstrap4

SSO:  

  • KeyCloak, Spring Security, Okta

Message Broker:

  • Kafka
  • RabbitMQ

Other Skills:

  • Object-oriented methodology

Tools:  

Integrated Development Environments (IDEs):

  • IntelliJ
  • Visual Studio Code
  • Sublime Text

Version Control and Code Collaboration Tools:

  • GitHub
  • Bitbucket
  • GitLab

Project Management and Collaboration Tools:

  • Jira
  • Azure DevOps
  • Slack
  • Microsoft Teams

Continuous Integration and Deployment Tools:

  • Jenkins
  • Nexus
  • Kubernetes (Helm chart, vault)

Cloud Services and Other Tools:

  • AWS (EC2, S3, Codebuild, Code Pipeline, MSK, System manager, DynamoDb)
  • OCI (OCI bucket)
  • GCP (GCP bucket)
  • Confluent
  • Datadog
  • Salesforce
  • Lucidchart
  • EKS
Professional Experience

BANKING CARD – Saudi Arabia

Developer, October 2023 – Present

Project description 

  • The Banking Card Microservice, developed using Java Spring Boot, is a robust solution for managing banking card transactions. Its primary functions include processing payments, handling settlements, and managing refunds, all designed to provide a smooth experience for users and merchants.  
  • This microservice processes card transactions in real-time, ensuring that payments are authorized and validated quickly and securely. It automates the settlement process, which means it accurately transfers funds between banks and merchants, generating detailed reports for daily, weekly, and monthly activities. This functionality helps businesses keep track of their financial operations and ensures that all transactions are properly accounted for.  
  • Refund management is another key feature, allowing the service to handle both partial and full refunds efficiently. It navigates different transaction states to ensure that refunds are processed accurately and in compliance with regulatory requirements.  
  • Security is a top priority for the Banking Card Microservice. It uses HashiCorp Vault to securely manage sensitive information, such as API keys and encryption secrets, protecting user data from unauthorized access. The service also adheres to PCI-DSS standards, which are essential for safeguarding payment card information.  
  • Deployed on Kubernetes, this microservice benefits from excellent scalability and reliability. Using Helm charts simplifies the deployment process, ensuring that the application can be easily updated and managed across different environments, from development to production.  
  • Overall, the Banking Card Microservice is essential for modern banking operations, providing the necessary tools to handle transactions efficiently while maintaining a strong focus on security and compliance.

Responsibilities 

  • As a Backend Developer, my responsibilities span a diverse range of tasks focused on building and maintaining robust backend systems that support various applications, including mobile platforms. A key aspect of my role involves designing contracts and APIs that enable seamless communication between our backend services and mobile applications. This includes creating RESTful APIs that are intuitive and efficient, ensuring that mobile developers can easily integrate and utilize the endpoints for data retrieval and submission.  
  • I also focus on integrating with various third-party services, which enhances our application's functionality and enriches the user experience. This involves understanding external APIs, ensuring that all integrations are reliable and performant.  
  • Monitoring application logs is another critical responsibility. I regularly analyze logs to identify potential issues, track application performance, and ensure that all systems are running smoothly. This proactive approach allows me to troubleshoot problems quickly and implement necessary fixes to maintain high availability and reliability.  
  • A significant aspect of my work involves managing interactions with SFTP servers. I am responsible for downloading settlement files, which are crucial for reconciling transactions and ensuring that our financial operations are accurate. To streamline this process, I create automated jobs that handle settlement and refund operations efficiently, minimizing manual intervention and reducing the risk of errors.  
  • Additionally, I oversee the uploading of processed data to Google Cloud Platform (GCP) buckets, ensuring that our data is securely stored and easily accessible for further analysis or reporting.  
  • Collaborating closely with mobile development teams is essential to ensure that the backend services meet their requirements and provide a seamless user experience. I participate in design discussions and provide guidance on API usage, data structures, and performance optimization to support mobile application needs.  
  • Overall, my role as a Backend Developer is to build reliable, scalable, and efficient backend solutions that meet the business's operational needs. I am dedicated to maintaining high standards of security, performance, and user satisfaction, contributing to the overall success of our projects and initiatives.

Technologies 

  • This project utilizes a powerful tech stack to build a robust application. We use Spring Boot to create microservices and JPA for easy interactions with our MySQL database. Kubernetes (K8s) helps us manage and scale our services efficiently. To improve performance, we implement Redis Cache for fast data access and also use Redis for managing concurrent locks, ensuring that critical sections of code are accessed safely without conflicts.  
  • For processing large amounts of data, we use Spring Batch, which handles batch jobs reliably. We also use Docker to package our applications, ensuring they run consistently across different environments. RabbitMQ is included for messaging between services, enabling smooth communication. Finally, the entire project is hosted on Google Cloud Platform (GCP), providing a secure and scalable cloud infrastructure.

FINANCIAL – United States

Java Back-end Developer, July 2023 – September 2023

Project description 

  • The lending system is a robust platform built on a microservices architecture, leveraging AWS, Kafka, Avro, and Java Spring Boot. This architecture allows for modular development, scalability, and flexibility in handling lending operations.
  • The lending system incorporates data analysis and scoring capabilities to make informed lending decisions. By leveraging machine learning algorithms and statistical models, it assesses borrower information, calculates risk scores, and determines appropriate loan terms.  
  • With its microservices architecture, the lending system offers a scalable and reliable solution for efficient loan processing. It harnesses the power of AWS, Kafka, Avro, and Java Spring Boot to provide a secure and robust infrastructure. Through data analysis and scoring, it enables lenders to make informed decisions, promoting efficiency and accuracy in the lending process.

Responsibilities 

  • As a backend developer, my responsibilities in building a lending system would include designing and implementing the core functionality of the lending system, and developing the backend logic and business rules that govern the lending process. This includes handling loan applications, borrower information, credit checks, and scoring algorithms.  
  • Design and implement the APIs that expose the lending system's functionality to other components and external systems. These APIs would enable communication and data exchange between the frontend, microservices, and other integrations.  
  • Integrate the lending system with third-party services and APIs to gather additional data necessary for loan processing including credit bureaus, identity verification services, or financial institutions.  
  • Designing and implementing the data storage layer of the lending system. Using DynamoDB to store and retrieve borrower information, loan details, and transaction records.  
  • I would optimize the system's performance by implementing efficient algorithms, database indexing, and caching mechanisms.  
  • Implementing security measures to protect sensitive borrower information and ensure compliance with data privacy regulations includes encryption, authentication, and authorization 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 frontend developers, data scientists, DevOps engineers, and other stakeholders to ensure seamless integration and smooth operation of the lending system.  
  • Overall, as a backend developer in a lending system, I am involved in designing, implementing, and maintaining the backend components that power the lending process, ensuring functionality, performance, security, and scalability.  

Technologies 

  • In our project, we have utilized Java, the Spring Framework, Docker, JUnit, AWS, Avro, Kafka, and DynamoDB.  
  • 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 DynamoDB is utilized for data storage. Avro ensures efficient data serialization and compatibility. Kafka enables messaging and event streaming within the system.

DIGITAL INSURANCE PLATFORM – United States

Java Back-end Developer, October 2022 – June 2023

Project description 

  • The platform offers a wide range of insurance and bond products, and customers can easily browse, compare, and purchase products with just a few clicks. The platform also includes features such as real-time quoting, policy management, and claim filing to enhance the customer experience.  
  • Overall, our digital insurance platform is a reliable and convenient solution that leverages the latest technologies to provide a seamless experience for customers looking to purchase bonds and insurance.

Responsibilities

  • As a developer on our digital insurance platform, my primary responsibility is to design and develop new features that improve the functionality of the platform and enhance the customer experience. One of the features that I have worked on is the recommended product feature, which involves designing and implementing a recommendation engine that suggests relevant products to customers based on their browsing history and previous purchases. This feature has helped increase customer engagement and sales on the platform.  
  • Another feature that I have worked on is the cancel policy and refund features. I collaborated with the customer service team to design and develop a seamless process that allows customers to easily cancel their policies and request refunds. This involved designing user-friendly interfaces and implementing backend functionality to ensure that the cancellation and refund process is smooth and efficient. This has resulted in a more streamlined workflow and improved customer satisfaction.  
  • 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.  
  • Overall, my role as a developer/designer on our digital insurance platform involves designing and developing new features that enhance the platform, working with other team members to ensure alignment and progress using Agile methodology, and collaborating with the QA team to ensure high-quality outcomes.

Technologies

  • In my project, I used Java, JPA, the Spring Framework, SQL Server, Docker, JUnit, and AWS.  
  • Java was used for backend development, JPA provided an object-relational mapping layer, and Spring Framework was used for cloud deployment. SQL Server for data storage, Docker for containerization, JUnit for testing, and AWS for cloud deployment.

ONLINE VOTING SYSTEM – Canada

Java Back-end Developer, September 2021  - September 2022

Project description 

  • Our voting system is built using Java, Spring Boot, MS SQL Server, and Vue.js 3.  
  • As a full-stack developer, my role involves designing and developing new features that enhance the voting experience and improve the functionality of the platform. This includes working on the frontend, backend, and database layers of the platform, as well as collaborating with other team members to ensure alignment and progress.

Responsibilities

  • As a full-stack developer on the voting system project, I had a range of responsibilities on both the back-end (BE) and front-end (FE) aspects of the system. On the back end, my primary focus was on designing and developing crucial functions that ensured the security and accuracy of the voting process. This involved creating a robust system for generating secure login credentials, implementing algorithms to accurately count votes, and seamlessly integrating and combining vote results from multiple systems.  
  • I worked closely with the security team to ensure that the login credentials generated were secure and unique, and developed backend functionality to verify them during the login process. I also worked with the data analysis team to design and develop a vote-counting system that was reliable, efficient, and scalable. Additionally, I collaborated with the integration team to create API endpoints that could communicate with other systems and securely aggregate and store data.  
  • On the front end, I contributed to enhancing the user experience by working on various components. For instance, I was responsible for implementing the GoogleRecaptchaV2 component, which played a vital role in preventing automated bots from interfering with the voting system. Additionally, I worked on designing and developing the statistic dashboard, providing users with real-time insights and visualizations of the voting data. Furthermore, I contributed to the creation of the settings page, where users could customize their preferences to their specific needs.  
  • To facilitate efficient translation and localization, I also utilized the PhraseApp tool in the development process. This streamlined the process of managing and updating text content within the front-end components, ensuring that the voting system could be easily adapted for different languages and regions. Overall, my contributions as a full-stack developer on the voting system project encompassed both the back-end and front-end, aiming to deliver a secure, user-friendly, and customizable voting experience.  
  • As part of the agile team, I participated in regular meetings and worked closely with other team members to ensure the project's success. I was involved in sprint planning, daily stand-ups, and sprint retrospectives to ensure that the team was aligned and making progress toward the project's goals.  

Technologies

  • We used the Java programming language with Springboot Framework to implement the backend functionality. For the database, we used MS SQL Server to store and manage data securely, while RabbitMQ 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.  
  • On the front end, we used Vue3JS to implement the user interface, providing a responsive and seamless user experience. We also utilized various libraries and frameworks within Vue3JS, such as Vuex and Vue Router, to manage state and routing within the application.
Certifications

Education: Posts and Telecommunications Institute of Technology Ho Chi Minh City

Bachelor of Information Technology

Staff of the quarter 2024

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?