About

About Adam

I am a software engineer in Toronto. I gravitate to the layers of the stack most people would rather not think about, and lately, to teaching machines to handle the parts nobody wanted to do in the first place.

Expertise logo

Expertise

Current

I am an engineer at Expertise, where we build AI agents that actually do the job. Not a chatbot that hands you a to-do list, but an agent that goes and finishes it. Research the account. Draft the outreach. Run the ten-step workflow on a schedule, then report back when it is done.

Most of my work lives underneath that promise. An agent only feels like magic if the sandbox it runs in spins up in about the time it takes to blink, if the tools and connectors it reaches for are wired correctly, and if the whole multi-tenant machine stays honest about credits, errors, and exactly what each agent is allowed to touch. I move across the stack to make that true: the backend, the agent runtime, the dashboard people actually click, and the internal ops tooling that lets us catch a failure before a customer ever feels it.

Amazon Aurora interface and database infrastructure graphic

On the Amazon RDS Aurora control plane, I helped build and operate the distributed backend that quietly runs a large slice of the world’s production databases. That job rewired how I think about software. Correctness is table stakes. What actually keeps you up is startup time, memory footprint, secure service-to-service communication, and the question every system eventually has to answer at 3 a.m.: what happens under real load, when nobody is watching?

A lot of it lived on the seam between product capability and raw efficiency. I wrote Java and Rust across Aurora Serverless v2 initiatives, streaming update systems, lightweight agents, authorization, and migrations like pulling JVM services onto Quarkus and GraalVM Native Image. Same goal every time: make a cloud system smaller, faster, more observable, and easier to operate without quietly trading away reliability.

Level Access brand visual

Level Access was my first real engineering team, and the place I learned that “it works on my machine” is the start of the conversation, not the end. I built features across the MEAN stack (Angular, Node, Express, MongoDB) and watched how a frontend decision, a missing piece of backend validation, and a thin test all compound into whether a workflow is any good.

The product was about digital accessibility, and that stuck with me. It made the work concrete: a feature is not done because the happy path is green. It is done when it is understandable, maintainable, testable, and genuinely usable by the people it was built for, including the ones the rest of the industry tends to forget.

Contract and community builds

Away from the big orgs, I take on smaller builds where the feedback loop is measured in hours, not quarters. Lume is the clearest example: I worked as a full-stack engineer on a small team, shipping responsive product features in React, TypeScript, Next.js, and Tailwind while pitching in on planning, the GitHub flow, and the customer-facing polish that decides whether a thing feels finished.

It pulls a different muscle than infrastructure work. No process to hide behind, no platform team to escalate to, just a loose product need and the job of turning it into something a real person can use, then shipping it before the moment passes.