This is where I put things I’ve written up — usually because I needed them myself, or thought they might be useful again later, to myself or anyone else.
Most of it will be technical. Infra, systems, containers, that sort of thing. Sometimes it’s just figuring out how something works underneath the layers, or checking if the docs actually match reality.
Some posts are rough. Some are more complete. A few might even be wrong, but I’ll update them when I find out.
No fluff. No SEO. Just posts.
A toy project that shows the flow, not the money. This is for learning about event-driven design and latency. Not trading advice!
What this is YoctoTrader is a compact, readable pipeline:
1 2 3 Simulated Feed ──> Disruptor Ring ──> Strategy ──> Risk Gate ──> Order Publisher │ │ └────────────── Latency Recorder <────────┘ Feed: Gaussian random-walk prices (no I/O). Disruptor: single-producer ring buffer; reuses event objects to avoid GC churn. Strategy: fast/slow moving-average crossover. Risk Gate: simple position cap and order-rate throttle. Order Publisher: prints orders (placeholder for an OMS/gateway). Latency: end-to-end nanoseconds, summarized with HdrHistogram. The code is intentionally minimal so you can profile, tweak, and see cause↔effect quickly.
...
Recap In Day 1, we built the simplest possible TCP server in C:
a blocking echo server that handled one client at a time.
That worked fine for basic tests, but it had a major limitation —
a second client had to wait until the first one disconnected.
Today, we fix that by introducing fork().
The Idea: fork() per Client Unix gives us a neat primitive: fork().
It clones the current process into a child,
which can run independently of the parent.
...
Start from a single-thread blocking TCP echo server. Why it matters, how it works, pitfalls (EINTR, SO_REUSEADDR), and what’s next: forked/threaded → select → epoll.
You don’t need to spend $300k or move to Palo Alto or Cambridge to get a world-class CS education.
Stanford and MIT have generously shared complete course recordings on YouTube — enough to build yourself a “blended” CS degree with both clarity (Stanford) and rigor (MIT).
A few other classic CS courses have been added from other top universities.
This article gives you a syllabus + playlist roadmap that combines the best of both schools. You can adapt to your own interests.
...
BVOS — Barely Visible OS A minimal 32-bit x86 operating system written in Assembly and C, designed as a learning project to explore bootloaders, protected mode, and kernel basics.
It does almost nothing… and that’s the point.
Features Boots from BIOS via a custom MBR boot sector Loads a tiny kernel from disk into memory Switches to Protected Mode and runs C code Writes “Hello, world!” directly to VGA text memory Fits in just a few sectors Build & Run Prerequisites
...
mtsh (pronounced like em tee shell) is a tiny, educational Unix-like shell written in C.
It’s designed to be simple enough to understand line-by-line, while still being a functional interactive shell you can extend over time.
It starts as a bare-bones REPL that can run external commands, and is designed to grow feature-by-feature as you learn. Every line of code is intended to be readable, hackable, and easily extended — making mtsh a hands-on guide to understanding how real shells work under the hood.
...
TL;DR: Oracle Cloud’s always-free VMs make a great WireGuard VPN host — if you know the gotchas. Here’s how I set mine up in Sydney with working internet access, correct firewall rules, and a tuned MTU so it doesn’t crawl.
Note that this is more of a learning exercise, and a setup to play around with, than a serious VPN for everyday use. The problem being the lowly-spec’d free Oracle cloud server that is used. If you are lucky and manage to get a free Ampere VM from Oracle, that should be somewhat faster.
...
A practical walkthrough of building a lightweight peer-to-peer mesh VPN using WireGuard, with a focus on clarity, routing, MTU, and the kind of debugging you only get from raw packets and real packets.
Back in the 1990s and early 2000s, the operating system was the computer. If you wanted to run a program, manage users, allocate memory, connect to a network, or read a file, you did it through the OS. Microsoft understood this. They built an empire by controlling the layer that everything else relied on.
But today, most developers have no idea what OS their app is running on. And they don’t need to.
...
Here’s an ELI5 (Explain Like I’m 5) version of what the scheduler() function in xv6 is doing:
What is a scheduler? Imagine a classroom with a bunch of students (processes) but only one teacher (CPU). The teacher can only help one student at a time, so she needs a way to pick which student to help next. That’s what the scheduler does — it chooses which process gets to use the CPU next.
...