In March I was writing IsNegative and PrintNbr in the Zone01 Kisumu Piscine. This week a Lightning node I run is paying merchants in Kisumu straight to their M-Pesa. This post is the path between those two points, written down so I can see it clearly and so anyone starting out can see that the small exercises lead somewhere.
March to April: the boring part that mattered most
The Piscine was 21 days of small Go exercises: runes, slices, pointers, linked lists, binary trees. Hundreds of commits, most of them tiny. I did not see the point of BTreeDeleteNode at the time. I see it now every time I read Bitcoin Core code that walks a structure and has to leave it valid.
Then came the group projects: go-reloaded, ascii-art, push-swap, groupie-tracker, lem-in, forum. They taught me the things a tutorial skips. How to split work across a team, how to review a pull request without breaking someone else's branch, how to write the test before arguing about the code.
April to August: building things nobody asked for
In parallel I kept starting small products of my own:
- A coding platform where a learner writes Go on one side and reads the instructions on the other.
- BursaryHub, a full-stack bursary application.
- YeboBank, a savings and chama product for Kenyan groups.
- Convert, my first attempt at a Bitcoin to M-Pesa screen.
Most of them were not finished. All of them taught me something I used later: Docker, PostgreSQL, Next.js, payment APIs, and above all that a product is the part the user touches, not the code I am proud of.
September: one problem worth solving
By September the problem was clear. In Kisumu many small shop owners have M-Pesa but no smartphone, and some cannot read. Bitcoin payments are cheap and fast, but only if the merchant can actually receive them in the money they already use.
So I built Yebente, a Bitcoin and Lightning wallet with M-Pesa Daraja integration, and started studying Bitcoin Core properly: PSBTs, HTLCs, mempool policy, reading real pull requests in the Bitcoin Core repository.
October: the node
In mid October I connected my own LND node and moved altradits.com onto it. Everything since then runs on that node:
- kTown, a Bitcoin till. The merchant gets a QR code. A customer pays from any Lightning wallet, and the merchant receives the shilling amount on their M-Pesa phone. The merchant does not need a smartphone or a wallet.
- A hosted wallet with very small fees for Kisumu merchants.
- Learning tools: a Bitcoin Core lab, Go challenges and small games that teach how blocks and the mempool work.
I also joined the work around BitDevs Kisumu with Btrust, signed the Education Network Charter with My First Bitcoin, and submitted Altradits to the Meta Global AI Developer Hackathon on 4 November.
What I would tell someone in their first Piscine week
- The small exercises are the foundation. Linked lists and runes come back when you read real systems code.
- Ship something a real person can touch, even if it is ugly. Feedback from one shop owner is worth more than a week of polish.
- Pick one hard domain and stay in it. For me that is Bitcoin. Going deep in one place made everything else easier to learn.
- Write it down. Commits, standups, posts like this one. Your record of the work is how others, and you, can see the progress.
What is next
Next is Go without shortcuts. I am working through Bitcoin and Lightning code by hand, without AI writing it for me, so that by 2027 I can contribute to Bitcoin open source and help the BitDevs Kisumu students do the same.
If you are building with Bitcoin in East Africa, or you run a small shop in Kisumu and want to try kTown, find me at altradits.com.
