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 ELF executables.

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

Recent articles

Profiling linkers

In the wake of Why is my Rust build so slow?, developers from the mold and lld linkers reached out, wondering why using their linker didn't make a big difference.

Read more
Why is my Rust build so slow?

I've recently come back to an older project of mine (that powers this website), and as I did some maintenance work: upgrade to newer crates, upgrade to a newer rustc, I noticed that my build was taking too damn long!

Read more
My ideal Rust workflow

Writing Rust is pretty neat. But you know what's even neater? Continuously testing Rust, releasing Rust, and eventually, shipping Rust to production. And for that, we want more than plug-in for a code editor.

Read more

There's more articles over there

Latest series

Don't shell out!

In this series, I change a critical component of this website's asset pipeline from "just calling a bunch of external tools" to statically linking with everything I need to process assets. It involves autoconf, CMake, Meson, CI, pkg-config, and some code crimes.

Go to series overview
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

Ever wonder who's writing these articles, anyway?