I build the software that runs yards, counters, and lending desks.
And I say yes when others say no.
That is thirty years of it — the ERP and field apps a business runs on, the
websites and apps out front, and the games, video, and hardware around the edges, all on
infrastructure I run myself. For businesses that move real equipment and real money, across
Canada and the US. Most of it is still running, which is the only review I really trust.
What I take on
Small teams, real operations, systems that have to work on Monday. Monday is not negotiable.
Custom operations software
The system your business actually runs on when off-the-shelf doesn't fit: assets,
scheduling, billing, inventory, payroll, maintenance. I've built these end to end for
equipment rental, heavy machinery parts, mining, and private mortgage lending — including
the unglamorous parts, like bin locations, cron jobs, and the tax slips at year end.
I know the iron, not just the software
For the equipment trades that is half the job. I know Caterpillar, Komatsu, and John Deere
by make, model, and model year, and the aftermarket cross-references a parts desk lives on —
the number that fits the machine in front of you, and the three other machines it also fits.
I did not read that in a manual. I built the catalogue and inventory systems that encode it,
scraping and structuring machine make, model, and type data across the industry to seed them.
When we talk about your yard or your parts counter, I already speak the language.
Caterpillar, Komatsu, and John Deere are their owners’ trademarks. I am describing experience with the equipment, not any affiliation with or endorsement by them.
When the job leaves the screen
Software is not always where it ends. I already run IoT tracking on rented equipment out
in the field — a Raspberry Pi and cheap sensors rather than a vendor's locked box,
reporting where a machine is and what it is doing straight into the system that bills for it.
The tooling around the edges has caught up too: a drone turns a site survey or a roof
inspection into a morning's work, and 3D printing turns a one-off bracket or a discontinued
part into an afternoon instead of a six-week lead time. For an operation that moves real
equipment, that is the difference between a workaround and a fix.
Bring me on site and the work goes to another level
The systems that actually fit are the ones built by someone who watched the operation run.
If you are within reach, I would rather come to you — stand at the counter, walk the
yard, watch a shift, see exactly where the current tools slow people down — than build
from a spec and a screen share. It is the same habit as reading a river before I cast: I get
further by being in the place than by being told about it. Bring me in for the full picture
and what I build fits the way you actually work, not the way a requirements document imagined
it.
Mobile-first, because your customers are
Most people who find you are on a phone — often more than half, and for a lot of
businesses far more than that. So the phone is where I start a design, not where I check it
at the end. This site is built that way: laid out for a thumb first, opened up for the
desktop second, and the menu you are reading on your phone right now is the proof of it.
When a browser is not enough, native: a React Native app in the field kept at real
feature parity with the web rather than "it mostly works", Cordova apps published to Google
Play and the App Store, or a progressive web app that installs to the home screen with no
store at all. Every screen is checked on a real device before it ships — a layout that
passes on a laptop and breaks on an iPhone is the most common bug in this business, and the
one I refuse to ship.
Legacy systems, kept alive and moved forward
A working system you can't switch off is not a problem to be replaced overnight. I run
legacy and modern side by side — a CodeIgniter application still serving production while a
React web app and a React Native app take over screen by screen, with tenant isolation and
role-based access added on the way through.
Things people actually enjoy using
Not everything is a form. I build the fun pieces too — a multiplayer game your customers
play on their phones, a prize wheel that runs on the warehouse TV, a touchscreen your sales
staff hand to a walk-in. I've been doing this since sales showrooms ran on Flash kiosks, and
the point has never changed: give people something they want to touch.
Have a go on a few of them.
Recruiting sites for athletes — filmed and cut
A site that puts a young athlete in front of the people handing out scholarships:
highlights, stats, schedule, and a way to reach them, with the game film shot and edited to
match. I built my first one in 1996 — for myself, to promote my own basketball —
and it ran in the Vancouver Province. One person doing both the page and the video means the
reel and the site actually fit together, and the whole thing is ready to send to a coach, not stitched together from three vendors and a template.
Video, end to end
Full editing to finish the package — highlight reels, product and promo pieces, the
cut that makes a site feel alive rather than a page of stock photos. Shot, edited, and placed by the same person who built the page, so the film and the site were made for each other.
Infrastructure one person can run
AWS from the ground up: EC2, CodeDeploy, SES, snapshots, nginx and Let's Encrypt, Docker
Compose in production. Set up so it stays cheap, stays patched, and doesn't need a platform
team to keep the lights on.
AI for your business, explained straight — live on Zoom
Your feed is full of people selling AI. Most of them have never shipped it. I run plain,
practical sessions over Zoom — for owners and teams who want to understand what these tools
actually do before they spend money on them. What Claude and the rest are genuinely good at,
where they will quietly burn you, and how to put them to work in the business you actually
run. No hype, no course to upsell you into — just an hour with someone who runs this in
production, answering the questions you came with. Book a session.
How I build now
AI is in the products I ship and in how I ship them — with the guardrails on.
AI inside the product, kept on a short leash
Lend Pilot runs Claude in production to pull structured data out of the mortgage
documents a borrower uploads — pay stubs, NOAs, statements — so nobody retypes them. What
the model does not do is the math. Qualification, GDS/TDS, and the B-20 stress test
are deterministic code with the Canadian semi-annual compounding written into them, and the
underwriting readout reconciles stated income against the worksheet and shows its working.
In a regulated business, a number a model guessed is a liability. Extraction is a good job
for AI. Arithmetic isn't.
An agent setup built around my own codebases
I don't run a chatbot beside my editor. Each of my repositories carries its own
instruction file — the money rules, the deploy runbook, what is safe to touch in the legacy
application — so the assistant works to the project's standards instead of generic ones.
On top of that sit purpose-built agents I wrote: one compares a behaviour across the legacy
app, the React web app, and the React Native app and reports only where they diverge; one
re-verifies defects against deployed code rather than trusting a status column; one answers
questions against the production database and returns findings instead of dumping rows.
Nothing ships because a build went green
My hardest rule is delegated to an agent that refuses to approve a change on the strength
of a passing type-check, a successful build, or a curl that returned 200. It renders the
screen in a real browser or the iOS simulator, screenshots it, and reports what is actually
there. That single habit catches the class of bug that costs a day: the thing that compiles,
deploys, and is wrong on screen.
I was doing this before it was easy
The conversational routing I built at Brikers — Twilio Autopilot handling inbound sales
calls across voice, SMS, and email — went in around 2016, when it took real work to make a
machine hold up its end of a conversation. The tooling got better. The judgement about where
to point it is the part that took thirty years.