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
    J

    Jake Zimmerman

    blog.jez.io · Personal blog · on HN since 2015

    Jake Zimmerman, a Sorbet contributor, writes about Ruby type checking, parsing, tooling, and developer workflows.

    Visit blogRSSHN submissions
    Languages & CompilersProgramming
    What HN says

    Commenters link his posts on Sorbet's history and syntax as informative accounts from a primary contributor.

    Stats for nerds
    32HN people shared it
    44linked in comments
    1.4Kstory points
    Dec 2025last shared
    2017people per year2025

    Top posts on HN

    1. 1
      Bug squash: An underrated interview question
      2 people · 434 points · first shared 2024 · 271 comments on HN
    2. 2
      Reach for Markdown, not LaTeX
      1 person · 267 points · first shared 2018 · 178 comments on HN
    3. 3
      Code Review from the Command Line
      5 people · 238 points · first shared 2018 · 24 comments on HN
    4. 4
      Past, present, and future of Sorbet type syntax
      10 people · 152 points · first shared 2025 · 89 comments on HN
    5. 5
      Union Types in Flow and Reason
      1 person · 109 points · first shared 2018 · 53 comments on HN
    6. 6
      Improving CLIs with isatty
      1 person · 85 points · first shared 2019 · 31 comments on HN
    7. 7
      A Debugger for Bash in Six Lines of Bash
      1 person · 29 points · first shared 2019 · 2 comments on HN
    8. 8
      Is tree-sitter good enough?
      5 people · 24 points · first shared 2022 · 2 comments on HN
    9. 9
      Gripes with RSS after one week
      1 person · 10 points · first shared 2022 · 11 comments on HN
    10. 10
      On Programming Language Choice
      1 person · 6 points · first shared 2019 · Discussion on HN

    What HN people wrote when they linked it

    • MawrJan 2025

      > I hate coding interviews but I am sympathetic to people who want to do them because I've met people who are such good bullshitters that they could fool most people. If you're talking about someone with no working experience and who claims to be self-taught, you really have to make them write code.

      The choice is not limited to made up toy problems vs not testing coding skills at all. You can give them real problems to solve.

      > The interviewers tried to tell him to approach it like an industrial-grade solution, not a weird academic exercise.

      Hahaha, and how exactly do you write an 'industrial-grade' FizzBuzz? ;)

      Obligatory: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

      > The whole point of the interview is to get hints about the candidate. There are times when interviewers read too much into what the candidate does or says, but this isn't one of them.

      Oh but it is. If I were to ask you, the expert, to draw a blue line with red ink and then attempt to draw conclusions from your behaviour based on that question, could I ever get a valid assessment of you? If a test is faulty, so are its results. Garbage in, garbage out.

      Interviewing is no trivial task. It is an attempt to test how well someone will do a thing without having them actually do it. By definition, that is impossible. Still, we can try to get good enough results by minimising the number of differences between our test environment (interview) and production (the job). That will…

    • jezAug 2020

      I needed to understand linkers and object loaders for something at work recently, and I can't recommend Computer Systems: A Programmer's Perspective enough![1] It answered a lot of questions I'd always had about computer systems.

      I jumped straight into Chapter 7: Linking and learned so much that I read a bunch of other chapters for the fun of it. E.g., Chapter 7 covered that the `_start` symbol mentioned in this post is just a symbol in your executable that the Linux executable loader knows to jump to, but it's not the only special symbol!

      The chapter on linking also covered how loading and linking dynamic/shared libraries works, which was also really cool. I wrote up some of the things I learned about that stuff too.[2]

      [1] http://www.csapp.cs.cmu.edu/

      [2] https://blog.jez.io/linkers-ruby-c-exts/

    • hackermailmanOct 2017

      I do courses when I can, try some CS theory, some free resources here https://functionalcs.github.io/curriculum/ such as these undergraduate complexity theory lectures https://www.youtube.com/playlist?list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2 or this intro to dbms course https://www.youtube.com/playlist?list=PLSE8ODhjZXjYutVzTeAds8xUt1rcmyT7x then try using a SQL automated prover http://cosette.cs.washington.edu/

      Some more VIM resources, Vim as an IDE
      https://blog.jez.io/vim-as-an-ide/

      Lecture notes, entire course on vim and horrors that is vimscript
      http://www.contrib.andrew.cmu.edu/~haoxuany/vim/

      Great stackoverflow post on grokking vi to understand vim https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118

    • strogonoffJul 2022

      Tree-sitter appears to be ultra-focused on producing valid syntax trees really fast. This is great for e.g. syntax highlighting, but suboptimal in cases where you are writing a reference parser for your custom language and want to provide very useful error descriptions. Chumsky seems to be more suited for the latter (and also has a part of tutorial about precedence[0], so it seems to deal at least with that case).

      This overview of parser tradeoffs may be helpful: https://blog.jez.io/tree-sitter-limitations/.

      [0] https://github.com/zesterer/chumsky/blob/master/tutorial.md#parsing-binary-operators

    • JamesSwiftAug 2025

      Based on what Ive read [1], Sorbet was born out of very specific circumstances at Stripe, in the same sort of way that go was at google. I think it missed the mark due to it being a specific tool for specific usecases instead of an "open source project for the general public" first.

      I love ruby but I do look forward to having a good option for types at some point. The community makes up for lack of types by adding more tests to their test suite, which is nice but I'd love to layer some encoding into the codebase itself and save the CI time.

      [1] - https://blog.jez.io/history-of-sorbet-syntax/

    • LioApr 2025

      Jake Zimmerman wrote this excellent blog post[1] on the current state of Sorbet.

      I was impressed at recent changes in the Sorbet syntax but also with the proposal that we make code comments available to the ruby VM.

      That would allow Sorbet to adopt the rbs-inline comment syntax for both runtime checks and static analysis.

      So there does appear to be a way forward on this, which is pretty exciting.

      1. https://blog.jez.io/history-of-sorbet-syntax/

    Related

    Rails at Scalerailsatscale.com59 people

    Tiny JITs for a Faster FFI

    Rails at Scale
    Company · last shared 2026
    Jared Forsythjaredforsyth.com19 people

    Making a cross-platform mobile game in Reason/OCaml

    Jared Forsyth
    Personal · last shared 2026
    Jake Archibaldjakearchibald.com191 people

    I discovered a browser bug

    Jake Archibald
    Personal · last shared 2026
    Jon Sterlingjozefg.bitbucket.org19 people

    Leaving Go

    Jon Sterling
    Personal · last shared 2016
    One Big Flukeonebigfluke.com36 people

    Go's power is in emergent behavior

    One Big Fluke
    Personal · last shared 2024
    Andrew Gallantblog.burntsushi.net141 people

    My FOSS Story

    Andrew Gallant
    Personal · last shared 2026
    Eli Benderskyeli.thegreenplace.net428 people

    Common Pitfalls in Go Benchmarking

    Eli Bendersky
    Personal · last shared 2026
    Tweag Blogtweag.io141 people

    Nix: Taming Unix with Functional Programming

    Tweag Blog
    Company · last shared 2026