About

I build and ship iOS features for a large-scale telecom platform supporting 60M+ subscribers, focused on product delivery, release operations, engagement systems, and code quality.

Outside my day job, I'm building Astrologie, an AI chatbot for Vedic astrology.

I’m currently based in Manila, Philippines 🇵🇭. When I step away from Xcode, you can usually find me experimenting with moka pot brews or leveling up my Spanish (currently fighting my way through A2 🇪🇸!)

Experience

  1. iOS Developer · Globe Telecom

    • iOS feature delivery in a high-traffic production app
    • Owned biweekly iOS release cycles since July 2025, managing App Store submissions, approvals, and release readiness
    • Coordinated hotfix escalations and post-release monitoring for production stability
    • Supported signing, certificates, provisioning, and related release administration tasks
    • Improved testing workflows and tester access to reduce release friction across squads
    • Product and process improvements and peer code reviews across engineering squads
    • Led evaluation of mobile observability tooling to improve debugging and session monitoring
    • 2.0 → 4.5 Contributed to raising the App Store rating
    • 25–30% Led iOS app size reduction
    • 178K App Store ratings
    • Swift
    • SwiftUI
    • UIKit
    • Compose Multiplatform
    • async/await
    • MVVM
    • VIPER
  2. Junior Developer (Graduate Trainee Program) · Globe Telecom

    • Selected as one of 25 trainees from 200+ applicants after a competitive internal hackathon.
    • Completed a 6-month program covering software engineering fundamentals, cloud concepts, and agile practices.
    • Git
    • Jira
    • Agile / Scrum

Earlier experience

  1. PLC Automation Engineer · Rebisco

    Delivered automation and instrumentation projects across food manufacturing plants in the Philippines, and trained technicians to operate and troubleshoot PLCs, servo motors, and sensor systems.

  2. Electrical Engineering Intern · Chung Yuan Christian University (Taiwan)

    Worked on-site with an international engineering team on a digital signal processing project and presented it at a technical showcase.

Education and certifications

  • Advanced iOS
  • iOS & Swift Essentials
  • Advanced Android
  • Android & Kotlin Essentials

Big Nerd Ranch

BS Electronics Engineering · Mapúa University Minor: Industrial Automation and Engineering

Projects

GlobeOne · Day job

GlobeOne on the App Store

Consumer telecommunications self-service application for account management, usage tracking, bill payment, offer purchase, and rewards redemption.

GlobeOne's App Store listing on an iPhone: 4.5 stars from 178K ratings, No. 3 in Utilities.

Personalized In-App Campaigns

Web-configurable in-app banners, allowing product teams to launch campaigns without app releases. Kept the experience native on iOS.

Braze dashboard composing an in-app banner reading “3 PP” with a “TEST” button.

AI-powered catalog search to improve offer discovery.

Deep linking infrastructure for improved campaign experience by routing users to the correct in-app destination.

Business Continuity Fallback

A WebView fallback to preserve critical purchase flows during app API maintenance.

Two iPhone screens: a “We'll be back soon” maintenance page, and the fallback “We are improving your experience” page that still lets users buy promos.

Personal project

Astrologie on GitHub

An iOS chat app for Vedic astrology. Ask a question, and the reading streams in as it's generated. SwiftUI and MVVM on the device; a Supabase Edge Function in front of Gemini on the server.

  • 250 iOS unit tests
  • 104 Server tests
  • iOS 18+ Deployment target
  • Swift
  • SwiftUI
  • Swift Concurrency
  • MVVM
  • Swift Testing
  • Supabase
  • Deno
  • Gemini

Streamed AI replies

Replies stream in over Server-Sent Events; a reply only counts as complete when the final event arrives, otherwise the partial text is kept with a “cut off” error.

The AI sits behind a server

The Gemini key, system prompt, and guardrails live in a Supabase Edge Function, so the model can change without an app release.

Guardrails in code

Gemini safety settings, a jailbreak denylist checked before the model is called, and a check on every streamed chunk.

Reporting and abuse limits

Per-user rate limit, per-conversation turn limit, and a “Report Message” action; if limits can't be checked, the server refuses.

Accessible

VoiceOver announcements that don't re-read a streaming reply, Dynamic Type, and a Report action in the rotor.