Software engineer
Software engineer at Visa, where I ship payment infrastructure and the developer tooling around it. Outside work I built OmniMusik — an iOS music client that puts owned files and streaming services in one library, with a real-time effects chain, cross-device sync, and a web companion on AWS.
Featured project
An iOS client that merges local files and Spotify into a single library, queue, search and playlist system, designed for Apple Music behind the same interface. Owned files get a real-time effects chain. Playlists sync to a web companion, and both clients run on AWS infrastructure I provisioned in Terraform.
AVAudioEngine graph runs them.Streaming audio plays in a process the app does not own — Spotify's, or the system player's — and hands out no samples. Effects are structurally local-only, and the domain model says so rather than leaving it as a comment.
Two deliberately separate protocols: how a track plays and where it comes from. They don't map one-to-one, and keeping them apart is why adding Spotify touched no existing source or player.
Version-checked writes, an 8-case decision table that shows conflicts instead of picking a winner, and a server epoch so a replaced database can never be read as mass deletion.
Spring Boot / Postgres API on ECS, React companion on CloudFront, Cognito auth — all in Terraform, with keyless CI via GitHub OIDC and a no-NAT network that cut idle cost by about half.
Experience
Payments infrastructure and the tooling that keeps it shippable.
Skills
Contact
Open to conversations about iOS, audio, backend systems, and the infrastructure that runs them.