Top all-time · #9611
Karim Hamidou
Personal blog · khamidou.com · on HN as karimprogrammingcareer
Karim Hamidou's personal blog at khamidou.com covers programming and career. Since 2013, 8 different Hacker News readers have linked it 21 times, most often “Show HN: A very simple Lisp interpreter in 250 lines of literate Python”. It is still writing: the last post was on 2026-10-20, and you can follow it by feed.
Too few sampled comments (6) to say how often HN recommends it.?
Why HN links it
Linked as side-by-side annotated code: a Python Lisp interpreter (lisp.py) and a GPT-2 rebuild, cited as examples for learning to build your own interpreter or LLM.
Summarised by Claude from a sample of 6 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Show HN: A very simple Lisp interpreter in 250 lines of literate Python3 people · 4 mentions · first linked 2017-07-01
- Lisp.py3 people · 3 mentions · first linked 2022-07-20
- Show HN: Rebuilding GPT2 inference in ~500 lines of (commented) code2 people · 2 mentions · first linked 2025-08-26
- Let's build an online code sandbox2 people · 2 mentions · first linked 2018-01-02
What Hacker News says?
Here is a Javascript program that implements the basics of the git version control system. It is a literate program with a prose explanation in side-by-side format: http://gitlet.maryrosecook.com/docs/gitlet.html Here is another side-by-side example. It is a Python program that implements a very simple interpreter for the Lisp programming language. http://khamidou.com/compilers/lisp.py/
Comment linking /compilers/lisp.py/
on “Ask HN: “Write your own” or “Build your own” software projects”Submitted Lisp.py as a story · 85 points
HN discussionI’ve actually written a short blog post about it ( http://khamidou.com/sandboxing/ )! Basically, most of them build a sandbox to prevent the guest system from interacting in unexpected ways. There’s a bunch of ways you could do this — intercepting syscall, limiting them using seccmp(2), etc.
Comment linking /sandboxing/
on “Ask HN: How Do Services Like PythonTutor and Repl.it Run Code Safely”Submitted When programmers write sale pages as a story · 16 points
HN discussionSorry to self-promote but I did exactly that a few months back: https://khamidou.com/gpt2/ Generally, I think the Karpathy tutorials are a good starting point but they're very mathy (despite people telling you you only need high school math to understand llms, a lot of the abstractions and concepts he uses are a bit foreign to programmers). I found out rebuilding inference of a known model taught me a lot more than…
Comment linking /gpt2/
on “Ask HN: Build Your Own LLM?”Submitted Show HN: Rebuilding GPT2 inference in ~500 lines of (commented) code as a story · 5 points
HN discussionCould it be a framework / library? Since it looks exactly like [0] [0] https://khamidou.com/compilers/lisp.py/
Comment linking /compilers/lisp.py/
on “Lithp.py (~2008)”Submitted Show HN: A very simple Lisp interpreter in 250 lines of literate Python as a story · 5 points
HN discussionWell there's Make a Lisp [0]. And Lispy [1] and Lispy2 and Lisp.py [3]. [0] https://github.com/kanaka/mal [1] https://norvig.com/lispy.html [2] https://norvig.com/lispy2.html [3] https://khamidou.com/compilers/lisp.py
Comment linking /compilers/lisp.py
on “Don't Build Your Own Lisp”Submitted Lisp.py as a story · 3 points
HN discussion> http://khamidou.com/compilers/lisp.py/ Lacks an actual description of the grammar/semantics of the implemented language. Should this work: ((lambda (foo) (+ foo 3)) 39) or this (begin (define foo (lambda (a) (lambda (b) (+ a b)))) (define bar (foo 20)) (print (bar 22))) > As you can see, it turns out its pretty easy to make your own interpreter but of what language? If you don't document the language you are tryin…
Comment linking /compilers/lisp.py/
on “Ask HN: Example of annotated source code”Submitted Let's build an online code sandbox as a story · 3 points
HN discussionSmall git clone in javascript: http://gitlet.maryrosecook.com/docs/gitlet.html Small Lisp interpreter in Python: http://khamidou.com/compilers/lisp.py/ If you are interested in annotation formats other than side-by-side, many Jupyter or IPython notebooks would qualify, for example Peter Norvig's programming exercises: https://github.com/norvig/pytudes
Comment linking /compilers/lisp.py/
on “Ask HN: Example of annotated source code”Submitted Programming and negativity as a story · 3 points
HN discussionSubmitted How to write a good engineering job post as a story · 2 points
HN discussionSubmitted Sales page teardown: Snappy as a story · 2 points
HN discussionSubmitted You probably shouldn't leave your job to work on an indie game. as a story · 2 points
HN discussionSubmitted 3 Things I learned the hard way about distributed systems as a story · 1 points
HN discussionSubmitted 3 Things I Learned as an Engineer Doing Customer Support as a story · 1 points
HN discussionSubmitted Steam, Humble Bundles and sales cannibalization as a story · 1 points
HN discussionSubmitted Kite status report 1 as a story · 1 points
HN discussion