Engineering disciplines
What I bring to every system.
The practices that cut across every stage, each with a project that shows it working.
Performance
10,000photos per event, load-tested
I measure first, then fix the slowest thing. Heavy work goes to background queues so pages stay quick.
Load testsQuery tuningCachingBackground jobs
Security
2FAaudit logs, role-based access
Least privilege by default. Every login, change and payment leaves a trail you can check.
RBACSecure headersRate limitsEncryption at rest
Scalability
Multi-tenantone codebase, many businesses
Built so the tenth client costs almost nothing to add. The API and workers scale separately.
Tenant isolationPer-client modulesStateless APIsWorker pools
Reliability
Retrieswith exponential backoff
Networks fail and payment callbacks arrive twice. The system expects both and recovers without anyone stepping in.
Idempotent callbacksStuck-job recoveryHealth checksGraceful shutdown
Testing & quality
227automated tests on ErrandGo
Tests guard the rules that matter, and catch slow database patterns before users feel them.
Feature testsUnit testsQuery-count checksCode review
Payments & integrations
M-PesaSTK, C2B, payouts, reconciliation
I connect software to the real world: mobile money, SMS, WhatsApp, prepaid meters, biometric clocks and receipt printers.
DarajaStronpowerAfrica's TalkingZKTecoESC/POS
AI engineering
400+receipts read by AI
AI where it saves real work: reading receipts and CVs, drafting reports, answering questions over company data with a human approving any change.
GeminiOpenAIClaudeMCP agentsSwappable providers
Observability
Logsstructured and searchable
When something goes wrong I want to know before the client calls. Structured logs, slow-query logs and admin health dashboards.
Structured loggingSlow-query logsHealth endpointsAdmin monitoring