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
- Next.js
- TypeScript
- MySQL
- Drizzle
- AWS
- 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
- Go
- ClickHouse
- Redis
- MySQL
- Next.js
- 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
- Node.js
- Vue
- React
- MongoDB
- 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.
- 01
Pick proven tools
I add a new tool only when it solves a real problem, because someone has to maintain it for years.
- 02
Ship small
I put a small working version in production early and improve it from what I learn there.
- 03
Size the architecture to the need
I design for the traffic a system will likely see and the team that will run it.
- 04
Stay on after launch
I handle the deployment, the edge cases, and the things the ticket left out.
- 05
Use AI and review the output
I use Claude Code and Codex every day, and I read every change before it ships.
- 06
Write it down
I record decisions, keep modules separate, and write code the next person can follow.