Hi! I'm Amos. I write about how computers work - or at least, how they sometimes work. I write long pieces in a casual style, where we take our time to explore a problem. I tend to cover Rust a lot.

In my view, there's nothing that can't be explained if you're creative about it. And I enjoy doing that very much! I've made long series about reading files, the ICMP protocol, and I'm currently spending way too long talking about ELF executables.

Support me on Patreon, in exchange for my eternal gratitude, and/or early access.

Latest series

Making our own executable packer

In this series, we'll attempt to understand how Linux executables are organized, how they are executed, and how to make a program that takes an executable fresh off the linker and compresses it - just because we can.

Go to series overview
Advent of Code 2020

Let's use the Advent of Code 2020, a series of programming challenges of increasing difficulty, to learn more about the Rust programming language.

Go to series overview

More series are listed over there

Recent articles

Understanding Rust futures by going way too deep

So! Rust futures! Easy peasy lemon squeezy. Until it's not. So let's do the easy thing, and then instead of waiting for the hard thing to sneak up on us, we'll go for it intentionally.

Cool bear's hot tip
Read more
What's in the box?

Here's a sentence I find myself saying several times a week:

...or we could just box it.

There's two remarkable things about this sentence.

Read more
Pin and suffering

I'd like to think that my understanding of "async Rust" has increased over the past year or so. I'm 100% onboard with the basic principle: I would like to handle thousands of concurrent tasks using a handful of threads. That sounds great!

Read more

There's more articles over there

Ever wonder who's writing these articles, anyway?