Hello! I'm Julia. I blog at jvns.ca. Here are some drawings about programming I've made. There's an RSS feed

I've written a couple of programming zines which you can find at jvns.ca/zines.

Amazing interfaces to instrument
Amazing interfaces to instrument
Blogging principles
Blogging principles
cross-origin resource sharing
cross-origin resource sharing
Copy on write
Copy on write
The page table
The page table
User space vs kernel space
User space vs kernel space
Assembly
Assembly
Mutexes
Mutexes
CPU scheduling
CPU scheduling
Networking layers
Networking layers
Networking concepts
Networking concepts
Anatomy of a packet
Anatomy of a packet
What's the stack?
What's the stack?
What's a MAC address?
What's a MAC address?
Floating point numbers
Floating point numbers
TCP basics!
TCP basics!
Threads!
Threads!
Man pages are amazing
Man pages are amazing
Pipes
Pipes
Unix permissions
Unix permissions
Memory allocation
Memory allocation
The CAP theorem
The CAP theorem
IPv6
IPv6
Network address translation
Network address translation
What's in a process?
What's in a process?
How does DNS work?
How does DNS work?
Why are big directories slow?
Why are big directories slow?
What's an inode?
What's an inode?
What's slow on a computer?
What's slow on a computer?
How I got better at debugging
How I got better at debugging
The senior engineer
The senior engineer
Ways I want my team to be
Ways I want my team to be
Scenes from distributed systems
Scenes from distributed systems
What does your operating system even do?
What does your operating system even do?
The filesystem cache
The filesystem cache
How to talk to your operating system
How to talk to your operating system
/proc
/proc
Signals
Signals
File descriptors
File descriptors
How to be a wizard programmer
How to be a wizard programmer