Applications

Built around the task.
Connected underneath.

I build web and mobile applications around the work people need to do, connecting clear interfaces with the data and services behind them.

One workflow.
Connected layers.

  1. The experience

    Interfaces and feedback

  2. The application

    Rules and integrations

  3. The source of truth

    Records and access

Different platforms.
The same care.

Choose the tools that fit the problem, from browser-based workspaces to native mobile experiences and AI-assisted services.

Full-stack applications

Workspaces, dashboards, and custom tools that connect what people see with the services and data behind it.

  • React
  • TypeScript
  • Python
  • PostgreSQL

Native mobile tools

Mobile tools that use device features and local storage to support the way people work on the go.

  • SwiftUI
  • Kotlin
  • SQLite
  • Core Location

AI-enabled workflows

Classification, conversational tools, and relevant context, with clear limits on what the model can access and change.

  • FastAPI
  • LangGraph
  • OpenAI API
  • Python

Care in the build.
Clarity in the decisions.

I plan for the full workflow: how information moves, where decisions belong, and how the application responds when something goes wrong.

Start with the workflow

Understand the task, the people involved, and the exceptions before choosing the features or architecture.

Make ownership explicit

Define who can access each record and action. Enforce those rules in the backend and database.

Check the consequential paths

Test important state changes and integration boundaries, including failure cases that can interrupt the workflow.

Build for the next change

Separate responsibilities and document decisions so future changes have a clear place to start.

Useful intelligence.
Clear boundaries.

AI can help interpret requests and find relevant information. The application still enforces business rules, permissions, and actions that change data.

People should be able to review the result, understand uncertainty, and confirm actions when the stakes call for it.

Interpret and assist

Classify incoming information, retrieve relevant context, and explain the options available.

Verify and act

Check access, apply business rules, and require confirmation before making a consequential change.

The thinking.
Put into practice.

Explore the implementation details and tradeoffs behind these applications.

JAICE

Connected services, background processing, and a shared data model bring a fragmented job search into one workspace.

View project

RefundsAI

AI assistance with backend policy checks, explicit confirmation, and transaction records that people can review.

View project

Simple Miles

Native iOS tracking combines device signals, pause-aware trip state, and local persistence around real driving patterns.

View project

Have a workflow
worth improving?

Have an application idea or a system that needs attention? Tell me what you want to make easier.