Andrew Healey

  1. Solving Queuedle

    Writing a game solver for Queuedle.

    Published

  2. How I Made Queuedle

    A daily word-sliding puzzle game inspired by Wordle and Scrabble.

    Published

  3. Visualizing Chess Bitboards

    Brief introduction to chess bitboards and move generation with animations.

    Published

  4. Installing NPM Packages Very Quickly

    Building a package manager with a fast install step.

    Published

  5. Building Game Prototypes with LÖVE

    Chess, card games, and Lua.

    Published

  6. Compiling Lisp to Bytecode and Running It

    Extending my Lisp compiler and adding a fast virtual machine.

    Published

  7. Generating Mazes

    Visualizations and techniques for different maze generation algorithms.

    Published

  8. Making Python Less Random

    Using ptrace to intercept and modify a process's getrandom syscall.

    Published

  9. 2D Multiplayer From Scratch

    Exploring patterns and systems for creating realtime browser games.

    Published

  10. Lisp Compiler Optimizations

    Smaller programs that do less work.

    Published

  11. Lisp to JavaScript Compiler

    Transpiling Lisp to JavaScript using Rust.

    Published

  12. Adding a Line Profiler to My Language

    Creating my own developer tooling, and some thoughts on line profilers.

    Published

  13. Compressing CS2 Demos

    Shrinking demo data by a factor of 13x.

    Published

  14. A Custom WebAssembly Compiler

    Making my programming language 4000x quicker, and adding a static type checker.

    Published

  15. Rendering Counter-Strike Demos in the Browser

    Building a demo player for coaches and analysts to visualize CS2 gameplay.

    Published

  16. Porting Boolrule To Rust

    Building a fast boolean expression evaluation engine.

    Published

  17. Running Untrusted Python Code

    Using seccomp and setrlimit to build a Python sandbox.

    Published

  18. Building Family Websites

    The highest user-joy-per-visit than any other project I'll ever work on.

    Published

  19. My Own Python Web Framework

    Using Vercel's Build Output API to explore some framework ideas.

    Published

  20. My Time At The Recurse Center

    Thoughts and reflections on my six week batch.

    Published

  21. Sandboxing JavaScript Code

    An overview of the sandboxing landscape, and some experiments with Deno.

    Published

  22. Implementing Highlighting, Search, and Undo

    How I added three new features to my text editor.

    Published

  23. Making a Text Editor with a Game Engine

    Writing my own quirky version of nano using the 2D game engine Ebitengine.

    Published

  24. Profiling and Optimizing an Interpreter

    Rewriting library code to speed up my interpreter benchmark by 28%.

    Published

  25. Adding For Loops to an Interpreter

    Extending an existing tree-walk interpreter step by step.

    Published

  26. A Personal File Share CLI

    Sharing files with my friends from the terminal.

    Published

  27. CodeGuessr

    Building a guessing game for popular open source projects.

    Published

  28. Recent Projects I Didn't Finish

    A few ideas I tried. Including flamegraphs, fast HTTP routing, and infinite chess.

    Published

  29. Virtual Ants

    Artificial life and Langton's ant.

    Published

  30. Implementing Bitcask, a Log-Structured Hash Table

    Shipping a speedy key/value store for datasets larger than memory.

    Published

  31. Building and Solving Sokoban

    Creating an automated solver for Sokoban puzzles.

    Published

  32. Beating grep with Go

    Writing a fast file searching program and benchmarking it.

    Published

  33. When I'm Sad My Computer Sends Me Cats

    I wrote a program that sends cats to my phone when I'm sad at the computer.

    Published

  34. Designing a Code Playground for Adventlang

    Using Web Workers and WebAssembly to build a speedy UI.

    Published

  35. Designing a Programming Language for Advent of Code

    What is the minimum amount of features I need to not hate my life during this festive season?

    Published

  36. DOOM Rendered via Checkboxes

    WebAssembly meets 16000 HTML checkboxes.

    Published

  37. Porting Niceware to Rust

    The sensation of incremental progress when programming with Rust.

    Published

  38. Creating the Golfcart Programming Language

    Writing an interpreter from scratch.

    Published

  39. Listening to Satellites with my Raspberry Pi

    Building a live dashboard with the help of a few hardware modules.

    Published

  40. Computer Vision and Embroidery

    Picking the correct thread colors from embroidery hoop images.

    Published

  41. GeoGuessing with Deep Learning

    Applying photo geolocation estimation to the game of GeoGuessr.

    Published

  42. WebAssembly Search Tools for Static Sites

    Building a technical demo to understand this blossoming area of technology.

    Published

  43. Generating Text With Markov Chains

    Generating random but familiar text by building Markov chains from scratch.

    Published

  44. Personal Websites and Internet Writing

    People that inspire me the most (and that I steal from most regularly).

    Published

  45. Building My Own Chess Engine

    Exploring the computational complexity of chess. Code snippets in Python so you can do the same.

    Published

  46. Writing Software for an Among Us League

    Making a casual game more competitive and arguing with my friends about Elo systems.

    Published

  47. Learning the Ink Programming Language

    Picking up Ink and giving back to the community.

    Published

  48. Privacy Focused Analytics From Scratch

    Learning more about user data collection by writing my own analytics system.

    Published

  49. Boids in WebAssembly Using Go

    The famous flocking simulation built with the Ebiten game library.

    Published

  50. Creating Randomness Without Math.random

    Building a replacement for JavaScript's random number generator.

    Published

  51. A Practical Introduction to Graphs (Network Diagrams)

    Calculating the path between two countries with the least border crossings.

    Published

  52. Polyfilling the Fetch API for Old Browsers and Node.js

    A quick look at polyfilling, along with with solutions for both environments.

    Published

  53. The Flow of Knowledge in a Team (or Why I Dig Tickets)

    Engineering tickets often end up meaning a lot. For the product but also emotionally for the individual.

    Published

  54. Adding Comments to Gatsby with Netlify Serverless Functions + GitHub

    Use Netlify serverless functions to let users add comments to a static website.

    Published

  55. Hacking Together an E-ink Dashboard

    A prototype Raspberry Pi dashboard to save me talking to my smart assistant.

    Published

  56. How I'm Working Remotely

    Writing code, working (almost) solo, and exploring remote-life during the UK lockdown.

    Published

  57. Twitter Ticker Tape with a POS58 Receipt Printer

    Building a fun toy with my Raspberry Pi, Python, and Tweepy.

    Published

  58. Book Review: The Developer's Guide to Content Creation

    Discussing an amazing resource for those writing for developers.

    Published

  59. DEV Article Analysis

    Building a tool for users to analyze their work over time.

    Published

  60. Gatsby Sparks Joy

    Migrating from Jekyll to Gatsby.

    Published

  61. Hardest JavaScript Puzzle I've Ever Solved

    Writing JavaScript with a one character width restriction.

    Published

  62. Let's Build a CAPTCHA Generator with Node.js

    Using Canvas, Express, and a GitHub Action.

    Published

  63. Cloning Memcached with Go

    I'm really starting to enjoy Go.

    Published

  64. My First Golang Program

    Conway's Game of Life in Ebiten.

    Published

  65. I Built a Bot to Try and Get Money Back From My Internet Provider

    My most popular project yet!

    Published

  66. My Experience with Pair Programming

    Pairing for fun and profit.

    Published

  67. An Introduction to Caching on the Web, With Examples in Python

    A high-level overview of caching.

    Published

  68. What If I Want My Website to Last for 100 Years?

    Prepping for the internet to happen.

    Published

  69. A Tutorial on Tricking Google: Encoding Messages in Apostrophes

    Using character codes to hide in plain sight.

    Published

  70. Your First Open-Source Pull Request: a Walkthrough

    Making a small change to the Jekyll project.

    Published

  71. Refactoring JavaScript for Performance and Readability (with Examples!)

    A few tips that have really helped me.

    Published

  72. Saving Data in JavaScript Without a Database

    The title is a lie I also show how to use SQLite.

    Published

  73. Interview Question: Implement a Progress Bar

    Different ways to do one thing well.

    Published

  74. Solving Puzzles With High-Performance JavaScript

    It's fast but is it worth it?

    Published

  75. A Tiny Project, From Inception to Deployment

    A JavaScript webscraper for MDN.

    Published

  76. Continuous Deployment to Glitch via GitHub Webhooks

    Joining two of my favorite ecosystems together.

    Published

  77. Fun With Linear Time: My Favorite Algorithm

    Breaking down the Boyer–Moore majority vote algorithm with examples in Python.

    Published

  78. What They Don't Teach You at a Computer Science Masters

    Bubblesort isn't everything.

    Published

  79. The Weird Rules I Set Myself That Got Me a Job

    Advice that I haven't seen elsewhere.

    Published

  80. How to Write an Awesome GitHub README

    Attract and educate.

    Published

  81. Talking to Python from JavaScript (and Back Again!)

    Let's learn how to pass data back and forth between languages.

    Published

  82. Learn the Storage API by Building a Note Taking App (Tutorial)

    Learning and building.

    Published

  83. Embed Your Latest DEV Posts Anywhere (Tutorial)

    Using the DEV.to API with Node.

    Published

  84. Build a Python Bot to Find Your Website's Dead Links (Tutorial)

    Crawling a website for missing resources using the Python standard library.

    Published

  85. Answered: What the Heck is Code Golf?

    I love code golf and you should too!

    Published

  86. JavaScript One-Liners That Make Me Excited

    Dust off your ternary expressions, we're going in.

    Published

  87. Need a Friend? Write a Reddit Bot with Python to Follow You Around (Tutorial)

    The basics of building a Reddit bot that listens for phrases and replies to them.

    Published

  88. Earn a Build Passing Badge on GitHub! Testing Your Express App with Travis CI (Tutorial)

    How to setup Travis CI for a Node/Express project.

    Published

  89. Coding a Live Cam for the Raspberry Pi in Python (Tutorial)

    A lo-fi solution for streaming images from your Raspberry Pi to the web.

    Published

  90. How Flappy Bird Got Me My Start in Software

    An overview of how I learned to code. Also a bit on my experience during my CS Masters.

    Published

  91. A Day in the Life of a Mediumly Productive Software Engineer

    Living, working, building, and drinking too much coffee.

    Published

  92. Kicking Butt and Taking Names With WebSockets (Tutorial)

    A little on the history of WebSockets and a brief overview on how to use them in JavaScript.

    Published

  93. Two Things About My First In-house Software Job That I Didn't See Coming

    On enjoying being part of a team.

    Published

  94. Creating Cute GitHub Badges Based Off a Project's Mood (Node.js)

    Creating GitHub badges based off the time when most people contribute to a GitHub project.

    Published

  95. Real-Time Streaming of Every Emoji Posted as a Comment to Reddit.com

    Building a website which live streams every emoji posted to Reddit.com.

    Published

  96. I Ported Sudoku to Your URL Bar and It Plays like a Dream

    Goofy project in which you can play Sudoku entirely within your URL bar.

    Published

  97. Cloning Dominos Order Tracker as a Microservice with Node.js and Firebase!

    Writing an order tracker with Node, Express, and Firebase.

    Published

  98. Benchmarking WebSocket Servers with Python!

    Benchmarking websocket servers and frameworks with async Python.

    Published

  99. Leetcode - Episode 17 - Moving, Shaking, and Folding (3 x E)

    Solutions for: Move Zeroes, Merge Two Sorted Lists, and Merge Two Binary Trees.

    Published

  100. Leetcode - Episode 16 - Pretty Efficient (3 x E)

    Solutions for: Flipping an Image, Leaf-Similar Trees, and Maximum Depth of N-ary Tree.

    Published

  101. Leetcode - Episode 15 - Three Tree Qs (3 x E)

    Solutions for: Invert Binary Tree, N-ary Tree Postorder Traversal, and N-ary Tree Preorder Traversal.

    Published

  102. Leetcode - Episode 14 - Short, Easy Solutions (3 x E)

    Solutions for: Monotonic Array, Max Consecutive Ones, and Contains Duplicate.

    Published

  103. Leetcode - Episode 13 - Finding My Stride (3 x M)

    Solutions for: Range Sum of BST, Max Increase to Keep City Skyline, and Custom Sort String.

    Published

  104. Leetcode - Episode 12 - Starting Early (3 x E)

    Solutions for: Verifying an Alien Dictionary, Reverse Only Letters, and Backspace String Compare.

    Published

  105. Leetcode - Episode 11 - Faster than 99.17% (1 x M, 2 x E)

    Solutions for: Reverse Vowels of a String, Isomorphic Strings, and Reverse Words in a String.

    Published

  106. Leetcode - Episode 10 - Short Solutions (1 x M, 2 x E)

    Solutions for: Single Number II, Fibonacci Number, and Ransom Note.

    Published

  107. Leetcode - Episode 9 - Trudging Through (3x E)

    Solutions for: Majority Element, Detect Capital, and Not Boring Movies.

    Published

  108. Leetcode - Episode 8 - Breaking Out Some Mediums (3x M, 1x E)

    Solutions for: Encode and Decode TinyURL, Insert into a Binary Search Tree, Minimum Add to Make Parentheses Valid, and Goat Latin.

    Published

  109. Leetcode - Episode 7 - Getting More Pythonic (3x E)

    Solutions for: Two Sum, Valid Anagram, and Length of Last Word.

    Published

  110. Leetcode - Episode 6 - Progressively Harder (3x E)

    Solutions for: Keyboard Row, Reorder Log Files, and Single Number.

    Published

  111. Leetcode - Episode 5 - Fastest Solutions Yet (3x E)

    Solutions for: Uncommon Words from Two Sentences, Search in a Binary Search Tree, and Fizz Buzz.

    Published

  112. Leetcode - Episode 4 - gnivloS melborP (3x E)

    Solutions for: Reverse Words in a String III, Sort Array By Parity II, and Reverse String.

    Published

  113. Leetcode - Episode 3 - The Streak Continues (3x E)

    Solutions for: Sort Array By Parity, Robot Return to Origin, and Self Dividing Numbers.

    Published

  114. Leetcode - Episode 2 - Three More Easys

    Solutions for: N-Repeated Element in Size 2N Array, Univalued Binary Tree, and Unique Morse Code Words.

    Published

  115. Leetcode - Episode 1 - Three Easys

    Episode one of tacking Leetcode problems and discussing solutions. Jewels and Stones, Unique Email Addresses, and To Lower Case.

    Published