Hacker Blogs
Work in progress: 15,409 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1857

C

Code Capsule | A blog by Emmanuel Goossaert

Personal blog · codecapsule.com · on HN as emgoprogrammingcareer

Code Capsule | A blog by Emmanuel Goossaert is a personal blog at codecapsule.com about programming and career. Since 2013, 42 different Hacker News readers have linked it 48 times, most often “Coding for SSDs”. It is still writing: the last post was on 2026-10-04, and you can follow it by feed.

Visit the blog
48mentions?
42HN people?
2013–2026first – last linked?
Links on Hacker News per year · peak 9 in 2021

Software and thoughts. A weblog by Emmanuel Goossaert.

The author on HN?

emgo · 61 karma · member since 2020

Website: http://goossaert.com Blog: https://codecapsule.com Currently working at Mambu.com

From their public HN profile, which links to this site.

Most-linked posts?

  1. Coding for SSDs
    6 people · 6 mentions · first linked 2014-02-20
  2. Robin Hood hashing: backward shift deletion (2013)
    5 people · 6 mentions · first linked 2015-06-23
  3. What every programmer should know about solid-state drives
    4 people · 4 mentions · first linked 2015-02-14
  4. What every programmer should know about solid-state drives (2014)
    3 people · 3 mentions · first linked 2021-09-22
  5. Coding for SSDs
    3 people · 3 mentions · first linked 2021-09-08
  6. /2014/02/12/coding-for-ssds-part-5-access-patterns-and-system-optimizations/
    2 people · 2 mentions · first linked 2016-11-01
  7. Implementing a Key-Value Store (2012)
    2 people · 2 mentions · first linked 2015-04-23
  8. How to implement an algorithm from a scientific paper
    2 people · 2 mentions · first linked 2013-01-11

What Hacker News says?

  1. Implementing a Key-Value Store http://codecapsule.com/2012/11/07/implementing-a-key-value-s... Let's Make a Voxel Engine https://sites.google.com/site/letsmakeavoxelengine/

    Comment linking /2012/11/07/implementing-a-key-value-store-part-1-what-are-key-value-stores-and-why-implement-one/

    on “Ask HN: “Write your own” or “Build your own” software projects”
  2. Submitted How to implement an algorithm from a scientific paper as a story · 206 points

    HN discussion
  3. One thing I'm still puzzled about SSD over-provisioning, which is also mentioned by the tutorial ( https://codecapsule.com/2014/02/12/coding-for-ssds-part-4-ad... ) recommended by the article: > A drive can be over-provisioned simply by formatting it to a logical partition capacity smaller than the maximum physical capacity. The remaining space, invisible to the user, will still be visible and used by the SSD contro…

    Comment linking /2014/02/12/coding-for-ssds-part-4-advanced-functionalities-and-internal-parallelism/

    on “What every programmer should know about SSDs”
  4. Submitted What every programmer should know about solid-state drives (2014) as a story · 170 points

    HN discussion
  5. I read the section on sequential numbers as just illustrating a worst-case scenario of the case that could happen with either a naive hasher or malicious input. As far as I can see all the graphs but one use random numbers, so hashing won't add anything given good randomness. I've heard good arguments why linear probing should perform as well as quadratic probing when using Robin Hood bucket stealing, e.g. http://co…

    Comment linking /2013/11/11/robin-hood-hashing/

    on “I Wrote My Fastest Hashtable”
  6. Submitted Coding for SSDs as a story · 168 points

    HN discussion
  7. Flash memory is different from a regular drive, and it's to do with how it writes. You can't alter a single bit, you must rewrite the whole block and those can be anywhere from 256KB to 4MB or more. http://codecapsule.com/2014/02/12/coding-for-ssds-part-2-arc... Adding new bits is cheap, though, so if you can come up with an append-only strategy for your system and periodically combine those into a new, pristine ver…

    Comment linking /2014/02/12/coding-for-ssds-part-2-architecture-of-an-ssd-and-benchmarking/

    on “Real world SSD wearout”
  8. Submitted What every programmer should know about solid-state drives as a story · 135 points

    HN discussion
  9. A more detailed explanation of "backward shift deletion": https://codecapsule.com/2013/11/17/robin-hood-hashing-backwa...

    Comment linking /2013/11/17/robin-hood-hashing-backward-shift-deletion/

    on “How to implement a hash table in C”
  10. Submitted Implementing a Key-Value Store (2012) as a story · 49 points

    HN discussion
  11. I found the following link to be an interesting read on the topic: http://codecapsule.com/2014/10/18/implementing-a-key-value-s... The author also has a 6-part series on programming for SSDs: here's a more descriptive blog post for general SSD access patterns and optimizations: http://codecapsule.com/2014/02/12/coding-for-ssds-part-5-acc...

    Comment linking /2014/02/12/coding-for-ssds-part-5-access-patterns-and-system-optimizations/

    on “Damn Cool Algorithms: Log structured storage (2009)”
  12. Submitted Learn Street Epistemology to Deal with Difficult People at Work as a story · 19 points

    HN discussion
  13. i found this ( https://codecapsule.com/?s=hashing ) to be quite instructive as an overview of various hashing techniques. check it out for some fun ?

    Comment linking /?s=hashing

    on “Classical data structures that can outperform learned indexes (2018)”
  14. Submitted Coding for SSDs as a story · 16 points

    HN discussion
  15. In addition to the answer from rndgermandude (which is also a reason why accessing a data structure in RAM, even in a world without cache lines, would be faster and more efficient if stored in a linear array rather than a tree), SSDs are themselves a complex data structure mapping data into erasure blocks in an attempt to minimize wear on the flash memory and increase efficiency. If the size of your fragments is sma…

    Comment linking /2014/02/12/coding-for-ssds-part-5-access-patterns-and-system-optimizations/

    on “Windows file system compression had to be dumbed down”
  16. Submitted What every programmer should know about solid-state drives (2014) as a story · 14 points

    HN discussion
  17. The post mentions using tombstones for deletion, but I was under the impression that the variance benefits of Robin Hood hashing weren't realized unless you performed a backwards shift on the remaining elements instead of using a tombstone. See these posts for more information: http://codecapsule.com/2013/11/11/robin-hood-hashing/ http://codecapsule.com/2013/11/17/robin-hood-hashing-backwar... Unfortunately there's…

    Comment linking /2013/11/17/robin-hood-hashing-backward-shift-deletion/

    on “Robin Hood Hashing should be the default hash table implementation (2013)”
  18. Submitted Implementing a Key-Value Store as a story · 9 points

    HN discussion
  19. A variant of this is the default for Rust's HashMap. http://codecapsule.com/2013/11/17/robin-hood-hashing-backwar...

    Comment linking /2013/11/17/robin-hood-hashing-backward-shift-deletion/

    on “Robin Hood Hashing should be the default hash table implementation (2013)”
  20. Submitted Robin Hood hashing: backward shift deletion (2013) as a story · 6 points

    HN discussion
  21. What's interesting to me is that if you read the summary ( http://codecapsule.com/2014/02/12/coding-for-ssds-part-6-a-s... ), most of the recommendations are exactly the same as when programming against a traditional spinning-oxide hard drive: read and write entire blocks if you can, combine block writes, &c. It's nice to know that all that work on high-performance IO in databases doesn't need to be thrown away just…

    Comment linking /2014/02/12/coding-for-ssds-part-6-a-summary-what-every-programmer-should-know-about-solid-state-drives/

    on “Coding for SSDs”
  22. Submitted A Summary – What every programmer should know about solid-state drives as a story · 3 points

    HN discussion
  23. From the docs page [0] for std::collections::HashMap, Rust uses backwards shift deletion [1] instead of the tombstone method. [0] https://doc.rust-lang.org/std/collections/struct.HashMap.htm... [1] http://codecapsule.com/2013/11/17/robin-hood-hashing-backwar...

    Comment linking /2013/11/17/robin-hood-hashing-backward-shift-deletion/

    on “Rust Standard Hash Table Could Go Quadratic”
  24. Submitted Coding for SSDs as a story · 3 points

    HN discussion
  25. Depends on the implementation. Some algorithms[1] have a load factor no more than 0.80 before insert/lookup performance starts to degrade significantly. Others, like the algorithm used in Rust[2], can achieve load factors in excess of 0.98 without breaking a sweat. [1] http://netjs.blogspot.com.au/2015/05/how-hashmap-internally-... [2] - http://codecapsule.com/2013/11/17/robin-hood-hashing-backwar...

    Comment linking /2013/11/17/robin-hood-hashing-backward-shift-deletion/

    on “In-memory hash tree implementation”
  26. Submitted Skills Map of Senior Tech Career Progression as a story · 3 points

    HN discussion
  27. Java still uses a linked list chaining until a threshold is met (8 currently) which it then switches the bucket to a tree. I wish java could switch to open address hashing, but without value types it wouldn't help much (there's work on adding them: http://cr.openjdk.java.net/~jrose/values/values-0.html ). Linear probing would likely be better than cuckoo hashing from a cpu cache perspective (all locations closer in…

    Comment linking /2013/11/17/robin-hood-hashing-backward-shift-deletion/

    on “Hash tables with open addressing”
  28. Submitted Planned Reading: The Trick for Reading Nonfiction as a story · 3 points

    HN discussion
  29. Companies generally do not publish their algorithms, unless they are filing for a patent. I came across this great blog post a while back that will give you a pretty solid foundation for NAND management: http://codecapsule.com/2014/02/12/coding-for-ssds-part-1-int... . You can google more if you find any of the sections interesting. Yes, I did work for Micron! I'm doing data science now, though, so I'm not currently…

    Comment linking /2014/02/12/coding-for-ssds-part-1-introduction-and-table-of-contents/

    on “NAND Flash: Dealing with a Flawed Medium”
  30. Submitted Coding for SSDs (2014) as a story · 3 points

    HN discussion

Search all of HN for codecapsule.com

Linked by the same people?