Jerico Pulvera

Jerico Pulvera

Senior software engineer · Philippines · Since 2016

I build software end to end.

I have built production software since 2016, from the database to the screens people use. My work includes multi-tenant SaaS, data pipelines, native mobile apps, and an election results site followed across the Philippines.

What I build

The parts of a product I usually own. Each one links to the projects that show it.

Web applications

Products that customers use, and the internal tools behind them.

Backend APIs & data models

APIs and database schemas that match how the business works.

Data pipelines & high traffic

Imports, background jobs, reporting, and caching for sites that get sudden traffic.

Multi-tenant SaaS & commerce

Catalogues, checkout, and fulfilment, with a separate storefront and domain for each tenant.

Native mobile apps

Swift and Kotlin apps, or React Native when one codebase makes more sense.

Auth, identity & integrations

Sign-in, permissions, tenant separation, and connections to couriers, CRMs, and other APIs.

Cloud infrastructure

AWS, containers, autoscaling, Infrastructure as Code, and deployment pipelines.

Payments & AI features

Billing, webhooks, and reconciliation. AI features ship with evaluations and cost limits.

Selected work

Systems I led from development to production. Open any project to read more. Some of my work is private and not listed here.

2022 to now

Multi-Tenant Membership Benefits Platform

A benefits platform shared by several organizations. I led its rebuild from seven microservices into one modular monolith.

  • Next.js
  • TypeScript
  • MySQL
  • Drizzle
  • AWS
Read the case studyHide details
Problem
Every organization on the platform wanted its own storefront, domain, catalogue, prices, branding, and access rules. Benefits still had to be issued and redeemed in one shared system.
Solution
The brief called for microservices, so the first version had seven of them, connected through Kafka with a DynamoDB event store. After launch, we spent a lot of time on order sagas, outbox pollers, and authentication between services, and the traffic never needed that kind of scaling. I led a rebuild as a modular monolith on Next.js and MySQL. Each old service became a module, background jobs run in their own process, and the request hostname decides which tenant to load.
Outcome
The platform now runs its production workload from a single deployment, and every organization keeps its own domain and storefront. A small team can run it and keep shipping. The client code is private, so the public demo recreates the tenant routing, catalogues, and theming.

2025

Election Night Results Platform

A national election results site for a news network. It stayed up through the election night traffic spike.

  • Go
  • ClickHouse
  • Redis
  • MySQL
  • Next.js
Read the case studyHide details
Problem
A news network had to publish national and local results all through election night. COMELEC released compressed result files in batches, and viewers across the country would request the same numbers at the same moment. Once counting began, the site could not go down.
Solution
A Go pipeline unpacked each COMELEC release and loaded it into ClickHouse, which computed the national and local tallies. The site read each new set of results from ClickHouse once and served every other request from a Redis cache, so the database never saw the audience.
Outcome
The network used it as its public quick count on election night. Tallies updated with each COMELEC release, and the site is still online.

2019 to 2021

Golf Club Booking & Membership System

Booking and membership software that moved a golf club off paper and spreadsheets.

  • Node.js
  • Vue
  • React
  • MongoDB
Read the case studyHide details
Problem
The club tracked tee times, members, and events on paper and in spreadsheets. Staff and members needed to work with the same schedule in different ways.
Solution
We built one Node.js and MongoDB backend with two frontends: a console where staff managed schedules, memberships, and events, and a booking app for members.
Outcome
The club used it every day for bookings and member records. The client system is private, so the public demo recreates the member booking flow.

Earlier client work

Property Listing Portal2019Laravel · Vue

Buyers filtered listings by the details they cared about, browsed photos, and contacted agents. Agents managed their own listings.

Public demo ↗ (opens in a new tab)
Incident Response Platform2018 to 2019React

Used during a national election to log incidents, assign an owner to each one, and track it until it was resolved. Every status change was kept in the history. The demo lists sign-in details on its landing page.

Public demo ↗ (opens in a new tab)
Satellite Imagery Request Portal2018 to 2019Laravel · Vue

Clients drew the area they needed on a map instead of describing it over email. The shape stayed attached to the order until it was delivered.

Public demo ↗ (opens in a new tab)

Personal projects

Simply Finance2025 to nowSwift · Kotlin

An expense tracker where logging a purchase takes a few taps and the monthly view shows where the money went. The iOS and Android apps are native. The first version was React Native.

App Store & Google Play ↗ (opens in a new tab)
Goalist2024React · TypeScript

Breaks a long-term goal into steps you can check off, and keeps a history of your progress.

Live app ↗ (opens in a new tab)
Pusoy Dos2021 to 2022React · WebSockets

A four-player online card game. The server holds the table state, checks every turn, and ranks the hands.

Play it ↗ (opens in a new tab)
Game of the Generals2019Node.js · React

A turn-based strategy game where piece ranks are hidden. The server settles every challenge, so neither player can see the other side of the board.

Play it ↗ (opens in a new tab)
eCampus2016 to 2017Laravel · Vue

A school portal where teachers posted grades and students checked their standing and class rank.

Live portal ↗ (opens in a new tab)

Technologies

The tools I use most in production.

Backend

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

Frontend

  • React
  • Next.js
  • Vue
  • Tailwind CSS

Data

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

Infrastructure

  • AWS
  • Kubernetes
  • Terraform
  • AWS CDK
  • Cloudflare Workers
  • Docker
  • GitHub Actions

Commerce

  • Shopify Plus
  • Hydrogen
  • Storefront API
  • Shopify Functions

Mobile

  • Swift
  • Kotlin
  • React Native

How I build

How I make technical decisions and keep projects moving.

  1. 01

    Pick proven tools

    I add a new tool only when it solves a real problem, because someone has to maintain it for years.

  2. 02

    Ship small

    I put a small working version in production early and improve it from what I learn there.

  3. 03

    Size the architecture to the need

    I design for the traffic a system will likely see and the team that will run it.

  4. 04

    Stay on after launch

    I handle the deployment, the edge cases, and the things the ticket left out.

  5. 05

    Use AI and review the output

    I use Claude Code and Codex every day, and I read every change before it ships.

  6. 06

    Write it down

    I record decisions, keep modules separate, and write code the next person can follow.