AI only where judgment is needed.
One recorded app flow covers the whole surface, and replays for free.
Any PlatformAny AppAny LLM
Explore, guide, and replay test cases. AI will automatically create and repair tests as the app evolves.
Most RPN calculators on the store replicate the HP 15c exactly, from the functions down to the look of the buttons. This one takes full advantage of the touch screen and the hardware to better optimize the user experience for modern devices.
Pick one and it proves itself before it says who paid for it. The dates and the employers are all still here. They are just no longer the first thing you have to read.
Tests generated, executed and self-healed from natural language, at a 95%+ pass rate in CI/CD.
App-, platform- and LLM-agnostic: one test case runs unchanged on iOS, Android and Web. Saves executives, project managers, QA and developers across every app team hundreds of hours weekly.
A multi-agent QA platform and dashboard. It turns a description of a test into a running end-to-end test, updating itself as the app changes.
Created an agentic team to help with building and iterating on the QAAI engine and dashboard. Then distributed the team as a plugin for others to use in their work internally.
FeaturesAndroid 9–16
ToolsClaude Code, Cursor, Codex, Copilot, LLM Agents, Kotlin, Compose, Android Studio, Python, GCP
Features built to EAA compliance, and the QA pain points taken out behind them.
Developed and maintained features on Yahoo! Mail alongside the agentic plugin work, with a focus on accessibility.
Developed an agentic workflow for exploring and fixing issues within the Yahoo! Mail app. Turned the workflow into a Claude Code plugin for internal distribution at Yahoo! Focusing on reproducible issues and fixes that the agentic team could produce before and after evidence for review to ensure proper fixes.
Get it on Google Play App Store
FeaturesAndroid 9–16
ToolsClaude Code, Cursor, Codex, Copilot, LLM Agents, Kotlin, Compose, Android Studio, Python, GCP
Generative AI answering store team members straight out of Target’s own documentation.
Created the chat experience for free-form questions: viewing responses, giving feedback on the AI’s answers, and scanning barcodes to enquire about items or guest orders.
A place to consolidate Target’s documentation and give store team members somewhere to get answers quickly. Generative AI answers free-form questions straight out of tens of thousands of Target documents.
FeaturesBarcode scanner, Zebra devices, Android 8–13
ToolsAndroid Studio, Kotlin, Compose, MVI, Dagger, Hilt, Firebase, Git, Jetpack, Unit Testing, Espresso, Robolectric, Generative AI
Daily active team members, completing in-store tasks, generating billions of calls a day.
Led the myDay team through updating and maintaining a multi-module monolith, mentoring on Compose and Kotlin and working with other teams on shared components and the backing APIs.
Led the myDay app team, through the ambiguity of a legacy code base and modernizing the architecture. Worked with library, UI/UX, and backend teams to create efficient and modern workflow that even new team members could quickly pick up and immediately be effective at work.
Inventory, stock and unload, plus the core library sitting under every associate app Kohl’s ships.
Focused on reducing tech debt and bringing the core library up to current practice, with automated testing added to the apps and their build pipeline.
Worked with balanced teams on a variety of associate and customer-facing applications. Led the implementation of best practices to improve an aging code base, providing training and mentorship to junior engineers
Inventory, Stock and Unload is the core library supporting all of Kohl’s internal applications.
FeaturesOffline, barcode scanner, Zebra devices, Android 8–10
ToolsAndroid Studio, Kotlin, Java, Next.js, Compose, MVVM, Firebase, Git, Jetpack, Unit Testing, Espresso, Cucumber, GitLab, Balanced Teams
Walk into the store, enter a code, collect the order, walk out.
Designed and developed a web app letting customers collect online orders with no staff involved. The customer gets an email when the order is ready.
Designed and developed a web app letting customers walk into a store and collect online orders without an associate. Customers receive an email when the order is ready, go to the store, enter a code, pick up and walk out
FeaturesOffline, barcode scanner, Zebra devices, Android 8–10
ToolsAndroid Studio, Kotlin, Java, Next.js, Compose, MVVM, Firebase, Git, Jetpack, Unit Testing, Espresso, Cucumber, GitLab, Balanced Teams
In-store, drive-up and self-pickup orders, found by scan or by customer details, online or off.
A redesign of the associate-facing app to simplify adoption, increase productivity and add offline capability.
Redesigned the associate-facing app to simplify adoption, increase productivity and add offline capability. Scanning an order number or entering customer details helps associates find and deliver in-store, drive-up and self-pickup orders, handed over with a simple, easy to follow code trade that leaves customers happy with the convenience.
FeaturesOffline, barcode scanner, Zebra devices, Android 8–10
ToolsAndroid Studio, Kotlin, Java, Next.js, Compose, MVVM, Firebase, Git, Jetpack, Unit Testing, Espresso, Cucumber, GitLab, Balanced Teams
Card accounts for the underbanked in Brazil. Store money, send it and spend it with no bank account and no credit card.
An ORO Store for digital goods, Lotérica and ATM transfers, and in-app phone top-ups, then a greenfield Kotlin rewrite with Cognito login and a new card carousel.
An app for the underbanked in Brazil. ORO Pay provides cards with account balances so users can store and transfer money safely without a bank account or credit card.
Get it on Google Play App Store
FeaturesOnline/offline, camera, GPS, Android 5.0–11.0
ToolsAndroid Studio, Kotlin, Java, MVVM, Amazon Amplify with Cognito, Firebase, Git, Google ML Kit
A QR renderer paired with Google ML Kit scanning, for peer-to-peer transfers at a merchant.
The merchant side of ORO, taking payments from ORO Pay and from card readers at Brazilian businesses.
The merchant side of ORO, taking payments from ORO Pay and from card readers at Brazilian businesses.
FeaturesOnline/offline, camera, GPS, Android 5.0–11.0
ToolsAndroid Studio, Kotlin, Java, MVVM, Amazon Amplify with Cognito, Firebase, Git, Google ML Kit
Active devices globally, on sites, in an app dating back to the Pocket PC days.
Construction personnel navigate a site in real time, file forms, complete task lists and track progress, so companies can record who completed what and compile a digital record of all activity.
The largest and oldest app at Viewpoint. Construction personnel navigate a site in real time, file forms, complete task lists and track progress of work. Used on large construction projects, from skyscrapers to schools and even nuclear power plants.
Get it on Google Play App Store
FeaturesOnline/offline, camera, GPS, Android 4.1–9.0, iOS 8–12, Windows 8.1–10, telemetry, analytics
ToolsAndroid Studio, Xamarin, Java, C#, Xamarin Forms, Visual Studio, Microsoft Azure
Android, iOS and Windows shipping the same feature set in every monthly release.
Team lets users raise RFIs (requests for information) to get what they need to finish a job on site. Xamarin for Windows and iOS, native on Android.
Team lets users raise RFIs, requests for information, to get what they need to finish a job on site.
Get it on Google Play App Store
FeaturesOnline/offline, camera, GPS, Android 4.1–9.0, iOS 8–12, Windows 8.1–10, telemetry, analytics
ToolsAndroid Studio, Xamarin, Java, C#, Xamarin Forms, Visual Studio, Microsoft Azure
The UI fixed across every screen size, and the crashes stopped.
A contract through a partnership between the two companies, maintaining and updating the app’s features.
Contracted to maintain and update the TabbedOut application, through a partnership between the two companies.
ToolsJava, Android SDK, Android Studio, Git, JIRA
Cleaning details, hours worked, maintenance tickets, supplies, directions and the key house details.
An internal Android app for Vacasa’s housekeepers, with the data it runs on designed alongside the API team.
An internal Android app for Vacasa’s housekeepers, improving the efficiency of their everyday work.
FeaturesOnline/offline, GPS, camera, phone, encryption, Google API, multiple languages, Android 4.0–7.1
ToolsJava, Android SDK, Android Studio, Fabric, JIRA, Git, Appsee, Appaloosa
All of Rexel’s brands and their languages out of a single Titanium build.
A mobile e-commerce app leaning on device hardware, including a barcode scanner, to make buying on a phone worth doing.
A mobile e-commerce app for Rexel and all the brands beneath it.
Get it on Google Play App Store
ToolsTitanium SDK, JavaScript, Agile, Android, iOS
An iOS app converted to Simplified Chinese so Chinese students could use it to learn English.
The first mobile role, and the start of the fourteen years.
An iOS app converted and updated so Chinese students could use it to learn English.
ToolsCorona SDK, Android, iOS, Xcode, Hype, HTML5, CSS
A tablet in the gallery, letting visitors open up the work in front of them.
Ran on an Android tablet placed beside a piece at the San Francisco Asian Art Museum, letting visitors select and learn more about aspects of the work and zoom in on close-up detail.
An Android kiosk app for the San Francisco Asian Art Museum, running on a tablet placed beside a piece of art.
ToolsCorona SDK, Android, iOS, Xcode, Hype, HTML5, CSS
Weekly graph production, cut from an afternoon to a coffee break.
An internal web page displaying and graphing printhead and ink usage, with a new heat-map graph for analysing usage trends.
An internal web page displaying and graphing printhead and ink usage.
ToolsPHP, JavaScript, HTML, CSS, JpGraph, SCRUM
BS Computer Science Northern Arizona University
Kotlin, Java, Python, XML, HTML5, JavaScript, TypeScript, CSS
Android, iOS, Windows, Web
Claude Code, Cursor, Codex, Copilot, Agentic Development, Antigravity, Android Studio, Jetpack, Firebase, Azure, JUnit, Espresso, Xamarin, Git
Where the technique gets proven before it reaches anything that ships. Each one is an instrument, hand-authored with no framework and no build step, built to make something physical measurable rather than merely to look like it.
The tube as a fragment shader: face curvature, shadow mask, beam, phosphor persistence and a ray-traced light fitting reflected in the glass, solved per pixel.
A containment core, sphere-traced: a goo core with sub-cores torn out of it by a pulse, nine alloy ring fragments, and a shield that fails on a schedule.
A tunnel solved rather than marched, ending at a black hole traced along real light paths.