Hello, fellow developer 👋

Notes, tutorials and books for people who build software.

Most of what I write here is a knowledge dump for future me: what it is, how to do it and how to fix it. Hopefully you find it useful too.

Books

All books

One Server, Three Languages

Learn C, Go and Rust from scratch by building the same Redis-compatible server three times, and understand the power and the weakness of each

  • C17 · Go 1.27 · Rust 1.99
  • One server, built three times
  • 43 exercises with solutions
  • 101-row scorecard
  • Every listing compiled and tested

You learn by building, you used C at university and Go a few years ago and forgot both, and you have heard that Rust is the systems language now. This book teaches all three from scratch by building one project three times: kv, a key-value server that speaks the Redis protocol, so that the real redis-cli and redis-benchmark can talk to it from chapter 4 on. It starts in 1969 with why C exists, then why Google made Go and why Mozilla made Rust, and builds the server one feature at a time, always in C first, then Go, then Rust: an echo server, the protocol parser, GET and SET, your own hash table, modules and packages, abstraction and generics, fifty clients at once on poll, kqueue and epoll, keys that expire, a clean shutdown on a signal, a log that survives a crash with its own fsync thread. Then it does what a working programmer must: tests, fuzzers and sanitizers, benchmarks and profilers, cross-compiling and static binaries, and calling C from the other two with the structs and unions that cross the border. Every chapter opens on a real scene at the terminal, teaches each language with an exercise whose full solution is folded underneath, recounts an incident you can reproduce, and closes with a scorecard that names a real weakness of each. The last chapter gathers the 101 rows into one table and says when to choose C, Go, Rust, or none of them. Every listing is pulled from code that is compiled and run against the same protocol tests on every change, with ThreadSanitizer on Linux. Read it in about eight and a half hours, and keep the appendices: a rosetta cheat card, a glossary, and C, Go and Rust each in one chapter, every construct of the language in a sentence or two with a link to its reference. Press ⌘K to search, and 1, 2 or 3 to put your language first.

Read online

Java for C# Developers

A working handbook for .NET engineers moving to Java and Spring Boot

  • Java 25 LTS
  • .NET 10 · C# 14
  • Spring Boot 3 & 4

Where your C# instincts carry over to Java, and where they are confidently wrong. Every chapter gives its answer first: a table of the differences between C# and Java, with each trap shown as code whose result you predict before you look. The book is written in plain sentences, so it is easy to read if English is not your first language. Read the essentials in about 3 hours 45 minutes, or everything in about 10 hours. To refresh later, there are tours of Java, Spring Boot and modern C# as annotated code, and a review deck that brings back the questions you missed. Press ⌘K to look up any C# name and land on its Java answer.

Read online

Recent posts

All posts

Latest videos

All videos

Tutorials

All tutorials