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.

What HN saysCommenters cite his posts on topics like pair programming and constrained LLM output, and one calls his regex-constraint post a good entry-level explanation.
98HN people shared it
21linked it in comments
417stories submitted
4.5Kstory points
2 years agolast shared
2019people per year2026

Most-shared posts

  1. 1
    The Heptagon of Configuration
    6 people · 8 points · first shared 2019 · discussion on HN
  2. 2
  3. 3
    Knuth and McIlroy Approach a Problem
    4 people · 4 points · first shared 2022 · 1 comments on HN
  4. 4
    Hire for slope, not Y-Intercept
    3 people · 132 points · first shared 2021 · 91 comments on HN
  5. 5
    AWS is not a dumb pipe
    3 people · 122 points · first shared 2022 · 87 comments on HN
  6. 6
    Against Pair Programming
    3 people · 103 points · first shared 2022 · 174 comments on HN
  7. 7
    Squash, Merge, or Rebase?
    3 people · 26 points · first shared 2022 · 4 comments on HN
  8. 8
    Context-Free Grammar Parsing with LLMs
    3 people · 7 points · first shared 2023 · discussion on HN
  9. 9
    Decoy Effect in Marketing
    3 people · 7 points · first shared 2022 · discussion on HN
  10. 10
    Observations of the Lindy Effect
    3 people · 6 points · first shared 2021 · discussion on HN
  11. 11
    Diseconomies of Scale at Google
    3 people · 6 points · first shared 2021 · discussion on HN
  12. 12
    Unexpected Developer Trends
    3 people · 6 points · first shared 2021 · discussion on HN
  13. 13
    Why Python Won't Be the Language of LLMs
    3 people · 4 points · first shared 2023 · 1 comments on HN
  14. 14
    Accidentally Turing Complete
    3 people · 4 points · first shared 2022 · discussion on HN
  15. 15
    The Contrarian Strategy of OpenAI
    3 people · 4 points · first shared 2023 · discussion on HN

What HN people wrote when they linked it

rckrd · 2021-07-27
I just wanted to say that today I hit the 2 month mark for consecutive days of writing. I published 60 posts, one every day. I wrote about startups, engineering, and other thoughts. I've found that doing something daily is the best way for me to build habits. It's been a fantastic experience. My writing became more concise. It's given me clarity. And great idea for the site- I submitted a pull request for my blog [0]. [0] https://matt-rickard.com/
kaiokendev · 2024-03-20
Matt Rickard has a good entry level blog post about it, from the angle of regex constraining [0]. Context free grammars follow the same principle, except using a finite state machine to restrict the action space. [0]: https://matt-rickard.com/rellm
npinsker · 2022-07-04
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.
nayuki · 2022-05-16
Found some candidates, still not sure if they are the best sources. > Every Unix Command Becomes a Startup -- https://matt-rickard.com/every-unix-command-becomes-a-startup/ [2022-04-09] > Every Unix command eventually become an internet service. Grep->Google, rsync->Dropbox, man->stack overflow, cron->ifttt ... etc -- https://twitter.com/cdixon/status/505118160811728896 [2014-08-28]
imiric · 2023-07-09
> 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
mmahemoff · 2025-01-04
Every Unix command eventually becomes a startup: https://matt-rickard.com/every-unix-command-becomes-a-startup Turns out not everyone wants to spend years learning *nix and sit on a desktop pc debugging shell commands to edit their video.
EvanAnderson · 2024-11-25
mplewis · 2024-01-18
This is how Tailwind works. This sort of comment comes up every time Tailwind is mentioned. Here's a recent piece on the popularity of the framework: https://matt-rickard.com/why-tailwind-css-won
spawarotti · 2023-10-31
At a first glance this looks to me to be the same concept as "The Heptagon of Configuration": https://matt-rickard.com/heptagon-of-configuration
Too · 2023-09-01
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.
abhinavkulkarni · 2023-07-21
There already are techniques to guade LLMs into producing output that adhere to a schema. For e.g. forcing LLMs to stick to a Context-Free Grammar: https://matt-rickard.com/context-free-grammar-parsing-with-llms Just like many similar methods, this is based on logit biasing, so it may have an impact on quality.
paulgb · 2023-05-02
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-… 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.
SlickStef11 · 2023-04-04
“Whether you think you can, or you think you can't--you're right.” https://matt-rickard.com/reasons-to-do-a-startup
forgotpwd16 · 2022-09-17
>I have a project in Things called "Blog post ideas" where I maintain an ever-growing list of topics to write about. I've such a list. Currently at ~10K entries. At such high number it's actually counter productive as choosing from abundance of options requires more effort. The popularized term for this is paradox of choice. I wonder how M. Richard does it (https://matt-rickard.com/archive) and has written a single post every day for the past one-two years. Leaves me really impressed.
sargstuff · 2022-09-15
For gsheets, depends on one's language tolerance. "using python in google sheets" & just use system call for above examples. ;) For excel: Lean proof of concept https://matt-rickard.com/spreadsheets-and-lisp Extended proof of concept for thinking outside the [cell box] : https://www.gnu.org/software/emacs/manual/html_node/emacs/Enriched-Tex…
stuckinhell · 2022-07-25
They have strategy called Embrace, Extend, Extinguish. They are still running this strategy, but now also buy good PR buying paying high profile developers thru their developer advocate positions. """ Microsoft finally is fulfilling its dream of EEE to Linux. Windows Subsystem for Linux (WSL) embraced the API – letting you run Linux binaries (and GUIs!) on Windows natively. Next, WSL extended the kernel with GPU driver support. "" " - https://matt-rickard.com/embrace-extend-extinguish/
Zababa · 2021-10-28
There's also the "Heptagon of configuration" https://matt-rickard.com/heptagon-of-configuration/
downboots · 2024-02-19
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
samsquire · 2022-12-01
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.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close