Skip to main content

Work & Case Studies

AI fails at the wiring, not the model.

Most of what I've shipped sits at that seam: connecting a chatbot, a help centre or an agent to the systems that hold the answer, then making the result hold up for real users. Seven years on Upwork's support platform, the last three as Engineering Lead, and now my own builds at Adommo.

Results below are quoted from public sources where they exist, and labelled when they don't. Work at Upwork was team work; each case study says what my part was.

  • Upwork · Dec 2021 – Jul 2024

    The chatbot integration behind a 58% resolution rate

    I engineered the Forethought–Zendesk integration behind the 58% chatbot resolution rate Zendesk published in its Upwork customer story, then owned the platform through 2024.

  • Upwork · May 2022 – Sep 2022

    Retiring a four-hourly tag job with live data

    Zendesk only knew who an Upwork user was from tags pushed at login. I replaced them with real-time GraphQL data and retired the job that made them.

  • Adommo LLC · Mar 2026 – Present

    Finch: a support assistant that hands over instead of guessing

    A retrieval-augmented support assistant that answers from a team's own help centre and ticket history, and opens a Zendesk ticket with the context attached when it can't. In development.

  • Upwork · 2020 – Mar 2021

    Three conversations, one ticket

    Disputes involved a client, a freelancer and an agent in separate conversations. Using special access to Zendesk's side-conversation API, we put all of them in one ticket.

  • Upwork · Feb 2020 – Apr 2020

    Live account data in a hosted Help Center

    Zendesk Guide only knew a user as they were at login. I led the team that built a JavaScript OAuth 2.0 client so the Help Center could read live account data from the Upwork API.

  • Upwork · Jun 2017 – Jul 2024

    One theme framework, eight Help Center launches

    Upwork's Help Center is the self-service front door to a 300+ agent support operation. I built the theme framework that carried eight redesigns, then led the team that owned it.

More work

  • Ada on Zendesk: one wrapper, smarter handoffs

    Upwork · Jun 2017 – Dec 2021

    Upwork's first support chatbot. I integrated Ada with Zendesk, built a wrapper so any team could embed it, and added routing data so live-chat handoffs reached the right agent group.

  • Zendesk Skills: catch theme errors before upload

    Adommo LLC · Jun 2026 – Present

    Guide theme imports fail late, after upload. Zendesk Skills lints themes locally, deploys them through the Themes API, and gives AI coding agents the conventions they're missing.

  • Vibe Code Ninja: check, log, evolve

    Adommo LLC · Jun 2026 – Present

    Three agent skills: architecture drift checks before code changes, friction logging, and a weekly review that turns the log into new skills.

  • Keeping agents on the ticket

    Upwork · 2020 – Jul 2024

    Agents kept leaving the ticket to look things up. Sidebar apps and Agent Workspace integrations brought that context into a single ticket view.

  • A grant platform in one week

    Upwork · Apr 2020

    Upwork's $1M COVID-19 talent grant program needed an application platform and a review process, fast. I led the development team that built it in a week.