"Making Hard Things Easy" by Julia Evans (Strange Loop 2023)
Security researchers examine technical aspects of "Making Hard Things Easy" by Julia Evans (Strange Loop 2023).
Summary
### Overview In this talk presented at Strange Loop 2023, Julia Evans discusses why computing concepts that seem basic—such as Bash, HTTP, SQL, and DNS—often take years to master. Drawing from her experience founding Wizard Zines to demystify complex computing systems, Evans emphasizes that technical friction is rarely a personal failing. Instead, it stems from systemic factors such as piles of obscure gotchas, massive underlying codebases, hidden internal mechanics, and unintuitive tooling outputs. She examines practical mental models, heuristics, and community roles that help make hard topics easier to learn and navigate.
### Key Topics Evans breaks down why four foundational technologies are unexpectedly difficult and provides strategies to simplify them: - **Bash and Hidden Gotchas**: Bash is an infrequently used language full of edge cases and trivia. A small script demonstrates how `set -e` fails to exit on errors when functions are used in compound statements like logical OR (`||`), which globally disables `set -e` inside the called function. Tools like ShellCheck offload trivia from human memory, while sharing real-world failure stories helps engineers decide when to avoid problematic patterns. - **HTTP and Accidental Complexity**: HTTP structures appear straightforward (status code, headers, body), but understanding them requires dealing with browsers containing over 20 million lines of code and evolving security models. Rather than memorizing all 40+ HTTP request headers or entire command-line man pages (like `grep`), Evans advocates pruning large lists down to small, human-scale subsets of high-value items, paired with honest, reliable references such as MDN and official RFCs. - **SQL and Chronological Execution**: In SQL, query syntax does not match execution order. Demystifying SQL requires asking what the computer executes first chronologically (e.g., `FROM` -> `WHERE` -> `GROUP BY` -> `HAVING` -> `SELECT` -> `ORDER BY` -> `LIMIT`). Evans notes that tracing chronological sequences also clarifies topics like CORS message exchanges, process startup (`behind hello world on Linux`), and cross-team service workflows. - **DNS and Hidden Mechanics**: DNS is hard because intermediate library code, local and upstream caches, and communications between resolvers and authoritative name servers are invisible. To illuminate these hidden interactions, Evans and her friend Marie built "Mess with DNS," an authoritative name server that displays incoming resolver queries in real time. For confusing terminal tools like `dig +norecurse`, she recommends "eraser eyes"—filtering out visual noise to focus strictly on actionable signals (such as `SERVFAIL` indicating a cache miss).
### Technical Details - **Shellcheck & Bash traps**: In Bash, constructs such as `my_function || echo 'failed'` disable `set -e` inside `my_function`, bypassing standard error termination behavior. - **DNS Inspection**: Using `dig +norecurse` allows querying a recursive resolver specifically for cached data, where a `SERVFAIL` response indicates the resolver does not hold cached records for the query. - **Interactive Visualizers**: Tools like `mess with DNS` and `float.exposed` expose hidden system mechanics (e.g., DNS resolver traffic patterns or spacing between IEEE 754 32-bit floating-point values) to build intuition.
### Takeaways Difficulty in understanding foundational systems is normal and driven by hidden state, complex distributed architectures, and unintuitive outputs. Evans highlights the community ecosystem required to demystify technology: the "Grumpy Old Timer" sharing past failure modes, the "Loud Newbie" asking clarifying questions without fear of judgment, the "Bug Chronicler", the "Tool Builder", the "Today I Learned" sharer, people who answer questions, and the "Documentarian" who writes it all down. By identifying the exact reasons a system is hard, developers can create tools, prune information, and trace execution to make hard things easy.
Related talks
Strange Loop Conference·34 min
Analysts investigate attack surfaces and defenses concerning "You can be a kernel hacker!" by Julia Evans.
Black Hat·52 min
Industry experts analyze emerging threats surrounding Making Big Things Better The Dead Cow Way.
Strange Loop Conference·47 min
Analysts investigate attack surfaces and defenses concerning "The Hard Parts of Open Source" by Evan Czaplicki.


