Hey! I'm Julia. Welcome to my blog. Here's every post I've ever written. If you want somewhere to start, try
(the ones with stars next to them, below). Enjoy!
. You can
subscribe to a
Jun 18 2017
What can developers learn from being on call?
Jun 17 2017
Awesome NLP tutorials by Allison Parrish
Jun 11 2017
Log-structured storage
Jun 7 2017
Iptables basics
Jun 4 2017
A few things I've learned about Kubernetes
Jun 3 2017
Async IO on Linux: select, poll, and epoll
May 14 2017
Handwritten books
May 14 2017
"Let's learn tcpdump" zine: now available for everyone
May 10 2017
A small website mystery
May 2 2017
Like zines about computers? You might love Bubblesort Zines
Apr 30 2017
Using the Strict-Transport-Security header
Apr 29 2017
New zine: let's learn tcpdump!
Apr 27 2017
No feigning surprise
Apr 23 2017
The fish shell is awesome
Apr 17 2017
Some good "Statistics for programmers" resources
Apr 16 2017
Making small culture changes
Apr 8 2017
netdev conference, day 3
Apr 7 2017
netdev conference, day 2
Apr 7 2017
How to filter packets super fast: XDP & eBPF!
Apr 6 2017
netdev conference, day 1
Apr 1 2017
Slow down your internet with tc
Mar 26 2017
Bash scripting quirks & safety tips
Mar 20 2017
Blogging principles I use
Mar 19 2017
ftrace: trace your kernel functions!
Mar 17 2017
Writing down my career
Mar 13 2017
So you want to be a wizard
Feb 17 2017
Swapping, memory limits, and cgroups
Feb 16 2017
Hiring & opportunity
Feb 12 2017
How do these "neural network style transfer" tools work?
Feb 8 2017
Weird unix thing: 'cd //'
Feb 7 2017
How big can a packet get?
Feb 2 2017
A magical machine learning art tool
Jan 31 2017
Dissecting an SSL certificate
Jan 29 2017
New zine: "Networking! ACK!"
Jan 24 2017
Choosing the "best software"
Jan 20 2017
A tiny zine about machine learning
Jan 17 2017
An idea for a programming book
Jan 13 2017
How do you make an awesome team?
Jan 4 2017
Rules of programming experiments
Dec 31 2016
How to ask good questions
Dec 23 2016
Systems We Love 2016
Dec 22 2016
A container networking overview
Dec 21 2016
2016: Year in review
Dec 21 2016
What's interesting about UDP?
Dec 3 2016
How much memory is my process using?
Nov 27 2016
More drawings about computers
Nov 21 2016
Things to learn about Linux
Nov 19 2016
"A Critique of the CAP Theorem"
Nov 16 2016
Ideas about how to use AWS
Nov 14 2016
Why cute drawings?
Nov 10 2016
A few drawings about Linux
Nov 3 2016
What happens when you run a rkt container?
Oct 31 2016
Service discovery at Stripe
Oct 26 2016
A few questions about open source
Oct 26 2016
Running containers without Docker
Oct 21 2016
A litmus test for job descriptions
Oct 21 2016
Consistency vs availability (wat?)
Oct 16 2016
What's devops?
Oct 15 2016
Operations for software developers for beginners
Oct 10 2016
What even is a container: namespaces and cgroups
Oct 9 2016
Switching to Hugo
Oct 4 2016
★
What happens when you start a process on Linux?
Oct 2 2016
A list of Linux container software
Oct 2 2016
"I just want to run a container!"
Sep 19 2016
★
Getting things done
Sep 17 2016
A swiss army knife of debugging tools: talk & transcript
Sep 15 2016
Some questions about Docker and rkt
Sep 12 2016
How I got a CS degree without learning what a system call is
Sep 11 2016
★
Learning systems programming with Rust
Sep 7 2016
New zine: Linux debugging tools you'll love
Aug 31 2016
Asking good questions is hard (but worth it)
Aug 29 2016
How (and why) I made a zine
Aug 24 2016
Why do UDP packets get dropped?
Aug 16 2016
Release it, then build it
Aug 16 2016
★
How do you decide what to work on?
Aug 10 2016
How does gdb work?
Jul 23 2016
A few sketches
Jul 23 2016
Benchmarking correctly is hard (and techniques for doing it better)
Jul 14 2016
How do HTTP requests get sent to the right place?
Jul 3 2016
★
Linux debugging tools I love
Jul 3 2016
PolyConf 2016
Jun 30 2016
★
Why do we use the Linux kernel's TCP stack?
Jun 15 2016
Using ltrace to debug a memory leak
Jun 13 2016
Should you be scared of Unix signals?
Jun 12 2016
★
How to spy on a Ruby program
Jun 7 2016
A useful new strace feature
Jun 6 2016
Ideas for making better conference talks & conferences
Jun 3 2016
Learning to like design documents
May 29 2016
Three ways to solve hard programming problems
May 22 2016
"advice" for aspiring tech bloggers
May 21 2016
Notes from my PyData Berlin keynote
May 19 2016
A few reasons to be skeptical of machine learning
May 13 2016
Investigating Erlang by reading its system calls
May 13 2016
homu + highfive: awesome bots that make open source projects easier
May 12 2016
A second try at using Rust
May 6 2016
A workshop on strace & tcpdump
May 6 2016
What are SSL ciphers & session keys?
May 1 2016
The Etsy site performance report is amazing
Apr 30 2016
How does knowledge get locked up in people's heads?
Apr 29 2016
CDNs aren't just for caching
Apr 24 2016
you can take the derivative of a regular expression?!
Apr 23 2016
Some links on Java garbage collection
Apr 22 2016
Java garbage collection can be really slow
Apr 10 2016
Looking inside machine learning black boxes
Apr 9 2016
Some of my favorite blogs
Mar 29 2016
I conquered thread pools! For today, at least.
Mar 27 2016
Thread pools! How do I use them?
Mar 23 2016
I/O matters.
Mar 20 2016
How do you do capacity planning?
Mar 16 2016
tcpdump is amazing
Mar 12 2016
How does perf work? (in which we read the Linux kernel source)
Mar 6 2016
Women-only spaces are a hack
Mar 4 2016
Surprises in Ruby HTTP libraries
Feb 27 2016
What is "the stack"?
Feb 24 2016
perf top: an awesome way to spy on CPU usage
Feb 20 2016
How to measure your CPU time: clock_gettime!
Feb 12 2016
Why I love log files
Feb 10 2016
Have high expectations for your computers
Feb 9 2016
★
TIL: clock skew exists
Feb 7 2016
How CPU load averages work (and using them to triage webserver performance!)
Jan 23 2016
Fast integer sets with Roaring Bitmaps (and, making friends with your modern CPU)
Jan 23 2016
Sendfile (a system call for web developers to know about!)
Jan 18 2016
Guessing Linux kernel registers
Jan 18 2016
Calling C from Rust
Jan 14 2016
A few notes on my CUSEC talk
Jan 10 2016
★
Why I ❤ Rust
Jan 6 2016
Talking about stock options = awesome
Jan 3 2016
Java isn't slow
Jan 2 2016
Winning the bias-variance tradeoff
Dec 31 2015
Surviving meetings while remote
Dec 30 2015
★
Things you should know about stock options before negotiating an offer
Dec 26 2015
2015: Year in review
Dec 24 2015
★
How to trick a neural network into thinking a panda is a vulture
Dec 7 2015
Women in Machine Learning 2015 (fun!!!)
Nov 27 2015
Why Ruby’s Timeout is dangerous (and Thread.raise is terrifying)
Nov 22 2015
★
How I got better at debugging
Nov 21 2015
★
Why you should understand (a little) about TCP
Nov 9 2015
Docker is amazing
Oct 31 2015
PAPERS ARE AMAZING: Profiling threaded programs with Coz
Sep 10 2015
★
A millisecond isn't fast (and how we made it 100x faster)
Sep 6 2015
Is machine learning safe to use?
Jul 25 2015
An argument for hiring junior developers
Jul 4 2015
Some easy statistics: Bootstrap confidence intervals
Apr 15 2015
AdaCamp Montreal 2015
Apr 14 2015
★
A zine about strace
Apr 12 2015
Learning at open source sprints (no preparation required)
Apr 6 2015
A few spy tools for your operating system (other than strace!)
Mar 30 2015
Seeing system calls with perf instead of strace
Mar 28 2015
Senior engineering & fantasy heroes
Mar 15 2015
Nancy Drew and the Case of the Slow Program
Mar 6 2015
1:1 topic ideas
Mar 6 2015
You can choose who submits talks to your conference
Mar 5 2015
How the locate command works (and let's write a faster version in one minute!)
Feb 22 2015
★
How gzip uses Huffman coding
Feb 17 2015
★
How I learned to program in 10 years
Feb 6 2015
A/A testing
Jan 24 2015
Why a C++ programmer might say "I could never write Python"
Jan 12 2015
Data Day Texas 2015
Dec 29 2014
On reading the source code, not the docs
Dec 28 2014
Programming doesn't belong to men (it belongs to me)
Dec 21 2014
Fear makes you a worse programmer
Dec 19 2014
Reproducing awesomeness
Dec 14 2014
★
Diving into concurrency: trying out mutexes and atomics
Dec 10 2014
Spying on Hadoop with strace
Nov 27 2014
LD_PRELOAD is super fun. And easy!
Nov 27 2014
PyData NYC (I gave a machine learning talk! yay!)
Nov 18 2014
Harm reduction for developers
Nov 17 2014
Fun with machine learning: logistic regression!
Nov 16 2014
Fun with machine learning: does your model actually work?
Nov 11 2014
What women in technology really think (150 of them, at least)
Oct 22 2014
Working remote, 8 months in (seeing humans is important!)
Oct 8 2014
How to set up a blog in 5 minutes
Oct 2 2014
How does SQLite work? Part 2: btrees! (or: disk seeks are slow don't do them!)
Sep 27 2014
★
How does SQLite work? Part 1: pages!
Sep 20 2014
Strange Loop 2014
Sep 18 2014
You can be a kernel hacker!
Sep 6 2014
How is a binary executable organized? Let's explore it!
Aug 12 2014
★
What happens if you write a TCP stack in Python?
Aug 5 2014
Pair programming is amazing! Except... when it's not.
Jul 25 2014
Open sourced talks!
Jul 17 2014
Ruby Rogues podcast: systems programming tricks!
Jul 11 2014
Fun with stats: How big of a sample size do I need?
Jun 29 2014
How I did Hacker School: ignoring things I understand and doing the impossible
Jun 22 2014
!!Con talks are up
Jun 19 2014
Machine learning isn't Kaggle competitions
Jun 13 2014
Asking questions is a superpower
Jun 6 2014
Working remote, 3 months in
Jun 6 2014
Should my conference do anonymous review?
May 28 2014
Anonymous talk review is amazing.
May 15 2014
Diving into HDFS
May 13 2014
I can spy on my CPU cycles with perf!
May 12 2014
★
Computers are *fast*!
Apr 27 2014
Stopping to think
Apr 26 2014
★
Don't feel guilty about not contributing to open source
Apr 20 2014
★
Debug your programs like they're closed source!
Apr 13 2014
♥ PyCon
Apr 8 2014
Becoming a better developer (it's not just writing more programs)
Apr 4 2014
"Ask if you have questions" isn't enough
Mar 29 2014
Reports from remote-land: remote pairing works great!
Mar 23 2014
Recovering files using /proc (and spying, too!)
Mar 21 2014
My Rust OS will never be finished (and it's a success!)
Mar 12 2014
★
Writing an OS in Rust in tiny steps (Steps 1-5)
Mar 10 2014
Debugging shared library problems with strace
Mar 10 2014
Hacker School's Secret Strategy for Being Super Productive (or: Help.)
Mar 1 2014
Pair programming
Feb 27 2014
More practical uses for strace!
Feb 26 2014
Using strace to avoid reading Ruby code
Feb 23 2014
A resume workshop idea
Feb 20 2014
A bookmarklet to flee from Mailman archives
Feb 17 2014
Spying on ssh with strace
Feb 15 2014
"How was Hacker School?"
Feb 13 2014
A few blogs I really like
Feb 10 2014
Three steps to learning GDB
Feb 3 2014
Sounding confident in interviews
Jan 22 2014
CUSEC = fun
Jan 16 2014
What my technical interviews have looked like
Jan 12 2014
You should give talks. They will be awesome. Here's why!
Jan 4 2014
★
4 paths to being a kernel hacker
Jan 3 2014
Some things my kernel can't do
Dec 31 2013
Sketches for a graph layout engine
Dec 30 2013
★
Questions I'm asking in interviews
Dec 28 2013
Coding strategies
Dec 27 2013
★
When is "guys" gender neutral? I did a survey!
Dec 22 2013
★
A pandas cookbook
Dec 22 2013
Understanding how killall works using strace
Dec 20 2013
Day 46: Never Graduate
Dec 19 2013
Day 45: I now have Rust code for executing executables!
Dec 17 2013
Day 44: qemu + gdb = so great
Dec 16 2013
★
Day 43: SOMETHING IS ERASING MY PROGRAM WHILE IT’S RUNNING (oh wait oops)
Dec 13 2013
Day 42: How to run a simple ELF executable, from scratch (I don't know)
Dec 12 2013
Day 41: Linkers are upsetting
Dec 10 2013
Day 39: Writing malloc wrong, for fun
Dec 10 2013
Day 40: 12 things I learned today about linkers.
Dec 10 2013
Day 40: Linkers are amazing.
Dec 6 2013
Day 38: After 6 days, I have problems that I can't understand at all
Dec 4 2013
★
Day 37: After 5 days, my OS doesn't crash when I press a key
Dec 3 2013
★
Day 36: On programming without malloc
Dec 2 2013
Day 35: Types in Rust, for beginners
Dec 1 2013
How to call Rust from assembly, and vice versa
Nov 30 2013
Videos from PyData NYC are up!
Nov 29 2013
★
What happens when you run 'Hello, world'
Nov 29 2013
Writing a kernel using rustboot & rust-core
Nov 27 2013
Day 34b: Writing curl using my TCP stack
Nov 26 2013
Day 34: The tiniest operating system
Nov 25 2013
Day 33: How to make music with ClojureScript
Nov 21 2013
Day 32: Magical Orchestra!!!
Nov 20 2013
Day 31: Binary trees with core.logic!
Nov 19 2013
Day 30: Making music in Clojure with Overtone. Clojure bugs with laziness! Fun!
Nov 18 2013
Day 29: Trying out Emacs!
Nov 15 2013
Day 28: Made a git workflow visualization webapp!
Nov 13 2013
Day 27: Automatically testing changes in state! Visualizing my Git workflow! Floats!
Nov 12 2013
Day 25: ACK all the things
Nov 12 2013
Day 26: Trying to describe the TCP state machine in a readable way. Failing.
Nov 12 2013
Women in Technology workshop at PyData NYC
Nov 7 2013
Day 24: Unit testing this TCP library
Nov 6 2013
Day 22: Got some TCP packets back!
Nov 6 2013
Day 23: Started writing a TCP stack in Python
Nov 6 2013
NYC Python talk
Nov 5 2013
Day 21: Trying to TCP
Oct 31 2013
Day 19: A few reasons why networking is hard
Oct 31 2013
★
Day 20: Traceroute in 15 lines of code using Scapy
Oct 29 2013
Day 18: ARP cache poisoning (or: In ur connection, sniffing ur packets)
Oct 28 2013
Day 17: How to write a buffer overflow exploit
Oct 24 2013
★
Day 16: gzip + poetry = awesome
Oct 24 2013
Do Rails programmers use node.js? Visualizing correlations in command usage
Oct 23 2013
Day 15: How a .gz file is structured, redux
Oct 22 2013
Day 14: When it's hard to write tests, that's when I should be testing
Oct 21 2013
Day 13: Off by one errors
Oct 17 2013
Day 12: Why Julia likes Julia
Oct 16 2013
Day 10: Goals. Goals? Maybe I need to be *reading* more code?
Oct 16 2013
Day 11: How does gzip work?
Oct 14 2013
Day 9: Bytecode is made of bytes! CPython isn't scary!
Oct 12 2013
Day 8: Julia writes Julia! And remembers that open source is hard.
Oct 9 2013
Day 7: An echo server in Clojure
Oct 8 2013
Day 6: I wrote a rootkit!
Oct 7 2013
Day 5: I wrote a kernel module!!!
Oct 6 2013
Where to find bike sharing systems' data feeds
Oct 4 2013
Day 4: Processes vs threads, and kernel modules!
Oct 2 2013
Day 3: What does the Linux kernel even do?
Oct 1 2013
Day 2: netcat fun!
Sep 30 2013
Day 1: What does a shell even do?
Sep 30 2013
Hacker School Day 1: Messing around with the stack in C
Sep 26 2013
Hacker School Day -4: unit testing in C. checkmk!
Sep 25 2013
Julia Serano's 'Excluded'
Sep 12 2013
PyData Boston 2013
Apr 7 2013
Open Data Exchange 2013
Mar 4 2013
Transit maps: 1941 vs 2011
Feb 27 2013
Graphing bike path data with IPython Notebook and pandas
Feb 24 2013
Trying out Octopress
Jan 27 2013
Montreal All-Girl Hack Night #2: now with cookies
Dec 16 2012
Montreal All-Girl Hack Night #1: AMAZING