Ryan P Smith

Product engineer · West Linn, Oregon

Remnant Locator

A mobile web app that helps countertop fabricators find leftover stone at nearby shops.

  • Year: 2025
  • Role: Product and system design
  • For Remfind, through Machine Intent
    • PWA
    • Preact
    • Convex
    • Web Push
    • Stripe
    • AI agents

Fabrication shops often need a small piece of a specific stone for a job, and the nearest source is usually another shop's remnant rack. In Remnant Locator a shop posts what it needs, every shop within 25 miles gets a push notification, and the two shops message directly. Shops can browse the network without an account; posting and replying require a paid membership, which is also how the founder is validating demand.

This was the founder's first software product, so I also acted as product manager. I kept the transaction between shops rather than mediated by the platform, gave each shop one shared account with equal permissions, and designed for use on a phone between jobs, with no feature more than three taps from the navigation bar. The hardest model to get right was shop-wide threads with read state tracked per person.

AI agents wrote the code. I designed the system so they could work in small, bounded modules: app logic sits behind contracts, and the same test assertions run against mocked and real services. The mocked build doubled as the founder's demo. Preview environments run simulated shops that become active when a real user is, so matching and notifications can be tested on a populated network. Production deploys are gated behind a passkey that only I hold.

Pincites

A Microsoft Word add-in that reviews and drafts contracts against a legal team's playbook.

Pincites: Drafting
  • Year: 2024–25
  • Role: Staff engineer
  • Legal AI startup, team of four
    • Word add-in
    • React
    • Jotai
    • Go
    • LLM

Lawyers work with Pincites in a side panel inside Word. It reviews a contract against the team's negotiation playbook, drafts clauses, and applies its suggested edits as tracked changes, so the output stays in the document lawyers already use.

I owned the frontend and architected the AI chat system. Chat originally required picking a workflow (review, drafting, summary) up front. I proposed one chat that moves between modes based on what the user asks, with a lightweight intent step that runs before the full document is loaded into the model's context. Refusals became consistent, tests could target each step, and the design became part of the sales demo.

Word add-ins run inside Word, so the code that edits documents could not be tested from outside. I built a harness that injects a test module into development builds and reports back to a local service, which made tracked changes, comments and table edits testable and exposed several Word API bugs we then worked around. I also moved application state onto Jotai stores with separate commands and queries, and traced a 6 to 7x slowdown in the Go review pipeline to a library's default concurrency cap.

HyperTrack Ops

Operations dashboards and maps for companies tracking field workers in real time.

HyperTrack Ops: Outage dashboard
  • Year: 2021–23
  • Role: Lead developer
  • Location tracking platform
    • React
    • TypeScript
    • GraphQL
    • MapLibre
    • Recharts

HyperTrack provides live location tracking for field workforces. Its operations apps let customers monitor workers, trips and tracking health across a fleet, and diagnose why a device stopped reporting.

I led product-experience engineering for those apps. With a newly hired product manager I redesigned the main dashboard: one filter state shared and deep-linkable across every view, interactive KPI charts, outage charts that show the cause on hover, and compact spark charts in each table row. Dashboard usage rose about fivefold after the release, and sales began using it in demos. I recorded the launch walkthroughs shown here.

The redesign depended on groundwork. Each page had its own state handling and URL conventions, so I moved shared state into common stores, converted the most depended-on code to TypeScript, and generated typed GraphQL clients for the team. I also built the MapLibre map components the team reused, a geofence editor on Mapbox satellite imagery, and reduced map tile costs by at least 30% through render fixes and per-view tile sources.

DealPoint

A shared deal room where enterprise sellers and buyers plan a purchase together.

DealPoint: Product overview
  • Year: 2019–21
  • Role: Lead developer
  • Sales startup, acquired by Clari in 2021
    • React
    • TypeScript
    • D3
    • Kotlin
    • Ant Design

Enterprise deals take months, and they usually stall because the buyer's team gets busy, not because they object. DealPoint gives both sides one mutual action plan: a timeline of the milestones, owners and dates that lead to a signed contract.

The founder's specification described a broad sales platform. I argued for an MVP built around the action plan alone, then ran a design cycle with the CEO and a visual designer centered on one moment: the buyer's champion showing the plan to their boss in a few seconds. The simplified plan format that came out of it stayed in the product. Customers were onboarding about six months after the reset, and Clari later acquired DealPoint and kept the product.

I chose the stack (Kotlin, React, TypeScript, Ant Design), designed the API, and built the frontend. The centerpiece was an interactive timeline in D3 and SVG that lays the seller's relative deal template over the buyer's real calendar, shows which milestones are likely to slip, and lets users drag dates and preview the result before saving.

Chat Stream

Branching AI conversations on a visual canvas.

Chat Stream: Branching thread

Chat Stream is a plugin for Obsidian's canvas. Each note is a message; any message can branch into alternative replies, and branches can be merged back into one thread. It works with any OpenAI-compatible chat API.

It reached roughly 400 installs a month, and the AI agency Move 37 used it to test prompts interactively with customers.

About

I have built web applications for over twenty years, most recently as a staff and lead engineer at early-stage companies. The work I do best sits between product and engineering: settling scope with founders and product managers, designing the core interaction and data model, and building a frontend the team can keep extending.

Most of that work is in React and TypeScript, with state and data modeling, interactive visualization and maps, and backend work in Python, Go and Kotlin. Recently I have been building AI products, and building with AI agents as the primary implementers under a design and review process I set up.