Content for LLMs
This page provides a machine-readable index of all published content on this site. It is designed to help LLMs and AI assistants discover and understand the site's content.
Articles
- Why I Use Pi
What made me switch coding agents and why I stayed
- Coding Agents at Team Scale
Maintenance matters more than setup: keeping context fresh as codebases evolve
- The Infrastructure Around Your AGENTS.md
Your AGENTS.md is not enough. Leverage deterministic tools to enforce rules
- Skills for Domain-Specific Knowledge
Progressive disclosure for coding agents: load context only when needed
- Your AGENTS.md can be shorter now
The new wave of coding models needs less hand-holding than you think
- Smaller and simpler feedback loops
How coding agents changed the way I worked
- Upgrading the nvim-treesitter plugin
Fixing nvim-treesitter after the master-to-main rewrite
- Using AI for Tooling: Building Developer Tools for Cube
Improving productivity by improving processes around development
- Chaos and Order: A game against AI
Making games with LLMs
- Enabling font ligatures for GitHub Monaspace in Ghostty
Enabling Monaspace's stylistic sets for code ligatures in Ghostty
- Using named captures to extract information from ruby strings
Parsing structured strings with Ruby's named regex captures instead of split
- Changing perception of objects by overriding the inspect method
Making Ruby value objects look like constants by overriding inspect
- Using Rails's Attributes API to serialize Value Objects
Serializing value objects into ActiveRecord models with the Attributes API
- Three ways to ignore files in Git
.gitignore, .git/info/exclude, and core.excludesfile
- Postgres timestamp ranges in Ecto
Building a custom Ecto type for Postgres timestamp ranges
- Namespaced Rails validators
A Rails source spelunking find: custom validators can be namespaced with ::
- A global .gitignore
Setting up a global .gitignore to keep editor and OS files out of every repo
Notes
- In-Memory DuckDB with GCS Parquet Files in Cube
Querying GCS Parquet files through an in-memory DuckDB instance in Cube
- Template Literal Types for Dynamic API Generation
Using TypeScript template literal types to generate joined field names like orders.total automatically
- Smooth Theme-Aware Images with CSS Transitions
A CSS pattern for swapping images between light and dark mode with smooth transitions
- Type-Safe Domain Models with Interface Augmentation in TypeScript
Using global interface augmentation in TypeScript to define type-safe Cube models
- Adding Custom Language Support to Shiki
Adding a custom TextMate grammar to Shiki for Ghostty config syntax highlighting