Projects · Skills · Experience · Certifications · Stats · Connect
I recently graduated with a B.S. in Computer Engineering from the Technological University of the Philippines Visayas. I build AI systems, data tools, automation, and backend services — most of my projects start as a way to learn a new technology and end up as something people actually use.
9 shipped projects. 1 flagship RAG system with a measured retrieval eval harness. 1 provisioning orchestrator that rolls back its own failures. 1 defended thesis at >92% real-world accuracy. 13 certifications. All built and owned solo, end to end — from the database schema to what ships in production.
|
Every model I train or wire up sits inside a real workflow — license-plate reads, a chat assistant grounded in your own data, a retrieval system with measured accuracy instead of assumed accuracy. Never a bare demo. |
Frontend, backend, auth, CI/CD, deploy — I own the whole pipeline on every project, from Flutter release signing to a Raspberry Pi in production. |
Dashboards, pipelines, and GIS layers that turn raw numbers into something a decision-maker can actually read. |
- 🔭 Just shipped JML Orchestrator — an employee provisioning system in n8n and PostgreSQL that verifies every write by reading it back, and undoes its own half-finished work in reverse order when a step fails.
- 🦺 Also live: a grounded RAG knowledge assistant over OSHA safety regulations — measured retrieval, citation grounding, hallucination detection, and role-based access. Try it here.
- 🌱 Currently learning Spring Boot, Docker, data engineering, and cloud infrastructure, plus building an end-to-end content automation pipeline.
- 👯 Looking to collaborate on civic tech / open-source tools for local government, and anything that puts computer vision or LLMs to practical use.
- 🤔 Drafting a plan to merge Jarvis and Pace AI into one assistant — computer vision for security and accessibility, wider voice commands, real voice recognition.
- 💬 Ask me about computer vision with YOLO, RAG systems and how to actually measure them, or shipping Flutter + FastAPI end-to-end.
- 😄 Pronouns: he/him
- ⚡ Fun fact: a customer once swore their phone "just randomly died." I opened it up and found a dead ant that had crawled in and shorted two contacts.
- 🎮 Off the clock: sci-fi, deep conversations, and currently ranked God of Destruction 1 in Tekken 8 with Devil Jin.
🦺 RAG Knowledge Assistant — grounded Q&A over OSHA safety regulations
A document Q&A system built like a product, not a tutorial. The differentiator is the layer most "RAG chatbot" portfolio projects skip entirely: a measured retrieval eval harness, citation grounding, and hallucination detection — not just a chatbot that sounds confident.
- 📏 965 chunks over OSHA 29 CFR 1910, measured against a 45-question hand-verified eval set — every citation machine-checked against the source text
- ✅ 60 of 60 citations resolved to a real paragraph. Zero fabricated. Gold-citation rate 37/38, ungrounded numbers 0, and 7/7 out-of-scope questions declined instead of guessed at
- 🔍 The UI separates paragraphs the model cited from ones it retrieved-but-ignored, since the correct source is often sitting in that second list when the model misattributes a claim
- 🗺️ A corpus map renders all 937 indexed paragraphs as cells and lights the ten a question retrieved — the search step made visible rather than asserted
- 🔐 JWT auth with role-based access control enforced in the retrieval SQL, so a viewer is refused gated content even calling the API directly, not just in the UI
- 📊 Measured on two embedding backends — local
nomic-embed-textand hostedbge-base-en-v1.5— and the deltas are published rather than hidden
Demo sign-in: viewer / viewer-pass (general) or officer / officer-pass (safety officer). Ask both "Who may remove a lockout device?" to see the access gate. Free-tier hosting sleeps when idle, so a first request can take about a minute.
🔁 JML Orchestrator — employee provisioning that undoes its own half-finished work
An employee onboarding/offboarding provisioning system built as nine n8n workflows over PostgreSQL. A request becomes an ordered plan derived from a policy table, privileged grants pause for human approval, and every step executes idempotently and is verified by reading the target system back. The hard part was never calling the APIs — it's that APIs fail halfway, and a half-provisioned account is worse than none because nobody knows it exists.
- 🔄 Compensating-transaction saga — a failed run walks its own ledger backwards and undoes what already succeeded, in reverse order. Verified by injecting a fault into the identity API, not by reading the code
- 🔑 Idempotency at two layers — deterministic per-step
Idempotency-Keyheaders plus a UNIQUE-constrained request ledger, making duplicate submissions impossible rather than unlikely - 🔬 Read-back verification — a 2xx is treated as a claim, not evidence. Every write is followed by a GET that asserts the intended effect. This caught a real case where the API reported success and nothing had changed
- ⏸️ Human-in-the-loop approval that is single-use and expires in 24 hours, on a durable Wait node with the decision persisted to the database — nothing is provisioned while it waits
- 🧨 Verified by fault injection across eight failure scenarios, including killing the provider mid-rollback to prove the system distinguishes
rolled_backfromfailedand escalates only the second - 🤖 One tightly fenced LLM drafts requests from free-text HR email using an enum-constrained schema and evidence grounding — it produces a pre-filled form a human submits, and has no authority over anything that gets provisioned. Stripping its "quote the source" rule made it reject all seven extracted fields, which is the test most LLM-validation code never gets
A working demonstration, not a deployment. The identity provider is a simulator included in the repo, all employee data is synthetic, and it has never run in a company. What is real is the behaviour under failure.
🤖 Jarvis — a Raspberry Pi butler that talks first
A voice-driven calendar assistant on a Raspberry Pi 5 that announces upcoming appointments unprompted and repeats until acknowledged — because a reactive assistant is useless when the failure mode is forgetting.
- 🎙️ Always-on "Hey Jarvis" wake word (openWakeWord) → faster-whisper STT → a pure, fully-tested intent parser
- 🗣️ Piper TTS voice output, half-duplex echo gating so it doesn't hear itself talk
- 💬 Optional conversational layer via Gemini — deterministic commands (acknowledge/snooze) always stay local; an LLM never decides anything that could mean a missed appointment
- ✅ Read-only Google Calendar OAuth, kept that way on purpose for an honest privacy story
💬 Pace AI — a RAG chatbot that answers for me
A retrieval-augmented chatbot embedded in my portfolio that answers visitor questions about my work from a single curated document — and refuses rather than guesses when the document doesn't cover it. One invented credential on my own portfolio costs more than the feature is worth.
- 🌐 Runs on Cloudflare's edge through a native Workers AI binding — no API key anywhere in the deployed code
- 🧠 Embeddings via bge-base-en-v1.5, generation via Llama 3.1 8B, answers grounded only in retrieved context
- ⚡ Frequent questions have pre-written answers that cost zero inference to serve
- 🖥️ Also ships as a local app: Ollama + FastAPI + Chroma, hand-rolled retrieval loop, no LangChain
💰 Hamili — AI personal finance tracker
A cross-platform finance app (Android + Web, single Flutter codebase) with a built-in assistant. People track spending, set budgets and savings goals, and ask a Gemini-powered chat about their own money in plain language — every answer grounded in real transactions, never generic advice.
- Full stack shipped solo: Flutter frontend, FastAPI backend, PostgreSQL via SQLAlchemy, JWT auth
- GitHub Actions pipeline builds, signs the Android release, and deploys to Firebase Hosting + Render
🚓 SAVES AI — automatic license plate recognition (undergrad thesis)
A YOLOv11 + OCR pipeline that reads license plates from a camera feed, validates them against a database, and keeps a searchable record. Presented to the Land Transportation Office for accuracy approval, and successfully defended as our undergraduate thesis with Engr. Al Christian L. Kardinas.
- >92% plate-read accuracy (YOLOv11 + OCR) · 100% database validation accuracy
📊 Steam Player Engagement Analytics — data dashboard with AI-generated summaries
Collects, cleans, and visualizes Steam game data in an interactive dashboard, then has the Gemini API write an executive summary of what the numbers say — instead of leaving a wall of charts for the reader to interpret.
🎓 TUPVConnect — campus communication platform
Centralizes announcements, events, student organizations, academic resources, a marketplace, lost-and-found, and messaging for TUP Visayas in one place, with a different view and permission set for students, faculty, and administrators.
- 🔌 Built against an existing production MySQL backend I wasn't allowed to redesign — the frontend types mirror the live schema and every data call routes through a single file, so going live is a one-file change
- 🎨 The design system is drawn from the campus logo itself, down to the printed-circuit traces used as an ambient background
🐾 Pokémon Image Classifier — 1,009 classes, and the sense to say no
A computer vision model that recognizes over 1,000 Pokémon species from an uploaded image, built to learn the full CV workflow rather than a ten-class tutorial version of it — and to know when an image isn't a Pokémon at all.
- 🎯 94.8% top-1 accuracy, 97.3% top-5, across 1,009 classes
- 🚫 A dedicated rejection class catches non-Pokémon images with 97.6% recall instead of confidently guessing
- 🌐 Quantized to ~7 MB and runs entirely client-side in the browser, no server involved — try it live
🥐 Creer — a small-batch home bakery's Instagram presence, rebuilt as a real website
Commissioned by a local online bakery business to build a React/TypeScript site with data-driven content layer so the owner can add menu items without touching code, custom crossfade photo galleries built from raw phone photos, and a resilience layer that keeps animations working even inside Instagram's in-app browser, where standard scroll-trigger APIs are known to silently fail.
Full write-ups, build notes, and photos for every project above live on my portfolio.
Languages
Frameworks & Libraries
Automation & Orchestration
AI & Data
Databases
Cloud & DevOps
Tools
Mobile & Device Modding
Engineering & Design
AI Tools & Automation
| Role | Organization | Highlights |
|---|---|---|
| Information Systems Intern | Land Transportation Office | Built a Python + Electron.js MIS that automated monthly revenue recording, replacing a manual process. Ran the technical side of daily operations — displays, files, seminar decks. |
| Computer Hardware Technician Intern | MF Computer Solutions | Assembled and repaired desktop builds, diagnosed hardware/software issues, tracked inventory across branches, helped customers pick parts. |
| Assistant City Planner Intern | City Government of Talisay | Prepared and organized GIS datasets for city and landmark mapping projects — working across parcels, zoning, topography, land cover, imagery, and basemap layers. |
|
"A man who hasn't hit his Claude limit by noon has wasted his morning." — Claudelius Maximus (c. 2026) |
⭐️ From Yus3n10 — software engineer building practical AI products.