Log inSign up
Sam Rose
19.4K posts
Image
user avatar
Sam Rose
@samwhoo
That guy who writes visual essays about software at samwho.dev. Developer Educator @ngrokHQ.
UK
samwho.dev
Joined August 2009
1,181
Following
19.5K
Followers
  • Pinned
    user avatar
    Sam Rose
    @samwhoo
    Dec 26, 2025
    Hi 👋 I’m Sam, I create visual essays about programming. My posts from 2025: - samwho.dev/reservoir-samp… - samwho.dev/big-o/ - ngrok.com/blog/prompt-ca… I also appeared on other folks’ websites: - simonwillison.net/2025/Dec/19/sa… - writethatblog.substack.com/p/sam-rose-on-…
    A screenshot from my reservoir sampling post. In it you can see a visual of cards being shuffled at the top, and underneath that is a bar chart tracking which cards appear early in the shuffle.
    A screenshot from my Big O post. In it can be seen a bubble sort algorithm written in JavaScript. Above the code is a visual of a 5-element array being bubble sorted.
    A screenshot from my prompt caching post. In it can be seen a visual of 8 clusters of coloured points shown in a 3-dimensional graph.
    A screenshot from my Bloom Filters blog post, showing a visualisation of the bits inside a bloom filter after the words "loved" and "your" have been added. There is also a code sample visible that reads:

let bf = new CountingBloomFilter();
bf.add("loved");
bf.add("your");
bf.remove("response");
bf.contains("loved"); // false
    A screenshot from my Queueing blog post. A list of goals can be seen that says:

- Add 15 requests to each queue.
- Add 10 priority requests to each queue.
- Drop 15 requests.
- Drop 10 priority requests.

Below this task list can be seen a visualisation of 4 different queues.
    A screenshot of my Turing Machines blog post. A Turing Machine running the first program seen in Alan Turing's 1936 paper can be seen, it prints alternative 0s and 1s to the tape.
    user avatar
    Sam Rose
    @samwhoo
    Dec 24, 2024
    Hi 👋 I'm Sam, I create interactive visualisations about programming. My posts from 2024: - samwho.dev/bloom-filters - encore.dev/blog/queueing - samwho.dev/turing-machines I also appeared on 2 podcasts : - hanselminutes.com/953/computer-s… - youtube.com/watch?v=ur9clT…
    34K
  • user avatar
    Sam Rose
    @samwhoo
    Jan 4, 2024
    There are only 2 types of good software. 1. Software made by a company with a clear direction and enough investment to hire great people (Tailscale, Vercel, Linear). 2. Software made by 1 person in 1995 that looks like ass but runs instantly and does exactly what you need.
    235K
  • user avatar
    Sam Rose
    @samwhoo
    Jul 22, 2024
    If you’ve ever asked “do I need to know math to be a programmer?” I present you: me, 15 years of experience, 4 years as an SRE at Google, relearning what the fuck a polynomial is.
    A photograph of the book “A Programmer’s Introduction to Mathematics” open on a chair in front of me, an iPad strewn across one of the pages with the expansion of a formula handwritten onto it.
    827K
  • user avatar
    Sam Rose
    @samwhoo
    Oct 20, 2025
    Strongly dislike when companies do this. Especially companies providing technical infrastructure. You’re not down today, but one day you will be. You work under the same constraints everyone else does. You know how stressful it is when it happens to you. Be better.
    user avatar
    Hetzner
    @Hetzner_Online
    Oct 20, 2025
    Guess who’s not down 👀
    Image
    GIF
    234K
  • user avatar
    Sam Rose
    @samwhoo
    Apr 17, 2024
    Made a dumb website so I wouldn't have to Google "tm symbol" ever again.
    Image
    symbol.wtf
    symbol.wtf
    A dumb website for copying symbols.
    100K
  • user avatar
    Sam Rose
    @samwhoo
    Aug 29, 2024
    If you really want to be safe doing this stuff I’ve got two words for you: BEGIN TRANSACTION; Everything you do after this won’t take affect until you run COMMIT; Even if you lose the connection, your changes will get rolled back. It’s the ultimate safety net.
    user avatar
    Povilas Korop | Laravel Courses Creator & Youtuber
    @PovilasKorop
    Aug 28, 2024
    Friendly reminder. No.1 rule when working with DELETE/UPDATE queries directly in SQL client.
    Image
    107K
  • user avatar
    Sam Rose
    @samwhoo
    Dec 20, 2024
    What does it mean for something to be Turing complete? I answer this question with a series of interactive Turing machine simulations! Play, pause, step forwards and backwards, and even write your own Turing machine programs in my latest blog post. samwho.dev/turing-machine…
    Image
    00:00
    67K
  • user avatar
    Sam Rose
    @samwhoo
    Nov 8, 2025
    This is ridiculously well done.
    Image
    Dithering - Part 1
    From visualrambling.space
    134K
  • user avatar
    Sam Rose
    @samwhoo
    Jul 24, 2024
    List of more stuff I don’t know: - what a virtual DOM is - how a TLS handshake works - what a stub resolver is - how tree shaking works - what it means for something to be “Turing complete” - how CSS stacking contexts work
    123K
  • user avatar
    Sam Rose
    @samwhoo
    Oct 22, 2022
    Me: “I wonder how Rust is doing as a web frontend language…”
    pub fn main() -> Result<(), JsValue> {
    let canvas: HtmlCanvasElement = window()
        .unwrap()
        .document()
        .unwrap()
        .query_selector("canvas")
        .unwrap()
        .unwrap()
        .dyn_into()
        .unwrap();

    let app_state = AppState::default();
  • user avatar
    Sam Rose
    @samwhoo
    Jun 15, 2024
    I don’t know what tldraw is anymore and at this point I’m too afraid to ask.
    user avatar
    Adam Janiš
    @adam_janis
    Jun 14, 2024
    It is always DNS... now it's at least pretty aka infrastructure as a @tldraw
    Image
    00:00
    55K
  • user avatar
    Sam Rose
    @samwhoo
    Aug 23, 2025
    ✨ Big O ✨ Let me take you on a visual introduction to what big O notation is in my new blog post: samwho.dev/big-o. With big O notation you can better understand how algorithms will perform, finding orders of magnitude improvements with very simple changes to your code
    Image
    00:00
    79K
  • user avatar
    Sam Rose
    @samwhoo
    Jul 12, 2024
    This tweet literally changed my life. The last 18 months hinge directly on this tweet.
    You’re unable to view this Post because this account owner limits who can view their Posts. Learn more
    88K
  • user avatar
    Sam Rose
    @samwhoo
    May 22, 2024
    ✨ I spent 3 months writing the best interactive introduction to queueing I could, and it's live now! I started this on March 1st, and in total have sunk over 70 hours into refining and perfecting it. It starts off showing what happens without queues...
    Image
    00:00
    83K

New to X?

Sign up now to get your own personalized timeline!

Create account

By signing up, you agree to the Terms of Service and Privacy Policy, including Cookie Use.

Terms·Privacy·Cookies·Accessibility·Ads Info·© 2026 X Corp.
Don't miss what's happening
People on X are the first to know.
Log inSign up