Check out my Blog 🌟

Nice to meet you,
I'm Calvin.

Software engineer building modern payment systems and combining machine learning with real-world applications.

📍
Living and working in NYC
💻
Building a modern payments platform @ CLEAR
Training for an Ironman & finding new coffee shops in my free time

Projects

Subscriptions & Payments | CLEAR

Tools & frameworks:
JavaK8sDropwizardStripeGithub ActionsDatadogBrowserstack

Overview

I joined CLEAR as the founding full-time engineer on the Subscriptions & Payments team, where I helped scale our operations from initial concept and design through production deployment and team expansion.

I helped architect and implement a custom Stripe integration that revolutionized our payment infrastructure, enabling advanced capabilities like dynamic repricing and flexible trial periods that previously involved long downtime or development cycles.

The new system is projected to recover up to $13 million in revenue from failed payments and subscription renewals. I led the strategic rollout of our mobile client deployment, orchestrating a careful ramp-up from 0 to 100% of production capacity, ensuring a seamless transition while maintaining system stability.

Details

  1. Mobile App was our first client in December
  2. CLEAR Web deployed in February
  3. EnVe Pods in all airports March 2025
Dynamic re-pricing functionality

Dynamic re-pricing decreased development effort & downtime required by the legacy system from several sprints to minutes via admin self-service.

Security architecture

First-in-class architecture meant that PII (personally-identifiable information) like PANs don't flow through the new system ensuring security and compliance.

Subscription management

Subscription group upgrading and downgrading functionality allowed users to modify their subscription in turn increasing revenue.

Time Anomalies | Workday

Tools & frameworks:
JupyterXpresso (Java-based OOP)

Overview

Millions of users enter hourly time during their shift every week using time management software. While most of the data entered reflects the actual worked time, users can make mistakes. Once time is submitted, managers and timekeepers need to spend considerable time verifying user input before the time is processed for payroll.

As part of the Time and Scheduling Hub for managers, Workday Time Anomalies automatically reveals possible time-entry errors and alerts managers about unusual time entries. The goal is to save time and improve payroll and labor cost accuracy.

At Workday, I built out components of the cross-team Time Anomalies project that allows managers to detect these unusual time entries using machine learning. I also worked to enhance the delivery of this information to users with the Time Approval Summary filters, which allows managers and supervisors to easily discern and sort through discrepancies with their worker's time.

I deployed the feature through an early adopter phase of 10 customer opt-ins that ultimately scaled to general availability for all Time Tracking customers in Workday 2021.

Time management interface

Job Matcher | Project

Tools & frameworks:
PythonNLPSpaCyScrapyAWS EC2

Overview

Create a natural language processing model that matched user resumes with jobs and delivered a daily ranked list of prospective job postings.

Lessons Learned / Challenges

  • Balancing performance and functionality: The job scraping and matching for users involved compute-intensive operations due to the ML model. Using serverless asynchronous data processing could not only alleviate server load but could also improve user experience.
  • Optimizing the database: A NoSQL database would allow us to quickly update new jobs with flexibility to change our schema as we prototyped.
  • Tuning the algorithm: We could stack programmatic rules with the machine learning algorithm to deliver more accurate predictions.

Details

This project was inspired by a friend who came to me with a problem. Recently laid off from a large Seattle-area tech company, he was looking for a new job. While there were many services to help find jobs, finding a good match with unique skills and experiences required many hours manually parsing job descriptions for a good fit.

What if there was a service that could process and match your resume with related jobs and deliver a ranked list of results daily to aid your job search?

With that idea in mind, we worked together to create Job Matcher, a service that scrapes job posting websites and uses natural language processing to compute similarities between the postings and user resumes. It would prioritize skills (for example, Ruby or AWS Sagemaker) and return to the user a set of matched jobs ranked by the machine learning model's scoring criteria daily.

Architecture

The application consists of several main components: The flask server handles the client interaction including user identification and metadata persistence (resume, email, etc.). To communicate with the MongoDB cluster, we exposed pathways via FastAPI to allow for new user creation, updating of user details, and getting the latest matched resumes.

Job Finder Architecture Diagram

🤖