Murphy — Interactive Gallery Portfolio
Engineering work as a museum you can walk through.
About
Senior Android engineer. I build mobile products end to end — from app architecture and UX to the pipelines that ship them.
Android
Mobile apps and SDKs.
-
Pokédex — Android App
A Jetpack Compose Pokédex with offline caching and a searchable 1000+ Pokémon database.
Read the case study
Full case study coming soon.
Machine Learning
On-device and applied ML.
Projects coming soon.
Infra / Fullstack
Servers, pipelines, and the web.
-
You Are Here — This Portfolio
you are hereThe museum you are walking through right now: a static 2.5D gallery portfolio, built slice by slice.
Read the case study
What this is
The site you are reading this on. A portfolio designed as a walkable museum: a controllable character, a lobby, three themed wings, and a pedestal per project — including this one.
How it is built
- Slice 1 — DevOps foundation: a VPS with nginx, GitHub Actions rsync deploys on every push to main.
- Slice 2 — Content pipeline: YAML + images in git, JSON Schema validation, one build contract. Adding a project is one folder + push.
- Slice 3 — Gallery engine: a vanilla-JS 2.5D scene — DOM/CSS parallax, keyboard character, minimap teleport, no-JS listing fallback.
- Slice 4 — Content display: the read modal, the About wall, and this pedestal.
Constraints it honors
Static-only (no backend, no database), zero third-party requests, no-JS visitors still get the full listing, and every image lazy-loads for slow networks.
The joke
You had to be here.
- Node.js
- vanilla JS
- CSS
- GitHub Actions
- nginx
- One folder + git push adds a project — this exhibit was added exactly that way.
- The read modal clones the no-JS listing's case study: one renderer, zero drift.
