Design 14: Computer Networks
Tuesday, May 19, 2026
Theme
My past two puzzles, "Classical Natural Language Processing" and "Algorithms in Context", focused on fairly abstract and specialized topics. I wanted this puzzle to tackle something more familiar, approachable, and concrete. Even if people are unfamiliar with specific networking terminology, it’s a topic many programmers have exposure to simply because of how ubiquitous it is in regular software development. Networks appear everywhere in software: external API requests, database connections, web servers, and clients.
Grid
I had trouble finding crossings for TCP, CDN, BGP, and UDP. During the construction process, I start with the longest words first since they dramatically affect the overall shape of the grid. It’s much harder to add a long word near the end of construction because remaining space is sparse, which is why I usually leave shorter entries for last.
However, extremely short acronyms create their own problems, especially when they don’t contain frequently used characters. I contemplated removing CDN and BGP but hated the idea since the former solves a difficult physical problem while the latter has a fun historical context behind it. Eventually, I was able to find space for both answers after rearranging the grid.
Similar to my previous puzzles, I also had to watch out for longer entries like Fiber Optics, Throughput, Bandwidth, and Congestion. This puzzle already contained a fair number of long answers and any more would have made the grid significantly harder to construct.
Clues
Frequently when I write clues they start out extremely definitional. Then I try to make them clearer before adding additional technical detail or historical facts.
An example of simplifying a clue while still adding technical detail is the clue for Routing: "Process of selecting paths for data transmission across a network; uses algorithms like distance-vector or link-state." I started with the technical definition, simplified it to make it clearer, then added specific examples because I thought they made the concept more tangible.
Another example is the clue for BGP: "Protocol responsible for inter-domain routing between autonomous systems; called the 'Two-Napkin Protocol' because the design was recorded on two napkins." I added the historical detail about the "Two-Napkin Protocol" because I thought it was a distinctive and fun bit of trivia.
Tradeoffs
I feel that networks involve a lot of acronyms. I made a conscious decision to not have too many acronyms in the clue set but still ended up with 4.
For BGP, I don’t think I provided as much technical detail as I would like because it’s difficult to compress without losing a lot of context, especially if it’s a person’s first time encountering the protocol.
I originally thought about including OSI in the clue set but decided it was a bit too abstract compared to the rest of the clues. I wanted the clues to feel more tangible.
Notes
During my research into congestion, I learned about Queueing Theory. I had never heard of this subfield of computer science before, but it tackles problems I’ve previously encountered in passing, like scheduling and priority queueing systems.
The next puzzle is going to be about Queueing Theory.