Open source
Contributions to other projects
Merged pull requests to open-source projects I use but do not maintain, limited to repositories with 100 or more GitHub stars. The list is read from GitHub and cached for a day; the star counts come from the same read.
-
A JavaScript PDF generation library for Node and the browser
Add lineBreak: 'whitespace' to wrap lines only at spaces
#1814 · merged October 10, 2026 · +145 −1 across 5 files
pdfkit wrapped lines after hyphens and slashes, so a PDF split words and links that résumé parsers, search and copy and paste then read wrong. The new lineBreak: 'whitespace' option wraps only at spaces, newlines and soft hyphens.
-
Wireit upgrades your npm/pnpm/yarn scripts to make them smarter and more efficient.
fix: lru local cache eviction #71
#1481 · merged September 2, 2026 · +736 −32 across 14 files
Wireit kept a full copy of a script's output per fingerprint and never removed one; a repository declaring node_modules as output reached 73 GB. This adds per-script LRU eviction keyed on directory mtime, with a WIREIT_CACHE_MAX_ENTRIES override and tests.
-
Astro documentation
Clarify vercel middleware behavior in ISR mode
#14443 · merged August 24, 2026 · +5 −1 across 1 files
The documentation for the Astro fix below: how middleware runs under ISR on Vercel. Closed two open docs issues.
-
The web framework for content-driven websites.
fix(vercel): run edge middleware when isr is enabled
#17687 · merged August 19, 2026 · +473 −18 across 18 files
With ISR on, Vercel served every warm page from its cache without running the edge middleware, so middleware worked on the first request and then stopped. The fix routes requests through the middleware first and forwards them to the ISR function. Credited in the Astro 7.3 release post.
-
Pluggable app to allow Django developers to quickly add meta tags and OpenGraph, Twitter, and Google Plus properties to their HTML responses.
Update models.rst
#53 · merged April 17, 2017 · +20 −6 across 1 files
Reworked the model examples in the documentation, which raised template errors as written.
-
jQuery plugin to tagging like a charm!
Replace 'which' with 'key' for plugin works with non-egnlish languages
#51 · merged November 21, 2016 · +10 −10 across 2 files
The jQuery tagging plugin read keyboard events through a code that differs between layouts, so it broke on non-English keyboards; switched it to the key value.
One full-time engagement at a time, contract or employment. The terms are on the hire page.
Get in touch