Where I’ve worked
Work
The teams I’ve worked with, what I was responsible for, and a few examples of the work. The case studies follow individual products in more detail.
Oloodi Technologies
November 2025–present
Customer Engineer / Full-Stack Engineer · Contract
At Oloodi, I work on KROW Workforce, which connects staffing companies, their clients and the people working each shift. My role combines building the product with helping people understand how it fits their operation.
I work across staffing workflows and give product demos to teams including Snapchat, Google, EA Sports and Nvidia. That puts me close to both the implementation and the questions people ask when they first use it.
More about this work ↗Ethos / HeyEthos
May 2022–November 2025
Senior Full-Stack Engineer
I joined Ethos through blockchain work and stayed for three and a half years as the product grew into membership and loyalty software for merchants.
My work moved from contracts and supporting APIs into Shopify storefronts, checkout and point-of-sale integrations, and Luna, the merchant platform. I worked across the customer experience and the tools a brand used to manage it.
More about this work ↗Independent work
January 2023–present
Software Engineer — Product, Data & AI
I work directly with founders and operating businesses, from figuring out what the product needs to do through designing and building it.
For Diane Party Rentals, that meant connecting quotes, payments and rental operations. For Starthome, it meant working with the founder on a mobile inspection workflow. My independent research projects, MTL Archives and PortMind, have their own detailed case studies.
More about this work ↗SaaS Alerts
October 2020–December 2021
Software Engineer · Integrations & Security
SaaS Alerts was my first production software role. I worked on integrations that helped managed service providers monitor security events across IT Glue, Datto, ConnectWise, Kaseya and Microsoft Graph.
Much of the work was investigative: recreating an event, inspecting the vendor’s response and finding out whether the signal we wanted was actually available.
More about this work ↗