Selected work
I build products and the systems behind them.
I lead Product at DDC Public Affairs and build independent software in my spare time.
My work ranges from enterprise public-affairs platforms used by hundreds of organizations to small iPhone apps, games, data tools, and experiments in artificial life.
DDC
One product system for public affairs.
I lead Product at DDC Public Affairs, an Omnicom company. My team builds and operates the software used for PAC management, advocacy, communications, compliance, and reporting. View the experience ↗
Most public-affairs programs are split across several vendors. DDC brings the CRM, PAC website, advocacy tools, email, compliance, and reporting into one platform, with one client record underneath it.
My job covers product strategy, design, engineering priorities, security, client experience, and the business behind the products. The platform supports more than 360 clients and 430 websites, including heavily regulated companies that put us through more than 300 security reviews each year.
The work is often less glamorous than a new feature: enforcing legal contribution limits, generating payroll files correctly, keeping constituent targeting accurate, moving legacy systems into Azure, and making hundreds of sites manageable by a small team. That reliability is the product.
I have also led our work on personalization and AI. We built shared rules for dynamic content, a permission-aware AI orchestration layer, and internal operating tools that turn repeatable agency work into documented workflows.


Role
SVP of Product · current
Platform
Democracy Direct® · PACWeb® · Capitol Connect®
Under management
430+ websites · 360+ clients
Assurance
300+ enterprise security audits a year
Loom.haus
A search for stable, self-reproducing structure.
Loom is an artificial-life experiment that evolves the rules of a small simulated universe instead of designing the creatures inside it. View the experience ↗
Each universe contains two complex fields on a torus. They evolve under the Gross–Pitaevskii equation, a nonlinear form of the Schrödinger equation used for quantum matter waves.
The search changes physical constants such as mass, coupling, damping, and drive. The question is simple: which combinations allow persistent structures to form, split, and pass recognizable structure to descendants?
The difficult part is measurement. A spreading wave can look like reproduction, so Loom only counts an event when descendants separate, persist, and remain more similar to their parent than to unrelated structures. The system has observed many fissions, but no confirmed inheritance yet.
What it is
Artificial-life research platform
Engine
Gross–Pitaevskii · Visscher staggered leapfrog
Physics as data
Planck · mass · 3 couplings · damping · drive
Visit
Emergent.D
Build a planet. Spend the planet to keep playing.
Emergent.D is a planet-building simulation for iPhone and the web. You sculpt terrain, move water, grow life, mine resources, and manage the damage caused by doing it. View the experience ↗
The core is a fluid and particle simulation built in Metal. Terrain, rivers, ice, clouds, and vegetation respond to the same world state rather than running as separate visual effects.
The economy is tied to the simulation. Mining produces gold but damages the ecosystem that makes future mining possible. Satellites use real orbital parameters and affect only the ground they pass over.
The browser version uses React, Three.js, WebGPU, and a WebGL2 fallback. Each persistent planet has an authoritative server process that hibernates when empty and advances the world while players are away.
Gold is controlled by the server through an append-only ledger. Player actions are sent as compact brush operations and replayed for verification, while arcade scores that award currency are checked server-side.





What it is
iOS simulation game · released Feb 2026
Engine
Metal fluid & particle simulation
Get it
Visit
Touch Advocacy
Contacting Congress should feel normal.
Touch Advocacy makes civic participation accessible to every American, whether or not they know how Congress, legislation, campaigns, or advocacy organizations work. Download on the App Store ↗
The app starts with the people who represent you and two familiar actions: call or write. It removes the jargon, issue catalogs, forms, and long onboarding flows that make advocacy feel like something reserved for professionals.
On-device Apple Intelligence helps people understand bills and campaign finance in plain language. Survey results and Census data add context about public opinion and the communities affected, so people can decide what matters to them before taking action.
Verified location connects each person to the correct district and representatives. Calls and messages move through the tools people already know, while Touch records completed actions without requiring an extra confirmation step.
Ranks, badges, and streaks keep people engaged and help occasional participation become a regular civic habit. Only completed actions count, so the system rewards real participation rather than taps inside the app.





What it is
Accessible civic participation for iPhone
Context
On-device Apple Intelligence · surveys · Census data
Participation
Verified location · calls · messages · civic streaks
Get it
Monday Draft
A repeatable production loop for client work.
Monday Draft combines local AI agents with a web application for briefs, production, quality checks, approvals, delivery, and measurement.
Most AI content tools stop after generating a draft. Monday Draft keeps the context around the work: the brand, market, template, source material, review history, performance, and what should change next time.
A local agent runtime produces typed artifacts. The web app handles client onboarding, review, approval, billing, and delivery. Quality gates can send weak work back through the run instead of simply flagging it.
Modules can publish independently, and each cycle feeds its results into the next brief. The goal is not more content. It is a production system that becomes more useful with each week.



What it is
AI-native production system for client deliverables
Shape
Local agent runtime + web app as one pipeline
First-class
Brands · locations · artifacts · runs · approvals · memory
The loop
Brief → produce → QA gate → review → approve → measure
Visit
Amieeba
A digital fidget toy for reclaiming your focus.
Amieeba is a private, ad-free digital slime experience for iPhone and iPad. Fluid physics, haptics, sound, and simple repetitive interactions give restless hands somewhere to go while the mind slows down. Download on the App Store ↗
The experience is built around sensory play rather than competition. You stretch, split, merge, and reshape a fluid form while bubbles respond with crisp sound and a satisfying haptic click.
The score and timer provide a light rhythm to the session, not a game to win. As the screen fills and rewards build, pressing and holding releases the form in an explosion of fluid motion—a digital exhale before starting again.
Amieeba is designed as a safe, calming break for adults and children. It has no advertising, no subscription, and collects no data. The app costs $0.99 once.





What it is
Mindful digital fidget toy · $0.99, once
Built with
Fluid physics · Core Haptics · spatial audio
Privacy
No ads · no account · no data collection
Get it
Oodl.ai
A feed made from museum collections.
Oodl turns open-access museum collections into a simple art feed for iPhone, using familiar gestures without the advertising or engagement machinery of a social app. Download on the App Store ↗
The app includes more than 100,000 works from the Met, the Art Institute of Chicago, the Cleveland Museum of Art, and the National Gallery of Denmark. Swipe up for another work or sideways to change collections.
Saved works shape recommendations on the device. You can also add your own photographs, identify subjects locally, and generate a short description without creating an account.
Every museum work keeps its credit, license, and link to the source collection. The app is free and does not include advertising or collect a personal profile.



What it is
iOS art discovery · free
Collection
100,000+ open-access works, four museums
Get it
a-gnt
A catalog of useful AI tools.
a-gnt organizes prompts, personalities, agents, games, and MCP servers for people who want to use AI tools without searching through repositories and social posts. View the experience ↗
The catalog contains thousands of tools grouped by what a person is trying to accomplish rather than by technical format.
People can save tools into a personal library, combine them into shared collections called benches, and reach them from supported AI clients through the a-gnt MCP server.
The product is aimed at people who are interested but not yet fluent: families, teachers, students, and people changing careers.




What it is
Curated discovery platform for AI tools
Catalog
3,500+ tools · 2,200+ MCP servers
Reach it from
Claude · ChatGPT · a-gnt MCP server
Visit
Atomic
One record shape for relational software.
Atomic is a small Node.js data kernel for applications whose information is naturally relational but still needs to be easy to model, import, query, and expose through an interface. View on GitHub ↗
Every record uses the same atom shape. Models, data, identities, permissions, queries, and logs are represented through that structure instead of separate subsystems.
From those models Atomic derives validation, forms, REST endpoints, imports, exports, tenant boundaries, and audit behavior. Relationships and reverse references are part of the core rather than added later.
The practical goal is to keep the ease of a lightweight database tool while giving the application a foundation that can handle connected data without collapsing into special cases.


What it is
Graph-relational data substrate
The idea
The ease of Airtable on a relational foundation
Atomic Reason
Measure what is known and what is still missing.
Atomic Reason is a small logic engine that evaluates evidence against a stated goal and returns what is known, uncertain, missing, or contradictory.
A slot represents a question required by the goal. Assertions provide possible answers and evidence. Folding those assertions produces one of five states: known, pending, gap, tension, or contradiction.
Understanding is the share of required slots that are known. The remaining slots become a prioritized worklist instead of being hidden behind a confidence score.
The goal determines which questions matter. Domain-specific rules for required slots and incompatible answers are injected, so the same engine can be used with different kinds of evidence.

What it is
Pure-logic reasoner over evidence records
The formula
Understanding = f(Evidence, Relationships, Time, Context, Goal)
Slot states
known · pending · gap · tension · contradiction
Interface
Zero-dependency stdio MCP server
pac.dog
Public political data, made usable.
pac.dog combines campaign-finance, committee, enforcement, and legislative records into a free public-affairs data platform and MCP server. View the experience ↗
The underlying records are public, but using them usually requires downloading separate files, learning different schemas, and paying for a commercial interface. pac.dog models the records together and makes the relationships navigable.
The site includes committee filings, contributions, disbursements, votes, enforcement records, compliance material, and links back to original sources. An MCP interface lets an AI client query the same modeled data.
The bulk data used by the site is published openly, refreshed nightly, and available without an API key or rate limit.


