PyCon 2014 had one of the best conference giveaways ever. Julia Evans, a software engineer at Stripe, gave a talk on Strace and created a zine to give to attendees. She has since written seventeen zines published on topics ranging from Linux to command lines and machine learning. Her latest, “Networking! ACK!” joins “Oh shit, git!” and “Help! I have a manager!” among others. The zines are typically 20 pages, and full of informative and fun comics that Evans hopes will teach you something useful.
Unlike Sailor Mercury’s monthly BubbleSort Zines which are intended for high school students, Evan’s zines are aimed at working programmers. “The idea is that you’re busy, you want to know how to use grep / tcpdump / Strace, and the man page makes your head hurt,” she said in a phone interview. A lot of tech writing comes from a place that makes the writer looks smart, and most programming books are not written to teach programming, but to show how much the author knows about the language. This leaves engineers still needing to learn how to use the program on the day-to-day.
Evans has been an engineer at Stripe since 2014, when she started a blog, now filled with hundreds of useful posts sorted into 30 different categories ranging from purely technical (Rust, debugging tools, computer networking), to career advice (working with others, communication, remote work, inclusion). She shares her wisdom at conferences, where she routinely gives away Bite Sized Zines to attendees.
A lot of her zine topics come from stuff she had to learn herself. “I spent years being scared of tcpdump,” she admits on her blog. “I didn’t learn about any of these things until I’d been programming for 10 years. But there’s no reason I couldn’t have learned them earlier! It’s just that nobody told me. But it’s not really that scary, and if I can help a few people be a little less intimidated by it, then I’ve done my job.”
“Comics often feel magical to me,” she said. The positive feedback she gets shows that explaining complicated things with comics often works well for a lot of people. Because it’s presented in an adorable format, people don’t hesitate to pick it up. “Fun, accessible content works.”
But it’s not about being adorable, she said, that’s just a happy side effect. Just making something a cartoon doesn’t necessarily mean it teaches what people need to know. Case in point, “The Children’s Illustrated Guide to Kubernetes,” which is an adorable story of a giraffe named Phippy. Sadly, while it introduces a lot of important ideas, it’s simplified to the point of not being useful, she said. The key to understanding Kubernetes, she said, is understanding the role of etcd, and that is not even mentioned.
Bite Sized Zines are all about clarity. They explain things in simple terms, but still explaining what you need to know as an engineer. “Something I find really effective is to quickly explain a few important things about something that’s really complicated like ‘how to run Kubernetes’ or ‘how distributed systems work,’” she said. Focus on fundamentals, not on the 500 million things people want to sell you and tell you about.
She starts breaking down something really complicated by quickly explaining a few important things. “Often when trying to explain a huge topic, people start with generalities (‘let me explain what a linearizable system is!’)”, she writes on her blog. “I have another approach that I prefer, which I think of as the ‘scenes from’ approach, or ‘get specific!’”
For example, when using a linearizable distributed system, it will periodically become unavailable due to a leader election. Knowing that is common can be very useful.
Her Bite Size Networking zine took a long time because she wanted to talk about all of networking in 24 pages. Networking has a reputation for being hard, she said. But her message is “this systems computer stuff is not that hard. It’s all one thing at a time, learn one thing at a time and eventually, you’ll know it all.”
Breaking Down Envoy and Kubernetes
Her zines explain things in simple terms but including what you need to know as an engineer. For example, she said it took her a while to understand Envoy from the available documentation. “I finally figured out that Envoy is written to work with HTTP2, not with HTTP, which informs the entire program,” she said. “Cloud native is much more abstract than, work with HTTP2. That is key to understanding the system but it’s not often explicitly stated.”
Her current work in progress is a zine about Kubernetes, a complicated system with many components, and she’s found the available documentation isn’t always super helpful. For example, a traditional Kubernetes diagram looks like this:
“This approach works well in a lot of contexts,” she explains, “but personally I find it often leaves me feeling confused about how the system works.” It took her months to understand enough about the system to simplify it. Here’s what she ended up with putting etcd at the top where it makes the most sense:
“I think comics work well for this just because you can mix text and small diagrams really easily, and with something like pipes the tiny diagrams help a lot,” she said.
Comics are especially helpful in explaining scenarios, explaining a simple idea, and writing short structured lists. It’s not going to provide you everything you need to know, she told me, but it does provide the first step and how to get started.
What’s to Come?
Although she loves all her zines, Evan’s favorite is “Help! I have a Manager!” which shows what a good manager/employee relationship from an employee point of view. We’re not ever taught how to work with a manager, she said, and it’s critical to your career.
She’ll continue making the zines as she breaks down and understands more complex tech. It’s fun and magical, she said. “I’ll post a comic on, for instance, /proc, and dozens of people will tell me ‘wow, I didn’t know this existed, this is so useful!’ It seems clear that explaining things with comics often works well for a lot of people.”
Feature image from Julia Evans’ “Bite Size Linux!“