About:

Andrew Healey is a software engineer with interests in programming languages and enjoys teaching, gaming, and reading.

Website:

Specializations:

Interests:

Programming language design Compilers JavaScript runtimes Game solvers Running untrusted code

Incoming Links:

Outgoing Links:

Subscribe to RSS:
The blog post discusses the development of a solver for the New York Times' Pips puzzle, which involves placing dominos on a board with specific region restrictions. The author details the coding process, including defining the pu...
The blog post discusses the development of progressively faster word counting programs using Python, C, and SIMD programming techniques. It details the performance improvements achieved at each stage, starting from a basic Python ...
The blog post discusses performance optimizations made to the disk usage program 'dumac' on macOS. The author details improvements achieved by implementing feedback from a technical community, resulting in a 28% performance increa...
The author, Andrew Healey, presents a detailed account of his efforts to create a fast alternative to the 'du -sh' command on macOS, named 'dumac'. He benchmarks its performance against existing tools, demonstrating that dumac is ...
Building a semaphore from scratch in Go reveals complexities in concurrency management, context cancellation, and FIFO ordering, along with common pitfalls like deadlocks and permit leaks.
The blog post details the author's journey in building a bytecode compiler and virtual machine (VM) for a Forth-like programming language. It explains the fundamental concepts of Forth, including its stack-oriented nature, the use...
The post discusses the development of a FUSE-based filesystem called llmfs, which utilizes a language model (LLM) to handle file operations dynamically. The author describes how the filesystem generates content on-the-fly by calli...
The blog post introduces Icepath, a 2D programming language inspired by ice puzzles from Pokémon Gold and Silver. It describes how the language operates using a cursor that navigates a grid of opcodes, executing commands to manipu...
A step-by-step guide on building a simple Unix shell, covering command execution, environment variable expansion, and piping functionalities.
The author has written a solver for a word-sliding puzzle game called Queuedle. The game has a 5x5 grid of letters, and the solver uses a best-first search algorithm to find the best possible moves. The author also discusses the o...
Queuedle is a daily word-sliding puzzle game inspired by Wordle and Scrabble. It combines the positional gameplay of Scrabble with the daily puzzle and discovery elements of Wordle. The game is designed to be played quickly or slo...
The text explains the concept of bitboards and how they are used to store game state in chess. It provides examples of how bitboards are used to manipulate game pieces and generate initial white pawn and knight attacks. The author...
The text discusses the performance of different package managers, such as npm, yarn, bun, and pnpm. The author built a toy package manager called caladan to understand more about package manager performance. The author outlines th...
The author discusses their goal of building a complete game in 2025 and their experience building game prototypes with LÖVE, a framework for making 2D games in Lua. They explore the challenges and successes in creating chess and c...
The blog post discusses the process of compiling Lisp to bytecode and running it in a custom VM. It includes examples of bytecode and the process of running it, as well as the performance of the VM and ideas for improvement.

0Generating Mazes

2024-08-08

The blog post discusses the process of generating mazes, including the types of mazes, the algorithms used, and the strategies for finding the two furthest points in the maze. The author also shares the code for the visuals and al...
The blog post discusses the author's experience with a tricky bug in a game prototype written in Python that depended on randomness. The author found two sources of randomness in the game and tried to mock them, but found a third-...
Andrew Healey built a game prototype for a 2D arena shooter, sharing notes on the patterns used and the design of the server and client systems. The core problems include managing game objects, client/server synchronization, and d...
The blog post discusses the recent optimizations added to the author's Lisp to JavaScript compiler, including constant folding and propagation, and dead-code elimination. The author explains the process of transforming code and th...
The blog post is about Andrew Healey's experience writing a Lisp to JavaScript compiler. He explains the process of choosing a Lisp to implement, parsing the Lisp code, generating JavaScript, and compiling to native. He also discu...
The author discusses adding a line profiler to his toy programming language nodots, which allows him to measure the impact of performance improvements and write faster nodots programs. He explains the line profiler internals and t...
The blog post discusses the process of compressing CS2 demo files, which are game recordings of CS2 matches. It covers the challenges of parsing and analyzing the demo data, and the methods used to optimize the data for analysis. ...
Andrew Healey built a static type checker and WebAssembly compiler for his programming language nodots. The compiler consumes an abstract syntax tree and produces WebAssembly without relying on any existing toolchains. The compile...
The blog post discusses the technical aspects of rendering Counter-Strike 2 (CS2) demos in the browser. It explains the process of parsing the demo files, rendering player equipment and positions, smoke grenades paths and effects,...