Sam Rose
samwho.dev · Personal blog · on HN since 2020
Sam Rose, a software engineer at ngrok, builds interactive visual explanations of topics like memory allocation, hashing, and load balancing.
What HN saysCommenters repeatedly recommend it for beautiful, detailed interactive explanations, comparing it to Ciechanowski's work, with one piece of feedback on a section.
43HN people shared it
16linked it in comments
36stories submitted
1.9Kstory points
4 months agolast shared
2020people per year2026
Most-shared posts
- 1Load Balancing12 people · 17 points · first shared 2023 · 1 comments on HN
- 2Memory Allocation5 people · 6 points · first shared 2023 · discussion on HN
- 3An intuitive visual guide to how hashing works, step-by-step4 people · 8 points · first shared 2023 · discussion on HN
- 4Homepage4 people · first shared 2025
- 5A visual introduction to big O notation3 people · 709 points · first shared 2025 · 193 comments on HN
- 6A visual interactive guide to Bloom filters3 people · 291 points · first shared 2024 · 54 comments on HN
- 7Reservoir Sampling2 people · 532 points · first shared 2025 · 105 comments on HN
- 8Latency numbers every programmer should know2 people · 5 points · first shared 2024 · 1 comments on HN
- 9A Logical Way to Split Long Lines (2019)2 people · 3 points · first shared 2023 · discussion on HN
- 10A Commitment to Art and Dogs2 people · 2 points · first shared 2024 · discussion on HN
- 11Allocator playground2 people · first shared 2023
- 12Latency numbers every programmer should know1 people · 237 points · first shared 2024 · 128 comments on HN
- 13Turing Machines1 people · 115 points · first shared 2024 · 35 comments on HN
- 14Ping Samwho1 people · 4 points · first shared 2024 · 1 comments on HN
- 15Bloom Filters1 people · 4 points · first shared 2024 · discussion on HN
What HN people wrote when they linked it
aranw · 2025-12-23
https://samwho.dev has some fantastic blog posts with great visualisations
smusamashah · 2025-09-02
Love the detailed interactive visual explanations, https://samwho.dev/ is another one like Ciechanow.ski
NikxDa · 2026-01-14
simonw · 2025-12-19
Sam has a long history of building beautiful visual explanations like this - I didn't realize he works for ngrok now, here's his previous independent collection: https://samwho.dev/
patleeman · 2023-05-22
I love this so much, thank you for putting this together!
My only piece of feedback would be for the "Inline Bookkeeping" section (https://samwho.dev/memory-allocation/#inline-bookkeeping), it took a while for me to grok the numbered list to figure out which block corresponded to address + X. I wonder if there is a better way to visualize the 4 numbered bullet points? Maybe just arrows and text pointing to the visualization?
Thanks again for this wonderful article!
thecoppinger · 2023-05-22
All credit goes to my wonderful friend Sam Who: https://twitter.com/samwhoo
He recently published a similar guide on load balancing that is equally intuitive and insightful: https://samwho.dev/load-balancing/
I can't wait to see what he puts out next!
samwho · 2026-06-30
I have some potentially bad news for you:
https://samwho.dev/load-balancing
https://encore.dev/blog/queueing
omalled · 2025-07-21
You might want to check out this very nice article on reservoir sampling, which discusses its application to logging: https://samwho.dev/reservoir-sampling/
jakelazaroff · 2025-03-03
Here's a Turing machine that uses finite space but infinite time: https://samwho.dev/christopher/?code=H4sIAAAAAAAAE8tNzMxTqFHQUqhRCNAw1… (from Sam Rose's wonderful article on Turing machines [1])
Your last point is correct, though: if you can detect a "cycle" (like the one the Turing machine I linked to goes through) then you can conclude that the machine won't halt.
[1] https://samwho.dev/turing-machines/
mzs · 2024-02-20
I really like this husky graphic, did you create it?
https://samwho.dev/images/sage-warning.png
ngshiheng · 2023-12-26
https://samwho.dev/blog/
The visualizations help with the understanding while keeping it engaging too
zdc1 · 2023-08-31
This one came up on HN previously. Playground is at the bottom: https://samwho.dev/load-balancing/
N-Krause · 2023-05-22
It even has a playground! https://samwho.dev/allocator-playground/
How I wish I had something like that when I first learned C.
junon · 2023-05-22
This is really, really well done. Also, the allocator playground[0] is really cool. Will be my go-to when teaching this topic moving forward :)
[0] https://samwho.dev/allocator-playground/
subract · 2025-05-08
Looks like it - https://samwho.dev/rss.xml
nickm12 · 2021-05-11
[40 minutes into the talk]: Looks like the study scanned 3.6 million github issues across 1.7 million repositories and looked for the number of bugs that were TypeError, AttributeError, or NameError and found it was 2.7% of issues.
I'm not a fan of this kind of methodology, because there are so many different use cases for github issue tracker (including feature requests, documentation requests, etc.) that I think the denominator here is overestimated. I'd rather have a study that looked at 1000 issues in depth with a rigorous rubric than one that grepped through millions of issues.
Also, looking only at the issues doesn't count the ones that were caught in development or testing. I like the notion of "moving your bugs to the left"[1] and would much rather find these type errors at build time than later.
Finally as I said in my other comment, avoiding type errors is not the only benefit of type checking. Making code easier to understand and refactor (including programmatic refactoring) are other benefits that are not captured only by counting bugs.
[1] https://samwho.dev/blog/move-your-bugs-to-the-left/