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

Top all-time · #1617

G

Graham King

Personal blog · darkcoding.net · on HN as graham_king_3programmingsystems

Graham King's personal blog at darkcoding.net covers programming and systems. Since 2010, 44 different Hacker News readers have linked it 49 times, most often “Facebook’s code quality problem (2015)”. It is still writing: the last post was on 2025-08-23, and you can follow it by feed.

Visit the blog
49mentions?
3recommend?
44HN people?
2010–2025first – last linked?
Links on Hacker News per year · peak 8 in 2024

Too few sampled comments (20) to say how often HN recommends it.?

Why HN links it

HN readers link Graham King's posts on Facebook's code quality problems and on shrinking Rust binaries to a few hundred bytes, plus notes on Go, Python memory debugging and card-number checks.

Recommended for · 3 comments
One commenter called the Facebook code quality post a good blog post; another said readers might enjoy the post on shrinking a Rust binary to 400 bytes.

Summarised by Claude from a sample of 20 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Solvitas perambulum

The author on HN?

graham_king_3 · 64 karma · member since 2010

http://darkcoding.net

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

Most-linked posts?

  1. Facebook’s code quality problem (2015)
    6 people · 6 mentions · first linked 2017-02-22
  2. A small Rust binary indeed (2022)
    5 people · 6 mentions · first linked 2023-10-25
  3. Facebook’s code quality problem
    3 people · 3 mentions · first linked 2015-11-02
  4. epoll: The API that powers the modern internet (2022)
    2 people · 2 mentions · first linked 2022-10-23
  5. Go after four months
    2 people · 2 mentions · first linked 2012-03-06
  6. A developer goes to a DevOps conference
    2 people · 2 mentions · first linked 2019-09-13

What Hacker News says?

  1. Yes, I think the promises of the "we can JIT all the overhead away"-camp were always overblown, and never materialized in practice. This is another very strong datapoint for that hypothesis[1]. However, it is important not to conflate "scripting language" and "dynamic language" and "interpreted". While there is some correlation there, it is not a necessary one. Objective-C is an example of a fast AOT-compiled pretty…

    Comment linking /research/IEEE-Convenience_Over_Correctness.pdf

    on “A 10x Faster TypeScript”
  2. Submitted Facebook’s code quality problem (2015) as a story · 502 points

    HN discussion
  3. This isn't exactly the first time Facebook has been called out for poor engineering practices: https://www.darkcoding.net/software/facebooks-code-quality-p... https://blog.timac.org/2017/0410-analysis-of-the-facebook-ap...

    Comment linking /software/facebooks-code-quality-problem/

    on “Facebook iOS SDK Remotely Crashing Spotify, TikTok, Pinterest, Winno and More”
  4. Submitted A developer goes to a DevOps conference as a story · 405 points

    HN discussion
  5. To achieve the smallest size, you have to ditch main entirely and use _start, along with passing certain linker flags not to align sections. See https://darkcoding.net/software/a-very-small-rust-binary-ind... You can easily get around 500 bytes this way

    Comment linking /software/a-very-small-rust-binary-indeed/

    on “Hello World”
  6. Submitted Linux: What Can You Epoll? as a story · 264 points

    HN discussion
  7. Facebook noticed the same thing. http://www.darkcoding.net/software/facebooks-code-quality-pr... - "Exhibit C: Our site works when the engineers go on holiday"

    Comment linking /software/facebooks-code-quality-problem

    on “What I Wish I Had Known Before Scaling Uber [video]”
  8. Submitted epoll: The API that powers the modern internet (2022) as a story · 243 points

    HN discussion
  9. > At these companies, algorithms and the basics are fundamentally important. Because you tend to work on tiny parts of a massive whole, there is no tolerance for cowboy-coding and not following best-practices. IMO the interviews test that you can fall in line and follow the patterns that have been in place for decades. ... have they gotten a lot better since 2015? https://www.darkcoding.net/software/facebooks-code-q…

    Comment linking /software/facebooks-code-quality-problem/

    on “Facebook senior software engineer interview”
  10. Submitted In-memory key-value store in C, Go and Python as a story · 186 points

    HN discussion
  11. > If your slice has a million entries, it's definitely a different story. Searching through a map is much faster than you think. At 20 entries searching through a slice of strings is already slower than searching in a map. For ints this threshold is 100 entries. Feel free to test on your own machine, my benchmark code is here: https://gist.github.com/JelteF/1251f180966eb974d7732ea6c3d3b... You can run it with: go te…

    Comment linking /software/go-slice-search-vs-map-lookup/

    on “Half a million lines of Go”
  12. Submitted The memory remains: Permanent memory with systemd and a Rust allocator as a story · 132 points

    HN discussion
  13. Facebook is the world's largest PHP shop. Does that mean that everyone should use PHP? As it turns out, moving fast and breaking things isn't all that conducive to quality engineering[1][2]. Facebook has a massive legacy code base maintained by an enormous team that is under pressure to iterate quickly while supporting what is arguably the world's largest user base. They are dealing with extremely specialized constr…

    Comment linking /software/facebooks-code-quality-problem/

    on “Hype Driven Development”
  14. Submitted A day in the life of a professional software engineer as a story · 122 points

    HN discussion
  15. You got muppy for that: https://pythonhosted.org/Pympler/muppy.html Also objgraph: https://www.darkcoding.net/software/finding-memory-leaks-in-... If you are lucky to use Python 3.6+, you got tracemalloc: https://docs.python.org/3/library/tracemalloc.html

    Comment linking /software/finding-memory-leaks-in-python-with-objgraph/

    on “Copy-on-write friendly Python garbage collection”
  16. Submitted Evaluating LLMs for my personal use case as a story · 120 points

    HN discussion
  17. You can do this with Go as well, and have been able to for a while now. http://www.darkcoding.net/software/building-shared-libraries... http://blog.ralch.com/tutorial/golang-sharing-libraries/

    Comment linking /software/building-shared-libraries-in-go-part-1/

    on “Rust vs C Pitfalls”
  18. Submitted A small Rust binary indeed (2022) as a story · 102 points

    HN discussion
  19. Go is sort of the opposite of this. If you do something like: func sum(a, b float64) interface{} { return a+b } It will allocate memory for the float, because an interface type always contains two pointers. [1] It's pretty crazy that the second word in a Go interface has to be a pointer. But I suppose if dynamic types were used more, they would be optimized more. [1] https://www.darkcoding.net/software/go-the-price-…

    Comment linking /software/go-the-price-of-interface/

    on “The secret life of NaN”
  20. Submitted Facebook’s code quality problem as a story · 80 points

    HN discussion
  21. Yea, essentially this, they have bigger problems: http://www.darkcoding.net/software/facebooks-code-quality-pr...

    Comment linking /software/facebooks-code-quality-problem/

    on “Scaling Mercurial at Facebook”
  22. Submitted Facebook’s Code Quality Problem as a story · 17 points

    HN discussion
  23. estebank · 2024-02-18Recommends
    You might be interested in reading https://darkcoding.net/software/a-very-small-rust-binary-ind...

    Comment linking /software/a-very-small-rust-binary-indeed/

    on “The Linux Kernel Prepares for Rust 1.77 Upgrade”
  24. Submitted Go after four months as a story · 7 points

    HN discussion
  25. This is a good guide on building small Rust binaries: https://github.com/johnthagen/min-sized-rust This talks about going to extreme lengths on making the smallest Rust binary possible, 400 bytes when it was written, https://darkcoding.net/software/a-very-small-rust-binary-ind... The thing is, you lose a lot of nice features when you do this, like panic unwinding, debug symbols, stdlib… for kernel and some embedded…

    Comment linking /software/a-very-small-rust-binary-indeed/

    on “The Linux Kernel Prepares for Rust 1.77 Upgrade”
  26. Submitted Rust: What I learnt so far as a story · 6 points

    HN discussion
  27. I got a Rachel from Cardholder Services call once during an in-office meeting so I put the call on speaker for everyone to enjoy, then immediately went to Graham King: https://www.darkcoding.net/credit-card-numbers/ to get some credit-card numbers that would pass their basic Mod 10 check and go to their CC merchant service, thus costing them money. By the sixth failed card and 20 minutes later the 'agent' figured ou…

    Comment linking /credit-card-numbers/

    on “'Scam baiters' get a kick out of conning the con artists”
  28. Submitted Go after four months as a story · 5 points

    HN discussion
  29. I've seen medical stuff and there's a good reason I won't work in that industry... What REALLY bothers me is things like credit cards. http://www.merriampark.com/anatomycc.htm There's encoded data on something that's supposed to be a UUID thing: Industry, Issuer (card company), Lender (banking institution), Account number, and Checksum This is a good way to prevent fraud? Or have they just given me the keys to gener…

    Comment linking /credit-card-numbers/

    on “Ask HN: What annoys you?”
  30. Submitted A Developer Goes to a DevOps Conference as a story · 4 points

    HN discussion

Search all of HN for darkcoding.net

Linked by the same people?