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

Leading a Java Team: The Yard

A short story about a lead from .NET taking over a Java team: fifteen arguments the team has, the mechanism and the history behind each one, and the decision the lead makes

  • Maven · Spring Boot 3.5 → 4
  • DocumentDB · JUnit · Mockito · Kubernetes
  • 15 decision records
  • 15 diagrams
  • Every command runs on a laptop

You lead, or are about to lead, a Java team, and your own hands learned the trade somewhere else, .NET most likely. This book is one story in fifteen short chapters: Sam arrives from twelve years of .NET to lead the Payouts team at Sorrel, a mid-sized insurer with forty Java services on Kubernetes, and every chapter opens on two people who want different things. Which Java are we actually on, and why does one service say 11. Why the clean build downloads the internet. Whether Boot 4 is one line or a quarter. Whether Gradle would fix the nine-minute build, measured before anyone decides. The Lombok ban Sam issues on day nine and withdraws in public. Eighty-four percent coverage with sixty-one tests that cannot fail. The green test suite that ran against MongoDB while production ran DocumentDB. Two pods paying the same claim. The jar in the security audit that nobody had heard of. The library that changed under the build on a Saturday. The ledger that slowed down and took Payouts with it. The WebFlux proposal answered with one property. The pod that died at 02:14 with exit code 137. The deploy that dropped a dozen requests a week. And the framework the lead did not trust until it was asked what it had done. Each chapter explains the mechanism, tells the history behind the argument as a scene with names and dates, from Maven out of Jakarta Turbine in 2001 to Project Loom in 2017, gives the commands you would type against a companion Maven project, names the traps, and ends with Sam's decision in Sam's words to the team, including the two where Sam was wrong and what it cost. It points at Java for C# Developers for the syntax instead of repeating it. Read it in two evenings, and keep the epilogue: fifteen architecture decision records, every command by task, a timeline and a glossary.

Read online

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