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

More series are listed over there

Recent articles

Surviving Rust async interfaces

I used to be afraid of async Rust. It's easy to get into trouble!

But thanks to the work done by the whole community, async Rust is getting easier to use every week. One project I think is doing particularly great work in this area is async-std.

Read more
Thoughts on going down the network stack

So!

I have no shortage of ongoing writing projects - I still need to edit and publish the final parts of making our own executable packer, and I've recently announced I was working on a Rust book/series. Those are still both on the table.

Read more
A dynamic linker murder mystery

I write a ton of articles about rust. And in those articles, the main focus is about writing Rust code that compiles. Once it compiles, well, we're basically in the clear! Especially if it compiles to a single executable, that's made up entirely of Rust code.

Read more

There's more articles over there

Ever wonder who's writing these articles, anyway?