Full Stack Developer, FPT Software (2024)
Delivered an end-to-end visa-management platform from start to finish within 5 months.

I worked in a small project team at FPT Software to complete a visa-management platform for a client. I was the core frontend developer and led many of the initial design decisions. There were also several significant backend contributions I made alongside a senior Java Spring Boot developer.
Here are some of the things I helped deliver over the 5 month span:

Our client receives thousands of emails per day, and all are funneled into the application for processing. I worked on a document/form extraction pipeline that detected PDF attachments from emails using the Gmail API and parsed them using Apache PDFBox (a free and open-source tool). The parsed form data then had to be matched to an existing user by name. Forms were split into two categories:
The challenge with raw PDFs is that there is no extractable structure of key-value pairs unlike XFA forms. In addition, these forms had embedded images that also had to be extracted.

My solution for extracting images from raw PDFs was to use the existing layout of the embedded images and extract them based on a fixed width, height, xOffset, and yOffset within the pages. This made sense because of the fixed layout of the forms. Plus, extracting images dynamically with OCR was outside our budget anyway.
As for form fields, we also used the fixed form layout to extract fields using regex. A future improvement could be to use LLM image parsing, if budget allows.
Custom-built table component supporting dynamic row resizing, pagination, searching, filtering, selection, and more. Having a reusable custom table component was key to iterating quickly over several dashboard pages that required displaying lots of tabular data. The table behavior logic is isolated from the UI look and styling in order to achieve a proper headless table component, inspired by Tanstack Table

Added an email template editor into our app to allow admins to directly edit system emails using a rich text editor.

The app is deployed on Azure VMs (Ubuntu) and containerized using Docker. A deployment script abstracted away many Docker commands and allowed us to easily push/pull images, revert versions, and tail the deployed server logs.