Get in touch

Kwame Mbugua

Systems for the problems every business has.

I start by understanding the problem from the ground up, then build the system around it.

01 · Work

Five things I shipped.

Vexon OS operations forms page in light mode: a start-of-day form with a mood selector and daily priority fields Vexon OS operations forms page in dark mode: a start-of-day form with a mood selector and daily priority fields
Operations · daily forms, after the October redesign
01PlatformOct 2025 – Oct 2026

Vexon OS

One platform for every role in a sales-outsourcing company, from the CEO to a trialist on their first day.

Problem
Operations ran on Google Sheets, manual CRM exports and a stack of subscriptions. Managers found out who was behind at month end.
Built
Portals for 15 roles with row-level security on every table, live KPIs from the CRM, red/amber/green targets, hiring and onboarding pipelines, finance tools, scheduled jobs, and an admin console to configure it all without code. In October I audited real usage, cut 39 pages and redesigned the UI in two days.
Result
426 PRs in 15 weeks; 87 backend functions, 533 migrations, ~199 tables. A 28-client health spreadsheet retired; three critical security holes closed.
  • React
  • TypeScript
  • Supabase
  • PostgreSQL + RLS
  • Deno edge functions
  • pg_cron
Public booking flow · live slots from the host's real calendar
02Booking · Vexon productAug 2026 – now

Kronos

A Calendly replacement: public booking pages, round-robin hosts, live calendar checks, reminders, reschedule and cancel.

Problem
21 Calendly seats, lead details copied by hand, clients on Microsoft 365 that could not be booked into, and reminders people did not get.
Built
Availability across Google Calendar and Microsoft 365 (multi-tenant Entra app, Graph free/busy), a database constraint that makes double-booking impossible, unique Meet or Teams links with an automatic repair sweep, email and SMS reminders, two-way SMS, callbacks within working days, CRM autofill from a pasted lead link, and a Google-verified OAuth app.
Result
Calendly cancelled. Two paying customers, three client calendars connected on Microsoft, about 70 PRs of iteration from real use.
  • Supabase
  • PostgreSQL
  • Google Calendar API
  • Microsoft Graph
  • Twilio
  • Resend
  • Close CRM
Enquire public form showing question 1 of 9, 'Are you a recruitment agency owner?', with keyboard-selectable A and B answers
Public form · one question per screen, scored on submit
03Forms + lead scoringSep 2026

Enquire

A Typeform and Jotform replacement: builder, public one-question-per-screen forms, server-side scoring, routing and one-click push to the CRM.

Problem
Two form subscriptions, five minutes of copy-paste per job application, and website leads that could not be routed by answer.
Built
A form builder with versions and media; per-answer points, hard-fail rules and a pass mark scored on the server; routing to different confirmation pages; email and webhook sinks; and a push that maps 14 custom fields into Close CRM.
Result
Typeform and Jotform cancelled. 48 starts and 11 scored applications on day one. Proposal to live in 72 hours.
  • React
  • Supabase
  • PostgreSQL
  • Close CRM
  • Webhooks
  • Resend
A run · scores, hard-gate failures and one-line reasons
04Hiring automationAug – Sep 2026

CV-screening agent

An agent that read every applicant's CV, applied hard rules and a rubric, and wrote a shortlist with a one-line reason per candidate.

Problem
The hiring manager spent about three hours a day reading CVs. Good ones were rare (LinkedIn ~18% shortlist rate, Indeed ~2.4%) and screening was inconsistent.
Built
A written screening spec turned into a rubric with hard gates; a Python orchestrator running six parallel sessions on a cron, fed by a Google Apps Script webhook and writing results back through a platform endpoint; a holdout test against the manager's own decisions before trusting it.
Result
~1,400 CVs in a month at ~$0.20 each; 72 CVs in 18 minutes; no good CVs lost in the holdout. Credited with 60 hours a month saved.
  • Python
  • cron
  • Google Apps Script
  • Supabase
  • Rubric scoring
Business-development pipeline · the agency's booking page
05Client workJun – Oct 2026

Booking + ATS platform for a UK recruitment agency

A separate operations platform for a Built Environment recruitment agency: pipeline, delivery, candidates, roles, live activity numbers and booking with two-way SMS.

Problem
Managers could not see real activity without exporting from the CRM, and candidate and client calls were booked over email ping-pong.
Built
A standalone platform with its own database and roles; CRM metrics with a five-minute cache (up to 6,000 calls a month) and phone enrichment; Kronos ported in with discovery and intro-call pages, callbacks, editable message templates and inbound texting.
Result
32 merged PRs, 41 migrations, in daily use. The agency is the second paying customer for Kronos.
  • React
  • TypeScript
  • Supabase
  • Close CRM
  • Twilio
  • Google Calendar API
426
merged pull requests, 15 weeks
87
backend functions in production
533
database migrations
6
paid tools replaced
1,400
CVs screened by an agent I built
2
paying B2B customers
02 · Stack

What the work is built with.

Front end
  • React
  • TypeScript
  • Vite
  • Tailwind
  • shadcn/ui
  • TanStack Query
Data and backend
  • Supabase
  • PostgreSQL + RLS
  • Deno edge functions
  • pg_cron
  • GitHub
Integrations
  • Close CRM
  • Google and Microsoft calendar APIs
  • Twilio
  • Resend
  • PandaDoc
  • n8n
  • Zapier
Build tooling
  • Lovable
  • Claude Code
  • ChatGPT
  • OpenAI API
  • Anthropic API
  • Anthropic Agent SDK
  • OpenAI Agents SDK
03 · About

A bit about me.

Kwame Mbugua, arms folded, in a garden

I'm Kwame, 27, from Johannesburg. I'm not a traditional developer, and I didn't take the usual road into this work.

After Parktown Boys' High School I studied International Relations at the University of Pécs in Hungary, took a systems-development course, and interned as a threat-response analyst at CrowdStrike, where I learned to read a live system under pressure and triage what matters first.

I then joined a UK sales company as an SDR and booked 30 meetings in my first month. The bigger shift came next: thirteen months building and maintaining the platform and tools the company relied on day to day, from the data model and integrations to incidents and training.

Today I run Vexon Systems, which provides Kronos, my booking system, to B2B customers. I'm fully open to remote product, systems, solutions and founding-team roles, and to collaboration. I speak English and fluent French, conversational Afrikaans, and basic Spanish and Swahili.