You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My latest article is <Link href={`/${allPostsData[0].id}`}>{allPostsData[0].title}</Link>.
58
+
</p> */}
59
+
<p>
60
+
I enjoy understanding how things work and making them faster. Like how SIMD can make some programs <Linkhref="/counting-words-at-simd-speed">orders of magnitude quicker</Link>.
61
+
</p>
62
+
<p>
63
+
I wrote <Linkhref="/maybe-the-fastest-disk-usage-program-on-macos">one of the fastest disk usage programs on macOS</Link> by
64
+
using macOS-specific system calls, and then
65
+
made it faster by <Linkhref="/optimizing-my-disk-usage-program">reducing thread scheduling overhead and lock contention</Link>. I
66
+
also showed how you can beat the performance of <code>grep</code> by just <Linkhref="/beating-grep-with-go">using goroutines</Link>.
67
+
</p>
68
+
<p>
69
+
My <Linkhref="/installing-npm-packages-very-quickly">experimental package manager</Link> uses simple concurrency patterns to be faster than every package manager aside from Bun (which is 11% faster) when cold installing from a lockfile.
70
+
</p>
71
+
<p>
72
+
I've created a few small programming languages and related tool, including a <Linkhref="/lisp-to-javascript-compiler">Lisp-to-JavaScript compiler</Link>, which I turned into an <Linkhref="/lisp-compiler-optimizations">optimizing compiler</Link>, and for which I wrote a <Linkhref="/compiling-lisp-to-bytecode-and-running-it">bytecode VM</Link>.
73
+
I also build an <Linkhref="/adding-for-loops-to-an-interpreter">interpreted language</Link> with a C-style syntax, which I <Linkhref="/profiling-and-optimizing-an-interpreter">profiled and made faster</Link>; I later added a <Linkhref="/a-custom-webassembly-compiler">WebAssembly compiler</Link> and a <Linkhref="/adding-a-line-profiler-to-my-language">line profiler</Link>. I also <Linkhref="/porting-boolrule-to-rust">ported an expression engine</Link> to Rust.
74
+
</p>
75
+
<p>
76
+
Below, you can see my <Linkhref="/icepath-a-2d-programming-language">2D programming language</Link> calculating the first ten numbers in the Fibonacci sequence.
77
+
</p>
78
+
<Fibonacci/>
79
+
<p>
80
+
I really enjoy games (chess, scrabble, sudoku), puzzles, and solvers. I built my <Linkhref="/building-my-own-chess-engine">own chess engine</Link>, and created visualizations for understanding <Linkhref="/visualizing-chess-bitboards">how bitboards can be used to store chess game state</Link>. I wrote about <Linkhref="/building-game-prototypes-with-love">building game prototypes in Lua</Link>, how to <Linkhref="/2d-multiplayer-from-scratch">build 2D multiplayer from scratch</Link>, a daily puzzle game I designed called <Linkhref="/how-i-made-queuedle">Queuedle</Link>, a <Linkhref="/solving-queuedle">solver for it</Link>, and some <Linkhref="/generating-mazes">maze generation algorithms</Link>.
81
+
</p>
82
+
<p>
83
+
My favorite solver I've worked on is <Linkhref="/building-and-solving-sokoban">for Sokoban</Link>.
84
+
</p>
85
+
<p>
86
+
I'm a big fan of classic FPS games like Quake and Counter-Strike. I worked on a tool to <Linkhref="/rendering-counter-strike-demos-in-the-browser">analyze Counter-Strike demos in the browser</Link>, and a program that <Linkhref="/compressing-cs2-demos">compresses Counter-Strike demos by 13x</Link>.
87
+
</p>
88
+
<p>
89
+
I did a <Linkhref="/my-time-at-the-recurse-center">six week batch at the Recurse Center</Link> where I worked on many projects and paired with many excellent programmers. One of the projects I worked on was a text editor that I <Linkhref="/making-a-text-editor-with-a-game-engine">built using a game engine</Link>, and to which I <Linkhref="/implementing-highlighting-search-and-undo">added highlighting, search, and undo</Link>.
90
+
</p>
91
+
<p>
92
+
I've written about <Linkhref="/sandboxing-javascript-code">how to sandbox JavaScript</Link> using Deno, how to <Linkhref="/running-untrusted-python-code">sandbox Python using seccomp</Link>, and how to take over the <code>getrandom</code> system call <Linkhref="/making-python-less-random">using ptrace</Link>.
93
+
</p>
94
+
<p>
95
+
I'd like to write more about AI. I recently created <Linkhref="/filesystem-backed-by-an-llm">a FUSE filesystem where file operations are handled by an LLM</Link>.
96
+
</p>
47
97
<Image
48
-
width={140}
49
-
height={140}
50
-
src={meAvatar}
51
-
alt="Andrew Healey."
52
-
quality={100}
98
+
src={mePresenting}
53
99
placeholder="blur"
100
+
alt="Presenting: When Does Development Spark Joy? Sentimental analysis of commit messages."
Hey, I'm Andrew Healey. I'm a software engineer at Vercel, and I'm interested in the <Linkhref="/my-time-at-the-recurse-center">joy of computing</Link>. I've written{" "}
I live in the UK with my wife, our three young children, and a cat called Moose.
107
+
</p>
108
+
<p>
109
+
I've worked remotely at Vercel since 2021, mostly on the distributed build pipeline that runs untrusted customer code, as well as the underlying ephemeral compute platform.
110
+
</p>
111
+
<p>
112
+
Technical books I recommend include <i>Crafting Interpreters</i> and <i>The Computational Beauty of Nature</i>. For general fiction, I recommend the authors Patricia Lockwood and Ben Lerner. For sci-fi, I recommend the <i>Dune</i> series (1-6 are amazing, 7-9 are good) and the <i>Remembrance of Earth's Past</i> trilogy. For non-fiction, I recommend <i>The Orchid Thief</i> and <i>Nothing To Envy</i>.
113
+
</p>
114
+
<p>
115
+
I love getting email and you can reach me by running the following code in your browser's developer console: <code>atob('aGVhbGV5Y29kZXNAZ21haWwuY29t')</code>.
0 commit comments