Loading…
Loading…
Hi, I'm James. I'm a software engineer based in New York City with a background in iOS development and consumer product engineering. Over my 10+ year career, I've built mobile experiences at Google, Meta, and startups, most recently working as a Senior iOS Engineer on Google Lens.
I'm currently on a career sabbatical focused on building side projects and deepening my expertise in AI, with a particular interest in mobile AI, on-device models, and retrieval-augmented systems. With an educational background in computer science and anthropology, I'm especially interested in the intersection of technology, the humanities, and everyday life.
Outside of work, I spend my time learning music production, taking photos around the world, and staying active through running, surfing, and hip-hop dance.

Documenting the natural world and city life.






Full-stack NYC event discovery platform that aggregates events from multiple sources and uses AI to improve search and categorization. Designed a multi-stage ingestion pipeline to scrape, normalize, deduplicate, and enrich event data from sources like Luma, Partiful, and Eventbrite. Implemented LLM-based tagging, semantic embeddings, and hybrid keyword plus vector search using pgvector to create a more intelligent discovery experience.
A native iOS application designed to provide real-time subway departure times in New York City. Built entirely with SwiftUI and leveraging iOS's geolocation capabilities, the app offers a seamless experience where users can simply open the app to view an automatically generated timetable for the nearest subway stop, along with a map for selecting other nearby stops. Integrates static GTFS MTA transit feed data and live GTFS feeds for real-time trip updates, backed by a full-stack API built with Next.js, Vercel, and Supabase.
An iOS application built with Swift and Objective-C that serves the Champaign-Urbana transit community. Using MapKit, CoreLocation, and the local transit API, the app provides real-time bus departure times, route information, and stop locations. Currently maintains 4,100 monthly active users with a 4.6-star average rating with over 900 reviews.
2024 – Present
2022 – 2024
2020 – 2022
2020
2018 – 2019
2017 – 2018
2016 – 2017
2015 – 2017
2014 – 2015
2013
2007 – 2012