
FCCC Music Finder
A Phoenix-powered OCR music archive for the Filipino Christian Community Congregation, backed by a Python collection pipeline and shared SQLite catalog.
- elixir
- phoenix
- python
- ocr
- sqlite
- fts5
Senior engineer · Kuala Lumpur
Senior Fullstack Engineer / Machine Learning based in Kuala Lumpur. I build reliable backends, ship clean UIs, and apply ML where it actually helps.
The toolkit
Tools I reach for when the right solution needs both depth and restraint.
Also: Kafka, GraphQL, gRPC, MongoDB, Cassandra, Rust, Go, Kotlin, Elixir, RAG pipelines, MCP, MLOps, and GitHub Copilot.
Ask me anything
Have a question about my work, experience, or technical interests?
A little context
I'm a senior engineer with close to two decades of experience across finance, logistics, and product security. I enjoy turning complex problems into simple, fast, maintainable systems.
At SICPA, I work on fullstack software that protects high-value products from fraud and illicit trade — spanning Spring Boot services, Angular and TypeScript frontends, JavaFX desktop tools, and practical ML pipelines.
Before that, I shipped systems at Standard Chartered, HSBC, and DHL. I care about clean code, backend performance, and tooling that makes teams more effective.
Outside work, I like experimenting with new tech, writing about what I learn, and spending time with my son.
Selected work

A Phoenix-powered OCR music archive for the Filipino Christian Community Congregation, backed by a Python collection pipeline and shared SQLite catalog.
A Phoenix chat app with Google-authenticated visitors, persistent conversations, live presence, and a read-only homepage view.
Readable, searchable transcripts of featured videos about content strategy, artificial intelligence, and learning — preserved in full as standalone documents.
Notes from the field
A practical investigation into Pi extension startup: faster cache reads, lazy Hermes memory initialization, and a non-blocking SuPi LSP lifecycle.
Handy's recording overlay stole focus from the active window, breaking paste-back. The culprit: the Tauri AppImage runtime forces GDK_BACKEND=x11, pushing Handy onto XWayland where GTK Layer Shell is unavailable. The fix is to switch to the .deb binary.
Exploring new cost-effective models for AI and machine learning workloads.
Start a conversation
I'm open to senior fullstack, backend, and ML engineering roles. If you're hiring or just want to connect, reach out.