TricomHub
Multi-tenant hotel booking SaaS / PWA for South Sudan. 40+ table PostgreSQL schema, 4-role RBAC, WhatsApp + M-Pesa + Resend integrations, 18-spec Playwright suite covering CRUD, auth, stress, and security (SQLi/XSS/IDOR/JWT).
I cultivate production SaaS in Nairobi. Currently tending to TricomHub. ~4 years of shipping with TypeScript, Python, and AI-augmented tooling.
Nairobi, Kenya
Multi-tenant hotel booking SaaS / PWA for South Sudan. 40+ table PostgreSQL schema, 4-role RBAC, WhatsApp + M-Pesa + Resend integrations, 18-spec Playwright suite covering CRUD, auth, stress, and security (SQLi/XSS/IDOR/JWT).
Custom relational database engine built from scratch — hand-written SQL lexer, recursive-descent AST parser, query executor with validation, and an in-memory B-Tree with node splits. Submitted to the Pesapal Junior Dev Challenge 2026 as a job application.
Real-time trading bot platform on Deriv markets. Drag-and-drop visual bot builder (Blockly), live WebSocket charting, AI signal engine (RSI + Moving Averages + LLM analysis), risk management with profit/stop-loss targets.
Church youth ministry SaaS for Android, iOS, and Web PWA. 24+ screens covering Bible reader (with TTS), real-time chat, events with QR check-in, gamification, POS with barcode scanner, and multi-org architecture. Active build — multiple features shipped, some still in progress.
From concept to deployed product — I design, develop, and ship web applications that users love. My focus is clean architecture, excellent UX, and performance that scales.
Framer Motion + react-rnd both want to write to the same `transform` property. The result is a window-drag jitter that takes a session to debug. Here is the bug, the diagnosis, and the structural fix.
Read in garden →Most developer portfolios are a hero, three project cards, and a contact link. I wanted to ask: what if the portfolio itself was a small product? Here is why I built a fake operating system on top of mine, and the three engineering decisions worth defending.
Read in garden →Hospitality platforms in East Africa underserve small operators. This is the long-form story behind a multi-tenant SaaS I built solo — schema decisions, M-Pesa surprises, and what shipping a security-tested PWA actually takes.
Read in garden →Whether it's a project, a collaboration, or just a conversation — the garden is open.