Useful,by design.

Building products that solve real problems through thoughtful design, intuitive experiences, and reliable engineering. Creating software people genuinely enjoy using.

Products,not projects.

I start with the problem, not the feature list. Every detail in the interface earns its place before anything ships.

Featured

Davao Commuters

Unsa akong sakyan? Now you'll know.

5K+

Users

46K+

Route Searches

Also shipped inside other teams

Goferbike

Built the UI in Fuse and Flutter, transitioned the Fuse codebase to Flutter, and integrated the Google Maps SDK: Places, Geolocation, Geocoding, and Directions.

Tagcash Ltd

Apr 2019 – Jul 2021

Tag Bus

A bus ticketing module for Tagcash, an on-the-fly ticket reservation system built with the Fuse framework.

Tagcash Ltd

Nov 2018 – May 2019

Autocare

Maintained the existing Flutter application and implemented wireframes into functional UI/UX.

ThinkBIT Solutions

Mar 2021 – Present

Built alongsidegreat teams.

Eight years of turning problems into products people actually enjoy using, across startups, enterprise software, and fintech.

Currently Software Engineer at Maya.

Detailobsessed

Spacing, motion, copy, edge cases. Nothing ships unreviewed.

Problemfirst

I solve what's actually broken, features come second.

Designsense

Interfaces that feel obvious and stay accessible.

Engineeringcraft

Architecture, testing, and CI that hold up in production.

Read the full history

Built beyondthe cloud.

My homelab is where ideas become experiments.

It's where I explore infrastructure, automation, networking, AI, and self-hosting before those lessons find their way into the products I build.

TrueNAS
Encyclomejia
Immich
Jellyfin
AdGuard Home
Minecraft Server
Tailscale

Built withintention.

01

Every product starts with a real problem, not a feature request.

02

Screens get looked at twice before they're called done.

03

If it needs an explanation, it isn't obvious enough yet.

04

Accessibility isn't a checklist, it's the default.

05

Small details aren't polish, they're the decision.

06

A feature that doesn't earn its place doesn't ship.

Because the problem always comes before the feature.

I ship solutions, not just features.

This is how I approach software, not just how I write code.

Let's build somethingworth using.

If you have a real problem to solve, or a product that works but doesn't feel right yet, I'd like to hear about it. I'll sweat the details so you don't have to.