Notes from the work
Software development, APIs, websites, AI agents, and the client requests behind them.
Write the request so engineering can price it
A service request is a build brief, not a mood. The useful ones name the user, the job, the data, …
LesterTechLabs Engineering · 3 min read
FeaturedBuilding RAG systems for many languages
How we built retrieval-augmented generation pipelines that understand Swahili, Amharic, and Yoruba — without sacrificing accuracy, citations, or data privacy.
David Mwangi · 12 min read
What the Data Protection Act changes in the database
’s Data Protection Act is not a banner in the footer. It changes which columns you collect, who can open …
LesterTechLabs Engineering · 3 min read
Django or WordPress for a portal
WordPress is a strong way to publish pages an editor will change. Django is a strong way to hold records, …
LesterTechLabs Engineering · 3 min read
Custom software or the tool you already pay for
Most teams already pay for a tool that almost fits. Building is the right bill when the almost is the …
LesterTechLabs Engineering · 3 min read
A sale that survives a dropped network
The sale happens at the counter, not on the server. If the network drops after the customer has paid, the …
LesterTechLabs Engineering · 3 min read
One event, three channels
A payment, a booking, and a delivery each need one message. Email, SMS, and WhatsApp are channels. They are not …
LesterTechLabs Engineering · 3 min read
Member balances a clerk can explain
A member will ask why the balance changed. The clerk needs the lines, in order, with a reason on each …
LesterTechLabs Engineering · 3 min read
School fees paid in parts
Parents rarely pay a term in one movement. A fees book that only understands full payment will show almost every …
LesterTechLabs Engineering · 3 min read
Reconcile an M-Pesa statement to the invoices
The phone can say paid while the invoice still says pending, and the statement can contain a payment nobody in …
LesterTechLabs Engineering · 3 min read
Inventory when two branches sell the last item
Two branches can sell the last unit in the same minute. The stock figure has to move with the sale, …
LesterTechLabs Engineering · 3 min read
Book a time without a double booking
A booking system fails the morning two people are given the same chair. The record has to make that impossible, …
LesterTechLabs Engineering · 4 min read
RAG that cites the page
A retrieval system is useful when the answer shows the page it came from. Without that, you have a fluent …
LesterTechLabs Engineering · 3 min read
One checkout for M-Pesa and cards
Customers will pay by mobile money, by card, or not at all. The product should show one amount and let …
LesterTechLabs Engineering · 3 min read
A Django release you can explain
The first production release is finished when someone who was not in the room can say what is deployed, how …
LesterTechLabs Engineering · 3 min read
The invoice should match the scope
Clients argue about invoices when the invoice describes a feeling and the scope described a system. The line items should …
LesterTechLabs Engineering · 3 min read
Where an AI agent earns its place
An agent is a worker with tools, not a chat box with a personality. It earns a place when the …
LesterTechLabs Engineering · 3 min read
A website that finishes on mobile data
Most first visits happen on a phone, between other things. If the headline and the next step are late, the …
LesterTechLabs Engineering · 3 min read
Build a stock quote API
A quote API is a small contract: one symbol in, one documented price out, with the time the price was …
LesterTechLabs Engineering · 4 min read
Build a cache that expires on purpose
A cache is a copy with a deadline. It earns its place when the copy is cheaper than the query, …
LesterTechLabs Engineering · 4 min read