Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
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

    Matt Rickard

    matt-rickard.com · Personal blog · on HN since 2019

    Matt Rickard writes short daily posts on startups, software engineering, infrastructure, and LLM tooling.

    Visit blogHN submissions
    ProgrammingStartupsDevOps & Cloud
    What HN says

    Commenters cite his posts on topics like pair programming and constrained LLM output, and one calls his regex-constraint post a good entry-level explanation.

    Stats for nerds
    98HN people shared it
    417linked in comments
    4.5Kstory points
    Jan 2025last shared
    2021people per year2025

    Top posts on HN

    1. 1
      Reflections on 10k Hours of Programming
      2 people · 424 points · first shared 2021 · 215 comments on HN
    2. 2
      Don't use Kubernetes yet
      1 person · 306 points · first shared 2022 · 288 comments on HN
    3. 3
      S3 isn't getting cheaper
      1 person · 288 points · first shared 2022 · 205 comments on HN
    4. 4
      The Unreasonable Effectiveness of Makefiles
      1 person · 256 points · first shared 2022 · 210 comments on HN
    5. 5
      I miss the programmable web (2021)
      1 person · 248 points · first shared 2022 · 177 comments on HN
    6. 6
      What comes after Git
      1 person · 227 points · first shared 2022 · 421 comments on HN
    7. 7
      Non-Obvious Docker Uses
      2 people · 217 points · first shared 2022 · 93 comments on HN
    8. 8
      Why did Heroku fail?
      1 person · 215 points · first shared 2022 · 150 comments on HN
    9. 9
      SQLite Doesn't Use Git
      1 person · 181 points · first shared 2022 · 171 comments on HN
    10. 10
      The End of CI
      1 person · 149 points · first shared 2021 · 231 comments on HN

    What HN people wrote when they linked it

    • imiricJul 2023

      > Automation was glued together in one of these with a series of grep, awk, sed, ls, test, commands glued together. Anything more complicated was written in C and called from one of these things.

      This doesn't sound that horrific to me. It's the classic Unix approach of building small tools that do one thing well, and composing them in novel ways to solve problems. For any problem that can't be solved this way you write another small tool using your programming language of choice. Rinse and repeat.

      But occasionally Unix attracts users and programmers who reject this approach, and who prefer building a monolithic tool, or in the case of Larry Wall, new programming languages. To be clear, I'm a fan of Perl and think it has its place, especially in the era it came out. It inspired many modern languages, and its impact is undeniable.

      Personally, I find solutions you refer to as "unmaintainable nightmare" to be simple and elegant, if used correctly. No, you probably shouldn't abuse shell scripts to build a complex system, and beyond a certain level of complexity, a programming language is the better tool. But for most simple processing pipelines, Unix tools are perfectly capable and can be used to build maintainable solutions.

      The classic Knuth-Mcllroy bout[1] comes to mind. Would you rather maintain Knuth's solution or Mcllroy's?

      [1]: https://matt-rickard.com/instinct-and-culture

    • samsquireDec 2022

      Yes and with relations.

      In object orientated programming, there is the observer pattern and there is reactive style.

      But how do you group a set of objects and run the equivalent of epoll() or select() on it when the objects state changes?

      I kind of want to group a set of objects together and define a relation between them and tell them to maintain some invariant.

      For example, if I wanted to implement multithreading and associate a 500 sockets per kernel thread and multiplex 1000 clients to each thread. And recv for receive threads and send for send threads. And have a pipeline of steps to process incoming messages and outgoing messages. This is a lot of code.

      If I could just create a thread object and associate it with a list of sockets and tell them to send messages to eachother when to run what. Then I could use OOP to manage files, sockets, containers. Kubernetes is not really OOP but it does manage objects.

      I feel the abstraction doesn't exist yet. What comes to mind is the Knuth shell script versus a low level program.

      https://matt-rickard.com/instinct-and-culture

      A shell pipeline is easily 1000s of lines in C.

      I feel the interface to the operating system should help you write less code.

      I want the messages sent between objects to be capable of reorganising the arrangement of the relations between objects themselves.

    • downbootsFeb 2024

      In analogy [0] to the pre- and post- ai-gen oversupply of information: In the movie The Matrix, Neo learns a martial art by importing directly to his brain. This obviously suggests demanding either high latency or efficient compression or equivalently optimal knowledge representation. Akin to what we might expect from neural interfaces like Neuralink, it suggests search through and generation of content (ai-gen or not) may not be enough. To me, it suggests a need for some kind of structured knowledge (how exactly?) world brain [1] and that of bridging hardware with the intricacies of human wetware.

      Perhaps the scenario of creating a self-correcting AI is more immediate to that one of humans becoming borg-like [2] in the matrix sense.

      Surely a human with infinite lifespan and mental capacity could digest all human works and have an internal mental model that could organize all the information.

      [0] https://matt-rickard.com/the-low-background-steel-of-ai

      [1] https://en.wikipedia.org/wiki/World_Brain

      [1] https://en.wikipedia.org/wiki/Borg

    • paulgbMay 2023

      Yes, it's definitely lagging the CUDA ecosystem. I did a write-up a few weeks back on the various approaches people are taking to do inference in the browser (WASM, WebGL, WebGPU): https://digest.browsertech.com/archive/browsertech-digest-the-race-to-run-inference-in/

      Matt Rickard also had a short write-up recently: https://matt-rickard.com/implementing-llms-in-the-browser

      My take is that we probably won't see much training done on WebGPU, because training is done upfront and it makes sense to standardize on a single GPU vendor and use an interface that can squeeze all the juice out of those GPUs (CUDA). But for inference and run-time computations, it could be very interesting to take a model trained with CUDA/PyTorch and export it (maybe with Apache TVM or tensorflow.js) into WebGPU that can run on end-user devices.

    • TooSep 2023

      What you are looking for is Mockerfiles.

      https://matt-rickard.com/building-a-new-dockerfile-frontend

      It’s just a proof of concept. At least shows what can be done if one peeks under the hood a bit.

      With multi stage builds you can already do quite few of the things you mention, like downloading in one container and copy into another, happening in parallel while apt install is running. It’s hopelessly verbose to do so though and one ends up with not using it and instead just brute forcing the most simple imperative file instead.

    • npinskerJul 2022

      I know people that love it, but my experience has been that it usually feels like an inefficient use of time. I mostly agree with https://matt-rickard.com/against-pair-programming/ on the same site, especially this bit: 'For existing employees, pairs are often stuck at the speed of the least senior pair.'

      It has a few powerful but niche use cases, particularly around mentorship (where I think asynchronous feedback is often too little, too late) and when two people are doing work that's closely intertwined.

    Related

    Capsule8 Blogcapsule8.com21 people

    Millions of Binaries Later: A Look into Linux Hardening in the Wild

    Capsule8 Blog
    Company · last shared 2021
    Dan Luudanluu.com1.2k people

    We only hire the trendiest

    Dan Luu
    Personal · last shared 2026
    Shuttle Blogshuttle.rs34 people

    Infrastructure From Code

    Shuttle Blog
    Company · last shared 2024
    GNOME Blogsblogs.gnome.org490 people

    AirPods fast connect security vulnerability

    GNOME Blogs
    Company · last shared 2026
    Matt Maroonmattmaroon.com71 people

    I Quit Hacker News

    Matt Maroon
    Personal · last shared 2015
    Chris Wellonsnullprogram.com295 people

    Why Aren't There C Conferences?

    Chris Wellons
    Personal · last shared 2026
    Rachel Krollrachelbythebay.com493 people

    fork() can fail

    Rachel Kroll
    Personal · last shared 2026
    Stack Overflow Blogstackoverflow.blog1.1k people

    How Dwarf Fortress is built

    Stack Overflow Blog
    Company · last shared 2026