Blog

Consistency isn’t repetition

Posted 4/13/20252 min read

We are terrible at being the same person two days in a row.

The Covering Index Paradox

Posted 4/10/20258 min read

SQLite index performance gap explained by B-tree height difference.

You are the easiest person to fool

Posted 3/9/20252 min read

We humans are remarkably good at deceiving ourselves.

Migrate remix eslint-config to ESLint v9

Posted 3/2/20252 min read

Custom ESLint v9 flat config for Remix from scratch.

Sitemap generation by streaming from WordPress headless

Posted 11/3/20245 min read

Optimize sitemap generation by leveraging streaming and chunked transfer encoding.

Building a Fast and Compact SQLite Cache Store

Posted 7/24/20244 min read

Discover why bun:sqlite, combined with Msgpackr serialization, offers an efficient solution for building fast and compact cache stores.

Validated forms with useFetcher in Remix

Posted 7/10/20245 min read

Build a custom 'useFetcherForm' hook to easily handle fetcher requests.

Fast, Intuitive, Smart: Restaurant search engine with Cloudflare AI

Posted 4/13/20243 min read

Discover "Cule filo" - An AI-Powered Restaurant Finder.

HTMX with Bun: A Real World App

Posted 3/5/20246 min read

Build a custom 'useFetcherForm' hook to easily handle fetcher requests.

Tower of Hanoi in P5.js + WASM

Posted 5/8/20238 min read

Implementation of the Tower of Hanoi problem using P5.js for animation and Rust compiled to WebAssembly (WASM).

Self-Hosted Password Manager with Dokku

Posted 4/19/20235 min read

Details the process of setting up a self-hosted password manager using Dokku and Vaultwarden.