Software Engineer · Baguio City, PH

Eight years of shipping the whole stack.

Python services and the React in front of them — lately agent platforms, voice and SMS, and the pipelines that ship them. Rather than list a stack and hope you believe it, this page is built out of mine. Pick any skill and it will show you where it does work: in this page, in the architecture behind it, or in the jobs where I learned it. Some of them open further.

Career path

Sounding Board

Software EngineerNov. 2025 — Present
  • Building toward an automated delivery platform: an issue is filed, triaged, worked by a coding agent, reviewed and deployed, with no human standing in the middle of it.
  • Built the service that opens that path: a multi-stage PR auto-approval pipeline that grew into the triage bot, and the dispatch workflow handing work to the agents.
  • Led the fleet's migration onto Google Cloud Run: eleven services moved to Knative configuration with shared secrets, behind a production promotion workflow.
  • Own much of the CI/CD — composite GitHub Actions for build, push, deploy, rollback and readiness — with database migrations run by the release rather than by hand.
  • Systems and API design across the services, written up and reviewed as design documents before anything is built.
  • Service work across the voice gateway, the SMS agent and the bot — telephony bridged into voice agents, LLM conversation flow and tool calling — and the test suites holding them up.
  • Frontend work on the React and Vite single-page app, using TanStack Query, Tailwind and Radix.
PythonReactJSFastAPISystems Architecture

Freelance Software Developer

IndependentAug. 2023 — Present
  • Building a full enrollment system on Next.js, Express, Postgres and Socket.IO: a marketing site, a role-based portal for students and faculty with live notifications, and a CMS behind both.
  • Built and shipped Next.js sites for a travel agency and for a clothing line.
  • Run the hosting for what I ship — a VPS for the enrollment system, shared hosting and DNS for the client sites — and the maintenance after launch.
NextJSExpressJSPostgresSocketIO

Phitopolis

Software EngineerOct. 2022 — Aug. 2023
  • Co-led the development and deployment of the Datastore Project.
  • Built the frontend in Next.js with Chakra UI as the design framework.
  • Built the backend API in FastAPI, serving the frontend and the other internal services alike.
  • Built the Discussion service for in-app chat with live updates, in Express and TypeScript.
  • Worked on the Notifications service, a websocket server emitting triggers to the frontend.
  • Worked on the Directory Adapter, feeding the application database from LDAP in FastAPI.
  • Helped design the systems and the schemas under them; the project ran several Postgres databases.
  • Deployed the application and its services to the development server.
  • Trained interns across the stacks the project ran on.
NextJSExpressJSFastAPIPostgres

Accenture

Software EngineerJuly 2021 — Dec. 2021
  • Completed the Node.js development track, then joined a delivery project as a developer.
  • Worked on the React frontend and the Express services behind it.
JavaScriptReactJSExpressJS

Pru Life UK

Software EngineerDec. 2019 — Mar. 2021
  • Led development of Pru Life UK Investments' first website in React, then moved it to Next.js.
  • Led the Express backend serving the daily NAVPU feeds.
  • Maintained and supported the Express microservices behind other Pru Life services.
  • Deployed and supported the sites on IIS.
NextJSReactJSExpressJS

IT Managers

Java DeveloperJuly 2019 — Dec. 2019
  • Contracted into Pru Life UK through the IT Managers agency.
  • Started the Pru Life UK Investments website that I went on to lead as a direct hire.
  • Supported business users and third-party vendors through the testing phases.
JavaReactJSExpressJS

University of the Cordilleras ITSS

InternJuly 2018 — Dec. 2018
  • Built the university's mobile Student and Parent Portal in Cordova, for the IT Systems and Services office.
  • Worked on the office's existing PHP and MySQL web systems.
JavaScriptHTMLCSSPHP

Freelance Software Developer

Mobile & desktopMay 2018 — May 2020
  • Built mobile and desktop applications to client specification for thesis projects — Android in Kotlin and Java, games and desktop tools in C# with Unity.
  • Built LAMP-stack websites for capstone projects, with Firebase and SQLite behind the mobile apps.
JavaPHPKotlin

How this site is built

A pnpm and Turborepo monorepo. Every word on this page — the roles, the projects, the skills, even the cards below — is a row read from the FastAPI service through a repository port. There is no bundled copy to fall back on, which is the only way the page can be trusted to be current. The skill rail, the two panels, the job tags that open a breakdown and the indicator above are the only client components. Dashed cards are the layers that are not serving this page yet.

Data sourcechecking…
Client
Browser

Server-rendered HTML arrives first; only the trace layer hydrates.

Framework
Next.js App Router

Server components for all content, one client boundary for the trace interaction.

Design system
packages/ui

Five layers: headless hooks, polymorphic primitives, variant-bound elements, domain components, then the thin leaves the page places.

Data
packages/data

A repository port with one adapter behind it: the HTTP client generated from the API's OpenAPI schema. Nothing that renders the page knows where the rows came from.

Build
Turborepo + pnpm

Four workspace packages, typechecked together. Developed on Windows through WSL.

API
FastAPI service

The read API for this CV, with an OpenAPI schema generating the TypeScript client.

Persistence
Postgres

Jobs, skills and the join between them as rows — which is what makes the trace a query rather than an array filter.

RuntimePlanned
Docker behind NGINX

One container per service on an Ubuntu VPS, with TLS terminated at the edge. The same box that runs the enrollment system.

The technical detail

The tiers a request passes through, what a GET, a POST, a PATCH and a DELETE each do on the way down and back, and the database schema — drawn from the database itself.

View the architecture

Projects

Ongoing

School enrollment system

Built as separate services per function — marketing site, role-based school portal with live notifications, and a CMS. Run with Agile methodology.

NextJSExpressJSPostgresSocketIOSequelizeTailwindCSS
OngoingPersonal

Larga Ready

Scores how ready a Philippine destination is to visit over a given date range, 1-10, from weather, crowd, price, access and event data rather than opinion. Collectors enrich it from trusted sources with a local Ollama model or Claude doing the extraction, and a corroboration pass across sources before anything reaches the deterministic scoring engine.

TypeScriptNextJSPostgresLLM Applications
Shipped

Travel and tours website

Marketing and contact site using Next.js API routes to fan inquiries out to Facebook and email. Deployed on Namecheap web hosting.

NextJS
Shipped

Clothing line website

Catalogue and contact site for a clothing line.

NextJS