Staging is stable. GitHub Actions to Docker Swarm over Tailscale, services talking over NATS, metrics in Prometheus, logs in Loki. First production deploy of Serwin is coming soon.
Serwin is coming. No domain yet. Just a cloud I’m building: S3-style storage, KVM VMs, a Lambda runtime, managed Postgres, AI stuff 😅😅,per-tenant VPCs, and now a billing system. Mostly Go. Domain comes after the product.
Billing storage by the GB-hour without scanning buckets: keep size, last_change, accum per bucket. On every write: accum += size*(now-last_change); size += delta. Hourly job emits the exact integral, resets it. Postgres SET reads the old row, so one UPDATE does it.
Building billing for my homemade AWS (S3/EC2/Lambda/RDS clones). I keep mixing up the role of prometheus,
Prometheus is not a billing system. It samples, drops scrapes, restarts. Invoices come from an append-only ledger fed by NATS JetStream. Prometheus just draws the graphs.
Why qemu-img convert instead of just cp? A VM disk is a qcow2 overlay with a backing file. cp copies only the thin overlay, which is useless without its base. convert walks the whole chain, merges every layer, and writes one standalone image. Add -c and it compresses too
How my cloud platform builds an AMI: stop the VM, qemu-img convert the disk into a standalone compressed qcow2, checksum it, upload it to object storage, delete the local copy. The VM restarts even if the copy fails.
Bug of the day: a goroutine read instance.HostID before it was set. Result: scp root@:/var/lib/... and “Could not resolve hostname”. Empty strings make for confusing errors. Pass the host in, and add a “no host IP” guard.
Spent the day debugging my cloud platform’s AMI flow. The image built to 100%, got its checksum, then vanished. Two different UUIDs: one used for the build, another for the upload. The cleanup handler then deleted the good file. Lesson: one source of truth for paths.
Spent today teaching my DIY AWS clone to create AMIs from live VMs. The 3-minute image build now runs in the background 😅and the API answers instantly. Next up: launching VMs from those images.
This week I visited Lennox in Nyamarambe to find out more about Reduzer Tech and Reduzer School. He gave me an exclusive tour of his soon to be opened and improved Reduzer Complex. Next week I will be taking you into his journey. Make sure you're subbed to HRWP.
Tech courses aren't a waste of time
I spent 3 years coding JavaScript, building projects, and recently finished The Odin Project
I just got hired to build portals and systems with .NET.
Courses won’t do the work for you, but learning + building + consistency can open doors🚀
Kenyan universities like JKUAT and KU should start developing a curriculum for the Petroleum Engineering courses at the degree and master's level.
Dangote East Africa Oil Refinery will need highly qualified engineers to run it.
Petrochemical and fertiliser industries would also be part of the expansion.
Gen Z should get ready to fill those positions in a few years.
#RutoAt4
Hii optimism mnatoanga wapi akhi? People should actually be very fearful at this point. "Our financial system is robust". Kenya is currently spending 80% of tax collections on debt servicing.
The last thing that was supposed to usher a golden age was SGR. And ever since that project and many others like it started all development markers have trended downwards. From GDP growth, real incomes, unemployment, poverty, education, healthcare and general welfare, public administration, public debt, etc.
Updated internal + public docs for our volume attach/detach flow. the filesystem disappearing bug wasn't data loss at all, virtio device names aren't stable across reattach cycles, so /dev/vdb can silently become /dev/vdc and your old mount just points at nothing.....
Updated internal + public docs for our volume attach/detach flow. the filesystem disappearing bug wasn't data loss at all, virtio device names aren't stable across reattach cycles, so /dev/vdb can silently become /dev/vdc and your old mount just points at nothing.....
Updated internal + public docs for our volume attach/detach flow. the filesystem disappearing bug wasn't data loss at all, virtio device names aren't stable across reattach cycles, so /dev/vdb can silently become /dev/vdc and your old mount just points at nothing.....
I think it’s just a security feature. You have to check system status, running apps, background system, developer options, etc before you can authorize a transaction. You even have to check for overlay apps, whether the phone is rooted, etc.
This is actually a solid security feature. Imagine a scammer calls, masquerading to be from Revolut and request you open your app. Revolut notifying you that the call is not from them prevents the scammer from completing their interests
I think its time to tell our story. We built a tech company in Nyamarambe, Kenya, in a place where nothing like it had existed before. We made personal sacrifices to keep it alive, convinced more than 30 people from different parts of Kenya to come here, and along the way found ourselves solving problems we never thought a tech company would have to solve
We’ve watched the area around us slowly begin to change too. There’s a much bigger story here than I can fit in a single tweet.
I’m looking for journalists, podcasters, documentary makers and other media people who would be interested in telling it. If that’s you, or you know someone who should hear this story, please reach out.