[LM — v2.026] SENIOR AI FULL STACK DEVELOPER · METRO MANILA, PHILIPPINES

AI-NATIVEFULL STACKENGINEER_

Nine years shipping fintech, enterprise platforms and AI systems that serve millions — currently building LLM copilots, RAG pipelines and autonomous agents in production.

  • 9+YEARS SHIPPING
  • 99.9%PROD UPTIME
  • 30–50%BACKEND PERF GAINS
  • 15+APIS IN PRODUCTION

[01] — SELECTED WORK

SHIPPED & IN PRODUCTION_

CLIENT WORK · 2017—2026

[01]FINTECH / AI

DIGITAL WALLET AT NATIONAL SCALE

GCASH PHILIPPINESSenior Full Stack Developer · 2025—2026

LLM copilots, RAG pipelines and high-throughput payment APIs for one of the Philippines' largest mobile wallets. SSR cut first paint by 40%.

[02]AI AGENTS

ENTERPRISE TELECOM PLATFORMS

TELUS INTERNATIONALSenior Full Stack Developer · 2024—2025

Autonomous multi-agent systems plus 15+ production APIs for a Fortune 500 telco.

[03]CLOUD / OKTA

SERVERLESS CRM & IDENTITY

ACCENTURESenior Software Engineer · 2021—2023

AWS Lambda architecture and Okta SSO for 10,000+ enterprise users; ops cost down 25%.

[04]LEAD / GDPR

CUSTOM CRM PLATFORM

S5 GROUP OF COMPANIESLead Developer — team of 5 · 2021—2022

2x load-speed gains, GDPR-compliant identity and sub-second queries over 50k+ records.

[05]MOBILE / PIXIJS

REALTIME MOBILE & DATAVIZ

MULTISYS TECHNOLOGIESWeb & Mobile Developer · 2019—2020

React Native apps from one codebase, PixiJS visualizations driven by RxJS event streams.

[06]COMMUNITY

THETECHNGANI

FOUNDER — CONTENT BRANDTech community · ONGOING

Development insights, tutorials and industry trends for Filipino engineers.

[02] — SIDE PROJECTS & TOOLS

PROJECTS_

14 SHIPPED · LIVE

[03] — CODEBASE GRAPH

THIS SITE, AS A GRAPH_

100% EXTRACTED · 0 TOKENS

CODEBASE KNOWLEDGE GRAPH207 nodes · 271 edges · 21 communities
contact/route.ts — 2 connectionshits — 1 connectionPOST() — 1 connectionblog/[slug]/page.tsx — 11 connectionsjsonLdSafe() — 2 connectionsinline() — 2 connectionsrenderMarkdown() — 3 connectionsgenerateStaticParams() — 2 connectionsgenerateMetadata() — 2 connectionsBlogPostPage() — 4 connectionsblog/page.tsx — 7 connectionsmetadata — 1 connectionjsonLdSafe() — 2 connectionsBlogIndexPage() — 3 connectionsrss.xml/route.ts — 7 connectionsdynamic — 1 connectionesc() — 2 connectionsGET() — 3 connectionslayout.tsx — 10 connectionsmono — 1 connectionmetadata — 1 connectionviewport — 1 connectionSKILLS — 1 connectionperson — 1 connectionservice — 1 connectionjsonLd — 1 connectionRootLayout() — 1 connectionopengraph-image.tsx — 4 connectionsalt — 1 connectionsize — 1 connectioncontentType — 1 connectionOpengraphImage() — 1 connectionapp/page.tsx — 3 connectionsPage() — 1 connectionprojects/[slug]/page.tsx — 9 connectionscleanUrl() — 2 connectionsfindProject() — 4 connectionsgenerateStaticParams() — 2 connectionsgenerateMetadata() — 2 connectionsProjectPage() — 3 connectionsrobots.ts — 3 connectionsrobots() — 1 connectionsitemap.ts — 7 connectionssitemap() — 3 connectionsAboutPipeline.tsx — 8 connectionsAboutPipeline() — 3 connectionsContact.tsx — 5 connectionsStatus — 1 connectionContact() — 2 connectionsFooter.tsx — 4 connectionsFooter() — 2 connectionsHero.tsx — 10 connectionsHeroParticles — 1 connectionHero() — 4 connectionsHeroParticles.tsx — 1 connectionHeroParticles() — 1 connectionNav.tsx — 4 connectionsNav() — 2 connectionsParticleWave.tsx — 1 connectionParticleWave() — 1 connectionProjectsDone.tsx — 6 connectionscleanUrl() — 2 connectionsProjectsDone() — 4 connectionsSite.tsx — 20 connectionsSite() — 3 connectionsWelcomeOverlay.tsx — 2 connectionsWelcomeOverlay() — 2 connectionsWorkGrid.tsx — 9 connectionsParticleWave — 1 connectionWorkCard() — 1 connectionWorkGrid() — 3 connectionscontent.ts — 25 connectionsSITE_URL — 8 connectionsprofile — 4 connectionsheroStats — 2 connectionsnavLinks — 2 connectionssocials — 3 connectionsProject — 2 connectionsprojects — 2 connectionspipeline — 2 connectionsProjectDone — 1 connectionprojectsDone — 4 connectionsprojectSlug() — 8 connectionseslint.config.mjs — 1 connectioneslintConfig — 1 connectionblog.ts — 9 connectionsPost — 1 connectionBLOG_DIR — 1 connectionparsePost() — 2 connectionsgetPosts() — 11 connectionsgetPost() — 5 connectionsgsap.ts — 5 connectionsGsapBundle — 1 connectionloadGsap() — 7 connectionsuseHeavyFx.ts — 4 connectionsNavX — 1 connectionuseHeavyFx() — 5 connectionsnext.config.ts — 1 connectionnextConfig — 1 connectionpackage.json — 6 connectionsname — 1 connectionversion — 1 connectionprivate — 1 connectionscripts — 5 connectionsdev — 1 connectionbuild — 1 connectionstart — 1 connectionlint — 1 connectiondependencies — 10 connections@gsap/react — 2 connections@gsap/react — 1 connection@types/three — 2 connections@types/three — 1 connection@vercel/analytics — 2 connections@vercel/analytics — 1 connection@vercel/speed-insights — 2 connections@vercel/speed-insights — 1 connectiongsap — 2 connectionsgsap — 1 connectionnext — 2 connectionsnext — 1 connectionreact — 2 connectionsreact — 1 connectionreact-dom — 2 connectionsreact-dom — 1 connectionthree — 2 connectionsthree — 1 connectiondevDependencies — 7 connections@types/node — 2 connections@types/node — 1 connection@types/react — 2 connections@types/react — 1 connection@types/react-dom — 2 connections@types/react-dom — 1 connectioneslint — 2 connectionseslint — 1 connectioneslint-config-next — 2 connectionseslint-config-next — 1 connectiontypescript — 2 connectionstypescript — 1 connectiontsconfig.json — 3 connectionscompilerOptions — 16 connectionstarget — 1 connectionlib — 4 connectionsdom — 1 connectiondom.iterable — 1 connectionesnext — 1 connectionallowJs — 1 connectionskipLibCheck — 1 connectionstrict — 1 connectionnoEmit — 1 connectionesModuleInterop — 1 connectionmodule — 1 connectionmoduleResolution — 1 connectionresolveJsonModule — 1 connectionisolatedModules — 1 connectionjsx — 1 connectionincremental — 1 connectionplugins — 1 connectionpaths — 1 connectioninclude — 7 connectionsnext-env.d.ts — 1 connection**/*.ts — 1 connection**/*.tsx — 1 connection.next/types/**/*.ts — 1 connection.next/dev/types/**/*.ts — 1 connection**/*.mts — 1 connectionexclude — 2 connectionsnode_modules — 1 connectionAGENTS.md — 1 connectionThis is NOT the Next.js you know — 1 connectionCLAUDE.md — 0 connectionsREADME.md — 1 connectionLouis Madrigal — Portfolio — 4 connectionsRun — 1 connectionCustomize — 1 connectionNotes — 1 connectionbuilding-growthos-ai-agent-workflow.md — 6 connectionsGrowth is a planning problem — 1 connectionLive search beats a stale model — 1 connectionRed-teaming my own copywriter — 1 connectionWhat the day job carried over — 1 connectionShip it — 1 connectionWork with me — 1 connectionmulti-tenant-n8n-chat-gateway.md — 6 connectionsWhat a bare n8n webhook doesn't give you — 1 connectionThe gateway pattern — 1 connectionThe proxy handler — 1 connectionTrade-offs, honestly — 1 connectionWhere this ended up — 1 connectionWork with me — 1 connectionnextjs-ssr-40-percent-faster-first-paint.md — 5 connectionsWhy CSR was the bottleneck — 1 connectionWhat actually moved the number — 5 connections1. Render the shell on the server — 1 connection2. Stream the slow parts — 1 connection3. Delete client JavaScript — 1 connection4. Cache the shell at the edge — 1 connectionWhat surprised me — 1 connectionWhen not to bother — 1 connectionWork with me — 1 connectionproduction-rag-pipelines-lessons.md — 5 connectionsRetrieval quality beats model choice — 1 connectionEvaluate before you scale — 1 connectionLatency and cost are architecture problems — 1 connectionGuardrails: plan for empty and plan for wrong — 1 connectionWork with me — 1 connection
// every file, function and import in this repo · tap a node to name it

Built with graphify by Graphify-Labs — deterministic AST parsing, every edge traceable to a file and line, zero tokens spent. I wrote about what it found →

[04] — WORKBENCH

TOOLS I BUILD WITH_

BUILT BY OTHERS · CREDITED

[01]BY GRAPHIFY-LABS

graphify

Turns a codebase into a queryable knowledge graph with deterministic AST parsing — no embeddings, no token cost.

[03]BY VERCEL

Next.js

App Router, server rendering and static generation. This site and most client work runs on it.

[04]BY GREENSOCK

GSAP

The intro timeline and every scroll reveal on this page, loaded lazily so it never blocks first paint.

[05]BY MRDOOB + CONTRIBUTORS

Three.js

The WebGL particle fields behind the hero and work grid, gated to devices that can afford them.

[06]BY RESEND

Resend

Delivers the contact form straight to my inbox, with a mailto fallback when the API is unreachable.

[05] — ABOUT & PIPELINE

HOW THE WORK GETS DONE_

PROFILE · PROCESS · GMT+8

Nine-plus years of progressive experience across enterprise platforms, fintech systems and cloud-native architectures — leading production incident response, mentoring teams and shipping applications that serve millions of users.

Current focus: LLM copilots, RAG pipelines and autonomous agents wired into real products, with 30–50% backend performance gains to show for the plumbing underneath.

  • [+]BASEMetro Manila, Philippines
  • [+]EXPERIENCE9+ years · 11 roles
  • [+]FOCUSAI systems · fintech · enterprise platforms
  • [+]STACKReact · Next.js · Spring Boot · Node · Python
  • [+]CLOUDAWS · GCP · Azure · Docker · Kubernetes
  • [+]EDUCATIONBS Information Technology
  1. [01] · AGILE · SPRINT ZERO

    DISCOVER

    Requirements, domain mapping, user flows. Every build starts with the problem, not the stack.

  2. [02] · SPRING BOOT · POSTGRES · AWS/GCP

    ARCHITECT

    System design, data models, cloud topology. Microservices only where they earn their keep.

  3. [03] · REACT · NEXT.JS · NODE · TS

    BUILD

    Server-rendered frontends and typed APIs — the 40% faster first paint at GCash came from here.

  4. [04] · CLAUDE · GPT · OLLAMA · N8N

    INTEGRATE AI

    LLM copilots, RAG pipelines and multi-agent workflows wired into real products, not demos.

  5. [05] · OKTA · JEST · CYPRESS

    HARDEN

    OAuth2, JWT, Okta, PCI-DSS compliance and 90%+ test coverage before anything ships.

  6. [06] · DOCKER · K8S · GITHUB ACTIONS

    SHIP

    Containerized deploys behind CI/CD gates — release cycles cut from hours to under 20 minutes.

  7. [07] · CLOUDWATCH · GRAFANA

    OBSERVE

    99.9% uptime, production incident response and the tuning behind 30–50% backend gains.

[06] — CONTACT

LET'S BUILD SOMETHING_

USUALLY REPLIES < 24H

AVAILABLE FOR CONTRACTS

Fintech APIs, enterprise platforms, LLM copilots — or the whole stack. Tell me what you are shipping and where it hurts.

// delivered straight to my inbox — no tracking