Bemco Machine Works LTD. · Mississauga, ON ·
May 2025 – Aug. 2025, May 2026 – Aug. 2026
Designed and deployed a production quality-control system replacing an entirely
paper-based inspection workflow, now used daily by 6 machinists across 5 tablets and the
front office to document ~10 work orders per day.
Built a full-stack React application on Cloudflare Pages, Workers, D1, and R2,
implementing PIN-based user authentication, role-based permissions, and device-level access
control for shop-floor kiosks.
Engineered an automated tolerance-verification engine that parses mixed dimensional
formats (decimals, fractions, one-sided and bilateral tolerances) and hard-stops production
when a reading falls out of spec, replacing manual sign-off with enforced verification.
Architected a three-stage inspection pipeline (casting → inspection report →
QA-approved-to-ship) with blind inspector verification, preventing operators’
readings from being visible during independent re-measurement.
Machined precision components on CNC mills and manual lathes to ±0.001 in., and
reverse-engineered legacy parts into SolidWorks drawings released to production. That shop-floor work is what the QC system was built on.
The application
Office work order entry. Customer, drawing, revision, casting countOperation builder. Dimensions and tolerances defined per operationShop-floor kiosk view, scoped to the deviceTolerance engine parsing decimals, fractions and angular limits as entered
1 / 4
Access control and enforced verification
Role enforcement. The system tracks who entered the original readings and refuses to let them self-verify.Blind verification. The inspector’s view withholds the operator’s values.Validation on entry before a value is committed.Hard stop and override request, routed to the office and recorded.
1 / 4
Generated records
Sampling logic. 10% of parts, minimum one, escalating to 100% on a failureGenerated inspection report, traceable per heat numberWrite-once for operators, editable and printable by the office
1 / 3
Stack
React on Cloudflare Pages, Workers for the API, D1 (SQLite) for records, R2 for stored
documents. PIN authentication with role-based permissions, and device-level access control, so
a shop-floor tablet only sees its own scope.
Screens shown use demonstration data.
The same system is covered from the quality side under
Experience › Mechanical.
Web Developer (Contract)
Bemco Machine Works LTD. · Mississauga, ON ·
May 2026
Bemco asked me to build them a website while I was still working in the shop. I built a
full multi-page site in HTML, CSS and JavaScript on Cloudflare Pages, and handled the
hosting migration and the DNS and email recommendations that came with it.
Capabilities pages, a product gallery and a contact form, and it works on a phone.
BEMCO Machine Works Ltd. The first site I was paid to build, and the one the business came out of.
BEMCO Machine Works Ltd. The shop I interned at hired me for a second and unrelated thing, which I took as a reasonable signal.
Founder
Wrench Digital · Mississauga, ON ·
May 2026 – Present
Building that site is what started the business. I set up Wrench Digital as a web
design business for small trades companies in the GTA, priced as a one-time build fee plus
$25 a month for hosting.
However, the hard part wasn't building the sites. It was setting the price low enough that
a small shop would say yes and high enough to cover hosting and my time.
Wrench Digital. Services, pricing, portfolio and a quote form, hand-coded and running on Cloudflare Pages.
Wrench Digital. Written from scratch in HTML, CSS and JavaScript. Multiple pages, a lead capture form, and Stripe checkout for the fixed-price packages.
SiteGap
Internal tool for Wrench Digital · 2026
Finding clients was the slow part, so I built the tool that does it. SiteGap searches
an area for local businesses with no web presence, scores them, and lists them as leads.
It writes a cold email or a call script for each one, auto-generates a demo site so there is
something to show before they decide, and takes a lead through a Stripe checkout.
Built on Cloudflare Workers, D1, Next.js and SerpAPI, with the outreach generated
through the Anthropic Claude API.
SiteGap. Find businesses with no website, then close them.
SiteGap. The landing page is public. The dashboard behind it holds the lead table, the generated emails and call scripts, the demo builder and the outreach tracker.