Work

Big-system experience. Small-team price.

Two kinds of proof. Systems we have engineered for large public-sector and enterprise organizations, where client names stay confidential. And things we have built and run ourselves, which you can see and try.

Engineering background

Proven where it counts.

Built as part of larger teams at organizations across Canada and the US. Details are kept general on purpose: the clients are real, and their privacy matters.

01

Public-sector service platform

Fault-tolerant, event-driven platform behind a core government service, with full audit trails and live sync to legacy on-premise systems.

JavaContainersEvent-drivenOIDC
Millionsof residents served

What was built

  • Event-driven services in Java, running in containers, so one slow step never holds up the rest
  • Sign-in through the organization’s existing identity provider (OIDC)
  • A full audit trail: who changed what, and when
  • Live, two-way sync with on-premise systems that were not going away

What it means for you

Most municipalities have the same shape of problem at a smaller size: a new online service that still has to talk to the old system in the back office. Same patterns, right-sized.

02

Organization-wide AI platform

Self-serve platform letting staff build and deploy their own AI assistants, with real-time chat, swappable model providers and fine-grained access control.

RAGTypeScriptWebSocketsRBAC
10K+users

What was built

  • A self-serve builder so non-developers can set up their own assistant
  • Real-time chat over WebSockets
  • Swappable model providers, so no single AI vendor owns you
  • Role-based access: each team sees only its own assistants and documents

What it means for you

You probably need one or two assistants, not a platform. But the hard parts are the same: permissions, keeping documents private, and not getting locked into one vendor.

03

Healthcare AI assistant

Source-grounded AI assistant giving patients and the public trustworthy answers from vetted medical content, embedded across public websites.

RAGPythonReact
Citedevery answer

What was built

  • Retrieval-augmented answers from a vetted content library only
  • A citation on every answer, so readers can check the source
  • A widget embedded across several public websites

What it means for you

Health content is about as unforgiving as it gets. A bylaw, a garbage schedule or a permit guide is a much easier place to apply the same care.

04

Cloud security re-platform

Moved a large multi-account cloud organization onto a modern security baseline, tightening access controls and network segmentation across hundreds of workloads.

IAMNetworkingPolicy-as-code
0workloads disrupted

What was built

  • A modern security baseline rolled out across many cloud accounts
  • Tighter access controls and network segmentation
  • Guardrails written as code, so they stay applied
  • Rolled out without disrupting running workloads

What it means for you

This is where the two-week Cloud & Security Review comes from: the same checklist, applied to your accounts, with a plain-language report.

05

AI-assisted modernization

Framework that uses AI coding agents to convert legacy applications to modern cloud architectures, with security hardening built in.

LLMsIaCSecurity
~50%less migration time

What was built

  • A framework that pairs AI coding agents with human review to convert legacy apps
  • Infrastructure as code generated alongside the application
  • Security hardening built into each step, not bolted on after

What it means for you

It is why modernization quotes can come in lower than you expect: the repetitive translation work is faster, and the engineering time goes into the parts that need judgement.

In-house builds

Don't take our word for it. Look.

Products and infrastructure built, tested and run by Hawthorn Digital. Same standards as client work: tested, documented, deployed automatically.

Product demo · walkthrough on request

Cellar: a website platform for wineries

A WordPress replacement built for small wineries and the marketing teams who run their sites. One install runs many winery websites, each with its own look, shop and staff logins.

  • Live page editor with 23 building blocks and a side-by-side desktop / phone preview
  • A free-form canvas block that still stacks cleanly on phones
  • Blog with tags and drafts, event listings, wine catalogue
  • Online shop per site: stock, tax, shipping, pick-up, orders dashboard
  • Named logins with admin and editor roles, limited to their own sites
  • AI help for drafting pages and rewriting copy
  • Over 100 automated tests, including phone-width browser checks
NuxtTypeScriptSQLitePlaywright

The wineries in the demo are made up. Screenshot photo: “Kelowna Vineyard overlooking Okanagan Lake” by Kelowna09, CC BY 2.0, via Wikimedia Commons.

Cellar demo: a winery home page with a large photo of vineyards above Okanagan LakeCellar editor: page settings and content fields on the left, a live preview of the page on the right
In production · you can try it

This website’s booking system

The “Book a call” page is not a Calendly embed. It is a small booking system built from scratch, the same kind of thing a municipality might need for inspections, rooms or appointments.

  • Open slots from weekly hours and days off, correct across daylight-saving changes
  • Email confirmation, calendar invites and one-click cancel
  • Layered spam defence, and double booking blocked by the database itself
  • Private, cookie-free visitor analytics: no tracking banner needed
  • An admin dashboard for bookings, availability and traffic
NuxtSQLiteDockerGitHub Actions
Try the booking flow →
In production

The infrastructure it runs on

Every server behind this site is configured from a Git repository. Nobody logs in to change things by hand, which is exactly what we set up for clients.

  • Push to main: tests run, an image is built, the server updates itself
  • A failing test blocks the release. Rolling back is re-running an older build
  • HTTPS certificates issued and renewed automatically
  • Automatic blocking of repeated break-in attempts
Infrastructure as codeCI/CDContainersAutomatic TLS
Get in touch

Want something like this?

Tell us about the problem. You'll get an honest read on whether it's worth building, and what it would take.

Book a free 30-min call →or email [email protected]Pick any open slot · Video or phone · Remote across BC