I’m a software developer in Kenya building web applications, APIs, and open-source tools with Rust, TypeScript, and Python. My work brings together clear interfaces, dependable backend systems, and contributions to the Bitcoin and Lightning ecosystem.
I build software from interface to infrastructure: responsive web applications, reliable APIs, and open-source tools for Bitcoin and Lightning. Each project is shaped around the people who use it and the systems it needs to work with.
Bitcoin & Lightning Development
I build open-source tools and services for the Bitcoin and Lightning Network ecosystem
Software Development
I work on both the front-end and back-end of software applications.
API Development
I design and build high-quality REST and Lightning APIs customized to meet your requirements.
UI/UX Design
I deliver UI/UX design services carefully crafted to align with your product goals and your users needs.
An open-source Bitcoin transaction privacy analyzer that scores transactions before they are signed and broadcast, while privacy leaks can still be fixed. Paste a PSBT, raw transaction, or txid and get a 0-100 privacy score with actionable findings from chain-analysis heuristics. Published as a TypeScript npm package with 1,200+ cumulative installs.
A hybrid payment platform enabling users in Kenya and globally to create customizable fundraising links for events, activism, and personal milestones. Contributors can pay using Bitcoin (Lightning & on-chain) or M-Pesa (KES), while recipients automatically receive Bitcoin in their wallets.
Website for the Association of Grassroot Journalists Kenya, a nonprofit promoting accurate community reporting and inspiring the next generation of journalists across Kenya.
A conversion-focused landing page (React + Vite) for a Nairobi housekeeping service, instrumented with Google Ads, Meta Pixel, and Google Analytics to run, track, and optimize paid campaigns.
A React + Vite app using the Keto API to generate nutrition analysis for various foods. Search a food type and view its nutritional contents and recipe.
A pioneering digital ecosystem uniting waste collection and management stakeholders across Nairobi County (government agencies, waste management firms, environmental advocates, businesses, and investors) on a single collaborative platform.
Made the homepage "Featured In" logos clickable with smooth hover animations, making partner recognition interactive and aligned with the Figma design.
Made the MDX renderer load only page-specific components: a build-time regex scan filters the 25+ component map down to what each page actually uses, at zero runtime cost.
Removed the crc_all dependency from a Bitcoin mining firmware project, replacing it with inline CRC-5-USB and CRC-16-CCITT-FALSE implementations to cut down transitive dependencies.
Added a complete local development setup guide for the Tando BTCPay plugin (Docker regtest, build steps, config generation, and a test Lightning payment walkthrough
Implemented phone number verification at merchant signup via Safaricom's Daraja API, blocking store creation for unowned mobile numbers before payouts can get stuck.
Added minimize, maximize, and drag-resize controls to scripting challenge error and output panels, preventing them from blocking the code editor after script errors.
Replaced the bitvec dependency with native bitwise operations in the BM13xx mining driver, reducing dependencies and adding tests covering all 256 response byte values.
Made the homepage "Featured In" logos clickable with smooth hover animations, making partner recognition interactive and aligned with the Figma design.
Made the MDX renderer load only page-specific components: a build-time regex scan filters the 25+ component map down to what each page actually uses, at zero runtime cost.
Removed the crc_all dependency from a Bitcoin mining firmware project, replacing it with inline CRC-5-USB and CRC-16-CCITT-FALSE implementations to cut down transitive dependencies.
Added a complete local development setup guide for the Tando BTCPay plugin (Docker regtest, build steps, config generation, and a test Lightning payment walkthrough
Implemented phone number verification at merchant signup via Safaricom's Daraja API, blocking store creation for unowned mobile numbers before payouts can get stuck.
Added minimize, maximize, and drag-resize controls to scripting challenge error and output panels, preventing them from blocking the code editor after script errors.
Replaced the bitvec dependency with native bitwise operations in the BM13xx mining driver, reducing dependencies and adding tests covering all 256 response byte values.