Senior software engineer

I build software end to end.

Data models, services, infrastructure, and the interfaces people use.

Span
20162026
Discipline
Full-stack engineering

Abstract

I’m a senior software engineer and former Solutions Architect. I’ve been building production software since 2016 across multi-tenant SaaS, payment integrations, data pipelines, native mobile apps, and cloud infrastructure. I’ve designed systems for traffic spikes, autoscaling, background workloads, tenant isolation, and reliable deployments. Some of those systems have served a nationwide audience.

On one live product, I led the rebuild from seven services to a modular monolith. Production data showed that the distributed setup added coordination and operational cost without giving us a meaningful scaling advantage. The current version handles the production workload from one deployment and is easier for a small team to operate.

1

Systems

A selection of systems I led from development to production. Some work is private and isn’t shown here.

Multi-Tenant Membership Benefits Platform

2022 – Present[1]. See reference 1

A benefits platform for multiple organizations, rebuilt from seven services into a modular monolith that handles the production workload with less operational overhead.

Problem · Solution · Stack · Outcome
Problem
Each organization needed its own storefront, domain, catalogue, pricing, branding, and access rules. At the same time, benefits had to be issued and redeemed through one shared platform.
Solution
The first build used seven microservices around Kafka and a DynamoDB event store because that architecture was part of the project brief. Once it was live, production data showed that the distributed setup added coordination and operational cost without giving us a meaningful scaling advantage. Too much time was going into order sagas, outbox pollers, and cross-service authentication. I led the rebuild as a modular monolith using Next.js and MySQL. The old service boundaries now live as module boundaries, background work runs separately, and the request hostname determines which tenant to load.
Tech Stack
Next.js · TypeScript · MySQL · Drizzle · AWS · Multi-Tenant
Outcome
The modular monolith now handles the platform’s production workload from one deployment while each organization still gets its own domain and storefront. The system is easier for a small team to operate and continues to ship. Because the client work is private, the public demo rebuilds the tenant routing, catalogues, and theming.

Election Night Results Platform

2025[2]. See reference 2

A national election results site for a news network, using Redis to keep the election-night traffic spike away from the database.

Problem · Solution · Stack · Outcome
Problem
A news network needed to publish national and local results throughout election night. COMELEC released compressed result dumps in batches, and a nationwide audience would hit the same tallies at the same time. Once counting started, there was no room to take the site offline for a fix.
Solution
A Go pipeline unpacked each COMELEC release and loaded it into ClickHouse, where the national and local tallies were calculated. The frontend fetched each fresh set of results once, then served the rest from Redis. ClickHouse handled the calculation. Redis handled the audience.
Tech Stack
Go · ClickHouse · Redis · MySQL · Next.js
Outcome
The site ran as the network's public quick count through election night. Tallies refreshed as each COMELEC release arrived, and the site is still online.

Golf Club Booking & Membership System

2019 – 2021[3]. See reference 3

A booking and membership system that replaced paper and spreadsheets for daily club operations.

Problem · Solution · Stack · Outcome
Problem
Golf clubs were managing tee times, membership records, and events across paper and spreadsheets. Staff and members also needed different ways to work with the same schedule.
Solution
We built one Node.js and MongoDB backend with two frontends. Staff used a console for schedules, memberships, and events, while members had a separate booking flow.
Tech Stack
Node.js · Vue · React · MongoDB
Outcome
It became the daily system for bookings and membership records across the club. The client system is private, so the public demo rebuilds the member booking flow.
2

What I build

The parts of a product I usually own, from the API and data model to the interface and deployment.

I build customer-facing products and the internal tools that keep them running.

E-commerce and storefronts

[1]. See reference 1

Catalogues, carts, checkout, fulfilment, and tenant-specific storefronts on custom domains.

Native iOS and Android apps, along with React Native when it is the better fit.

APIs and data models built around how the product actually works.

Data pipelines and reporting

[2]. See reference 2

Imports, background jobs, aggregates, and reports for operational data.

Cloud infrastructure

AWS workloads, autoscaling, container orchestration, Infrastructure as Code, and deployment pipelines designed around the traffic and the team operating them.

Payment integrations

Checkout, billing, webhooks, retries, and reconciliation.

System integrations

[6]. See reference 6

Connections to payment providers, couriers, accounting software, CRMs, and other APIs.

Authentication and identity

[1]. See reference 1[5]. See reference 5

Sign-in, sessions, permissions, and tenant access boundaries.

AI features

AI features with evaluations, usage limits, and cost controls in place before they ship.

3

How I build

How I make technical decisions, keep projects moving, and leave the code for the next person.

Start with the proven option

A new tool has to earn its place. The maintenance cost lasts much longer than the excitement of adding it.

Ship in small steps

I would rather put a small, complete version in production and learn from it than spend months guessing. Tests, reviews, and observability are part of that pace, not a cleanup phase.

Use AI and stay accountable

Claude Code and ChatGPT Codex are part of my daily workflow. I use them to test ideas quickly and get through repetitive work. I still review everything, and I am responsible for what ships.

Own what happens after launch

If I own a feature, I own what happens after it ships too. That includes the deployment, the odd edge cases, and anything the original ticket missed.

Leave it clear for the next person

I write decisions down, keep boundaries clear, and avoid clever code that needs a guided tour.

Fit the architecture to reality

I design for the traffic we expect and the team that has to run it. If those facts change, the architecture can change too.

4

Technologies

The tools I use most often in production.

Backend

06
  • TypeScript
  • Node.js
  • Bun
  • Hono
  • Go
  • Laravel

Frontend

04
  • React
  • Next.js
  • Vue
  • Tailwind CSS

Databases

06
  • PostgreSQL
  • MySQL
  • MongoDB
  • ClickHouse
  • Redis
  • D1

Infrastructure

09
  • AWS
  • Kubernetes
  • Terraform
  • AWS CDK
  • Cloudflare Workers
  • Durable Objects
  • R2
  • Docker
  • GitHub Actions

Mobile

03
  • Swift
  • Kotlin
  • React Native

AI-assisted development

02
  • Claude Code
  • ChatGPT Codex
5

References

Working products and public demos for the systems above. Two demos rebuild the technical core of private work.

Correspondence

If you have a question about the work above, email me.

hi@jericop.dev