Kennedy Wambua
Software engineer · Full-stack · AI

I build complex software that feels simple.

I design and engineer reliable digital products, from payment infrastructure and enterprise platforms to AI-powered applications. I work across the stack, turning complicated problems into software people actually enjoy using.

Illustrative events from systems I've built. Not live data.

Founder & lead engineer · 2026–now

Mintfa

Payments infrastructure for African businesses. A company calls one API to collect money and hold balances, gets signed webhooks back, and Mintfa keeps the books. M-Pesa is the first payment rail, with more to follow. In development: payments are tested end to end against the M-Pesa sandbox, and live payments are not open yet.

Under the hood
  • A double-entry ledger in integer cents: every journal must balance, and database constraints guarantee available = posted − pending − held − reserved.
  • Idempotency keys on every write request, so a client that retries after a timeout can never charge a customer twice.
  • A pluggable payment-rail layer, starting with an M-Pesa STK push connector, plus a recovery worker that asks Safaricom about unconfirmed payments and hands stuck ones to an operator instead of guessing.
  • Webhooks sent from a transactional outbox, signed with HMAC-SHA256, and blocked from reaching private networks.
  • Multi-tenant from the start: each organisation's API keys, wallets and ledger accounts are split into separate test and live modes, and going live needs staff approval and two-factor sign-in. Covered by ledger concurrency tests.
SDKs→NestJS API→Outbox + BullMQ→Postgres ledger↔M-Pesa
Founding engineer · 2026–now

Hut Yangu

A property app for Kenya. Renters browse homes neighbourhood by neighbourhood in a social-style feed with video tours, instead of scrolling classified ads. Pre-launch, with a waitlist open.

Under the hood
  • Built the web app and the Expo (React Native) mobile app on one Supabase backend, with row-level security on every table (150+ policies).
  • Search that understands plain queries like “2 bedroom in Kilimani under 30k”, ranks the results, and widens the search when nothing matches.
  • A video pipeline on Cloudinary: upload, processing webhooks, reconciliation, and cleanup of orphaned files.
  • AIMade the site readable by AI agents: an MCP server card and WebMCP tools let assistants like Claude look up listings. Early version.
Next.js+Expo→Supabase·Postgres + RLS→Cloudinary
Radi Digital · 2024–now

Tija eProcurement

Procurement software for organisations: purchase requests, tenders and bids, purchase orders, deliveries, invoices and payments, each with approvals. I am one of three core engineers.

Under the hood
  • AIBuilt the first version of Nia, the in-app assistant. Users ask questions in plain English and an LLM writes the SQL, limited to an allowlist of tables.
  • AIInventory insights with LangChain and Google Gemini, and stock-transfer suggestions that rank stores by travel distance.
  • Built the configurable approval engine: each organisation designs its own flows from trigger, condition, approval and notification steps, used across eight kinds of records.
  • Budget reservations, so the same money can't be committed twice: submitting a request reserves funds, approval spends them, and rejection releases them. Also built the licensing module.
Next.js→NestJS→Prisma + Postgres·LangChain→Gemini
Radi Digital · 2024–now

Strukchad

Software for construction companies: labour, procurement, inventory and project finances in one place, plus a mobile app for site teams. Built by a team at Radi Digital; my main area is the mobile app.

Under the hood
  • Mobile app work (React + Capacitor): a virtualised task list so big projects scroll smoothly, worker data scoped to the active company, and inline form validation.
  • Fixed data loading that silently dropped rows: capped parallel requests, and an approval inbox that lost price-check flags past 1,000 order lines.
  • Built the first Paystack subscription billing (card setup, HMAC-verified webhooks, retries for failed charges) and Lemonade mobile-money flows for property wallets and tenant rent payments.
React+Capacitor→Supabase·Postgres + RLS→Paystack
Solo build · 2026

Signature Closet

An online store for the fashion label Signature The Brand, with an admin workspace for the team. I built it alone, from database to storefront. Pre-launch: the real catalogue and online payments come next.

Under the hood
  • Checkout reserves stock inside a single Postgres transaction with row locks, so two shoppers can never both buy the last item.
  • A database trigger releases reserved stock when an order is cancelled or expires.
  • An admin workspace with 14 sections (products, orders, returns, team and more), with permissions enforced in the database.
  • Next.js 16 running on Cloudflare through OpenNext.
Next.js 16→Supabase·Postgres→Cloudflare
Portrait of Kennedy Wambua in a navy suit
About

Hi, I'm Kennedy.

I'm a software engineer from Nairobi who enjoys figuring out how things work and making them work better. I studied Computer Science at Maseno University, and over four years I've built internal tools at Airtel Kenya, procurement and construction platforms at Radi Digital, and now Mintfa, my own payments company, alongside a founding role at Hut Yangu.

I like building products end to end. Some days that means an interface that feels effortless; other days it's a database constraint, a stubborn integration, or a bug that only shows up in production. I care about the details, and about the bigger picture: who we're building for and whether the feature actually solves their problem.

The part I enjoy most is the one users never see. A retried request must not charge twice, an approval can't be skipped, the last item in stock can't be sold to two people. I like making those guarantees hold in the database, not just in the UI.

How I think about engineering

Six habits, and where you can see them in my work.

  1. Understand the problem before picking the technology

    Hut Yangu search reads queries like “2 bedroom in Kilimani under 30k” with plain rules instead of an LLM. For that job, rules are faster, cheaper and predictable.

  2. Good interfaces and reliable backends matter equally

    On Signature Closet the storefront is editorial and image-led, and checkout locks stock rows in Postgres so two shoppers can't both buy the last item.

  3. Prefer boring and maintainable over clever

    Hut Yangu's web and mobile apps share one Supabase backend and one set of security policies, so a rule fixed once is fixed everywhere.

  4. Treat data integrity and failure as features

    Mintfa's ledger rules live in database constraints, every write is idempotent, and unconfirmed payments go to a person instead of being retried blindly.

  5. Automate the repetitive, keep judgment in the loop

    My coding agents must post a plan I approve before they write any code, and every change passes CI and a separate review before it merges.

  6. Keep learning how software gets built

    I added MCP and WebMCP tools to Hut Yangu early, so AI assistants can search listings, and I keep refining how I work with coding agents.

What I work with

Four years of shipping, mostly where money meets messy workflows.

Frontend and product

React, Next.js, TypeScript, Tailwind CSS, React Native and Expo, Capacitor, responsive and accessible UI.

Seen in Hut Yangu, Signature Closet, Strukchad

Backend and data

Node.js, NestJS, PostgreSQL, Prisma, Supabase, Redis, BullMQ, REST, GraphQL, C#/.NET, Laravel.

Seen in Mintfa, Tija

Infrastructure

Docker, Linux, GitHub Actions, CI/CD, Cloudflare, DigitalOcean, reverse proxies and deployment.

Seen in Mintfa, Signature Closet

Specialised work

Double-entry ledgers, M-Pesa, Paystack and Lemonade payments, approval workflows, multi-tenancy and row-level security, Dynamics 365 Business Central integrations, AI features.

Seen in Mintfa, Tija, Strukchad

AI

Exploring better ways to build software

In the products

I build AI in where it solves an actual problem: plain-English questions over business data (LLM-written SQL over an allowlisted set of tables), LangChain and Gemini insights, and MCP tools that let AI assistants use a site.

In how I work

I experiment with coding agents, structured planning, automated testing and code review on a self-hosted setup. Agents post a plan for my approval, every change must pass CI and a separate review, and I read and own what ships.

Experience
  • Founder & lead engineer · MintfaPayments infrastructure in development: ledger, M-Pesa, webhooks
    2026–now
  • Founding software engineer · Hut YanguWeb and mobile apps, search, video pipeline
    Mar 2026–now
  • Software engineer · Radi DigitalTija eProcurement, Strukchad, Business Central integrations
    Feb 2024–now
  • Software engineer · Airtel KenyaInternal enterprise web apps: React, TypeScript, ASP.NET
    Jun 2023–Feb 2024
  • Software engineer · Alternate LimitedDocument management and workflow automation on SharePoint and .NET
    Apr 2022–Feb 2023
  • BSc Computer Science · Maseno UniversityEducation
    2019–2023

Full CV

Contact

Have something interesting in mind?

I'm open to remote software engineering roles, long-term contracts, and select projects where I can help turn a good idea into reliable software.