Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)

    ChimiChanga

    4 HN recommenders · recommended in 8 months, 2024–2026

    YouTube

    46:40 · 416K views · Jul 13, 2024

    Andrew Kelley, creator of Zig, presents practical data-oriented design techniques for shrinking memory footprint and making programs cache friendly. He ends with a case study of how these ideas sped up the Zig compiler.

    HN cites it as one of the best talks on data-oriented design, applying struct-of-arrays and compact data layouts to a real compiler.

    Software Engineering & LanguagesSoftware performance & optimizationSoftware architecture & designC, C++, Rust, Go & systems languages
    1. 48:30
      What's a Memory Allocator Anyway? - Benjamin FengZig SHOWTIME89K views • 6 years ago
    2. 1:27:46
      CppCon 2014: Mike Acton "Data-Oriented Design and C++"CppCon863K views • 12 years ago
    3. 2:27:34
      Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025Better Software Conference929K views • 1 year ago
    4. 54:14
      Zig: A programming language designed for robustness, optimality, and clarity –  Andrew KelleyRecurse Center75K views • 8 years ago
    5. 1:32:47
      Data-Oriented Demo: SOA, compositionJonathan Blow201K views • 11 years ago
    6. 59:48
      The Road to Zig 1.0 - Andrew KelleyChariotSolutions168K views • 7 years ago
    7. 43:20
      Zig Roadmap 2023 - Andrew KelleyZig SHOWTIME77K views • 4 years ago
    8. 1:13:11
      Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley ExplainsJetBrains982K views • 5 months ago
    9. 1:00:23
      [#36] Zig Roadmap 2024 - Andrew KelleyZig SHOWTIME66K views • 2 years ago
    10. 30:12
      Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmerxDahl163K views • 2 years ago
    11. 52:54
      Rust at speed — building a fast concurrent databaseJon Gjengset225K views • 7 years ago
    12. 1:00:46
      CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”CppCon271K views • 8 years ago
    13. 1:13:41
      CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"CppCon235K views • 12 years ago
    14. 44:35
      Object-Oriented Programming is BadBrian Will2.6M views • 10 years ago
    15. 1:16:58
      code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You CareNOKIA Technology Center Wrocław231K views • 11 years ago
    16. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    17. 49:20
      Modeling Data Concurrency w/ Asynchronous I/O in Zig - RedisConf 2020Redis11K views • 6 years ago
    18. 59:34
      CppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”CppCon137K views • 9 years ago
    19. 42:15
      "Performance Matters" by Emery BergerStrange Loop Conference502K views • 7 years ago
    20. 1:47:35
      Bryan Cantrill on ARC: A Self-Tuning, Low Overhead Replacement Cache [PWL SF] 10/2017PapersWeLove13K views • 9 years ago

    10 comments from Hacker News

    1. @RendelloJul 2026· in “Everyone Should Know SIMD”

      A good introduction to SoA (for anyone curious) are the two most famous Data-Oriented Design talks by Mike Acton (game engine dev) [1] and Andrew Kelley (Zig lead dev) [2] respectively. I read a book book about DoD [3] really which confused me at first with all its talk about database table design (in a book about a high-performance C++ game engine?), but when it finally clicked it was amazing. The point is that you want to think hard about your access patterns and what could constitute good "primary keys", then model it accordingly. SoA ends up being useful a lot of the time, because having your data in homogeneous arrays/vectors is great for cache locality and branch elimination. Even without SIMD you can get huge speedups from that, but that's also where your compiler (or you as a programmer) can get incredible SIMD gains. SoA is not a silver bullet as it may not align well with your access patterns, but it can great to add to your toolkit. --- Mike Acton: Data-Oriented Design and C++ : [LINK] Andrew Kelley: A Practical Guide to Applying Data Oriented Design : this video Richard Fabian: Data-Oriented Design : [LINK]

      RecommendsView on HN
    2. @RendelloOct 2025· in “Your data model is your destiny”

      I recently spent a week or so creating a library for my project. There's not a lot of code, but it was hard to reason about the data model, what I wanted the API to look like, and what I wanted actually rendered on the other side. I was proud after getting it working, but when I had to run dozens of files through it, it was horribly slow. I don't tend to write a lot of hot code, so I was excited by the fact I had to profile it and make it efficient. I decided that I should rewrite the system, as my mental model had improved and the code was doing a lot more than it should be doing for no reason. I've spent the last few days redesigning it according to Data-Oriented Design. I'm trying to get the wall-clock time down by more than an order of magnitude. I'm not sure how it's going to turn out, wish me luck :) Since I mentioned DoD, these three links will probably come up in conversation: Mike Acton's famous performance talk: [LINK] DoD in the Zig compiler: this video The DoD book: [LINK]

      RecommendsView on HN
    3. @emmanueloga_Nov 2024· in “Rust for tokenising and parsing”

      That talk is great, but I remember some discussion later about Go actually NOT using this technique because of goroutine scheduling overhead and/or inefficient memory allocation patterns? The best discussion I could find is [1]. Another great talk about making efficient lexers and parsers is Andrew Kelley's "Practical Data Oriented Design" [2]. Summary: "it explains various strategies one can use to reduce memory footprint of programs while also making the program cache friendly which increase throughput". -- 1: [LINK] 2: this video

      RecommendsView on HN
    4. @iamcreasyJul 2025· in “Writing memory efficient C structs”

      This reminds of an amazing talk by Mike Acton on Data oriented design: [LINK] And there is a related talk by Andrew Kelley implementing these ideas on Zig toolchain: this video

      RecommendsView on HN
    5. @gethlyJan 2026· in “Why Object of Arrays beat interleaved arrays: a JavaScript performance issue”

      SoA is nothing new. Not sure why it needs to be even discussed... Anyway, here's few videos of interest: [LINK] this video Odin also supports SoA natively [LINK]

      RecommendsView on HN