Lawrence Wafula / backend engineer

I build the parts that keep products moving.

I design APIs, data models, auth flows, and deployment systems for teams that need their software to stay understandable after it ships.

2021started building with Python
04live products
KEbased in Kenya
01 / Selected work

Work that has to hold up after launch.

A few products I have helped build, ship, and keep running. The common thread is useful software with a clear path from idea to production.

01Live product

AI platform / Africa

AI-Sprouts

A platform making AI tools and training more available across Africa. I built the data pipelines, model integrations, and APIs that hold the product together.

  • Next.js
  • Express
  • TypeScript
  • AI integration
Visit site
02Live product

Infrastructure / security

ChamaAI

Infrastructure and security work for a product using Supabase for data and auth, custom DNS, and a deployment path that does not need a keyboard nearby.

  • Supabase
  • DNS
  • Security
  • Deployment
Visit site
03Live product

Autonomous GTM platform

Greywolfx Leads

An autonomous GTM platform built on Convex and Clerk. It finds and enriches leads, scores them, then runs the outreach campaigns end to end.

  • Convex
  • Clerk
  • Lead scoring
  • Outreach automation
Visit site
04Live publication

Technical publication

Runtime Signals

A technical publication about building reliable AI-agent systems in production. I run the editorial pipeline and the security, performance, and accessibility gates the site has to clear before anything ships.

  • Astro
  • TypeScript
  • Editorial workflow
  • Security
Visit site
02 / About

The work is mostly invisible. That is the point.

I'm Lawrence, a backend engineer in Kenya. I work across APIs, data models, authentication, and deployment so the visible parts of a product have something solid underneath.

I like the practical middle ground: enough structure to make change safe, not so much ceremony that the system becomes its own problem.

Make failure boring

Error handling, retries, logs, and useful defaults are part of the product, not cleanup for later.

Keep the shape clear

Small modules, honest names, and documentation that helps the next person make a change safely.

Treat security as structure

Auth, secrets, permissions, and deployment boundaries belong in the first version of the system.

A short timeline

2021

Started with Python

Small scripts and CLI tools turned into a lasting interest in how software behaves under pressure.

2022

Services, not just scripts

FastAPI, Django, REST, and the project structure decisions that start to matter once other people depend on the code.

2023

Put it on the internet

Docker, DNS, Supabase, security hardening, and the practical work of keeping public software healthy.

Now

Making useful systems calmer

Building products end to end while keeping the backend legible, resilient, and ready for the next change.

Currently splitting time between product work, infrastructure, and learning where useful separation ends and needless complexity starts.

03 / Stack

Tools are useful. Judgement is the stack.

These are the tools I reach for most often: enough to ship a product, diagnose a problem, and leave the system better than I found it.

Languages

PythonTypeScriptJavaScriptSQLBash

Frameworks

FastAPIDjangoExpressNestJSNext.jsReact

Infrastructure

DockerPostgreSQLSupabaseRedisDNS

Practices

REST APIsAuth flowsSecurityCI/CDMicroservices
01

Designing boundaries

Turning product requirements into APIs and data models that are easy to reason about.

02

Making releases repeatable

Containerised deployments, sane configuration, and fewer steps that depend on memory.

03

Connecting the whole product

Working closely with the frontend so the contract feels coherent from request to screen.