Technical Journal

Insights on Systems & AI

Personalizing Websites at the Edge

A bookmarklet for United's flight search led to a broader idea: users no longer have to accept default web UX as fixed. AI makes local, runtime personalization much more practical.

ai bookmarklet web ux

Claude Code's Silent Truncation Bug: Why AI Couldn't Fix a 5-Second Regex

Claude Code silently truncates lines longer than 2,000 characters — no error, no warning. Minified HTML, bookmarklets, and SVGs all hit this. I watched it loop for 20 minutes on a five-file project it could never fully read. Diagnostic, repro scripts, and workarounds included.

ai claude-code debugging developer-tools

Getting Claude Code's Multi-Agent Team Mode to Actually Work

I tried to test Claude Code's multi-agent team mode with split panes in iTerm2. The it2 CLI was broken, the docs were confusing, and I spent the whole session yak-shaving. Here's what actually works.

ai claude-code iterm2 python

AI Exposes Your Slow Feedback Loops

AI coding assistants amplify both velocity and bottlenecks. Teams seeing 10x gains already had fast feedback loops. Here's why your infrastructure is now the bottleneck.

ai developer-tools testing productivity

The 'Bring Your Own Coach' Pattern: Building AI-Powered Apps Without Integrating AI

I had 10 years of workout data and wanted AI coaching for my strength training. Instead of building AI into my app, I built something simpler: a way to let any LLM generate workout configs. Zero AI code, zero costs, perfect privacy.

ai llm mobile-apps privacy

Why is Gemini CLI So Slow? Investigation into 35 Second Startup Times

Deep dive into why Google's Gemini CLI takes 35-60 seconds to start. Analyzing 129,681 syscalls, MCP server initialization, and fundamental architectural issues affecting developer productivity.

gemini-cli cli-performance google-gemini developer-tools

Troubleshooting 1Password PassKeys on Android/(Android Chrome)

While trying to login a passkeys protected account on Android, I ran into a peculiar issue: I kept getting shown a message saying "No passkeys found".

VFS Global Charges for Customer Service While Breaking UX With a Non-Functional Keyboard

If you've applied for a visa lately, you’ve likely dealt with VFS Global, a private company that holds a monopoly on visa processing for over 60 governments worldwide. While...

Using a GitHub template repo for Golang projects

How to rewrite import paths with a bash one-liner when starting a repo from a github template

golang git github code

Leveraging HAProxy Programs to Test URL Rewrite Rules

Learn how to use the `program` directive in HAProxy to test URL rewrite rules and routing logic. This guide covers setting up HAProxy with `Gor` for traffic capture and verification, ensuring your configurations work as expected.

haproxy test goreplay networking

Debugging shell-startup latency while using Starship Prompt

Troubleshooting slowdown issues with the Starship terminal prompt during terminal startup. Here's how I fixed it and sped things up.

terminal starship zsh

Thoughts about time - part one

Talk about working with "time" with software engineers and you're pretty much guaranteed someone is going to post a meme. I was recently talking with a co-worker about managing...

time clocks networking computer science

HAProxy - a tale of two queues

Discover how to optimize HAProxy performance by tuning queue and networking settings. This guide explores handling increased traffic, adjusting `maxconn` and `tcp_max_syn_backlog`, and verifying system state to ensure efficient load balancing.

haproxy investigation networking performance

Scaling RabbitMQ with shared exchanges

Sharded exchanges can be enabled by using the a plugin with rabbitmq. It is useful for distributing load across multiple queue for the same routing keys. Using sharded exchanges,...

rabbitmq performance

Understanding and Implementing Causal Profiling with Coz and Cozgo

cozgo, a Go wrapper for the Coz library for causal profiling in Go projects.

golang cozgo profiling performance

Good old bash for startup dependency management

A simple and clean way to wait for dependencies to be available in Unix*y environments. I often use this script to orchestrate my docker containers.

bash unix docker services

A fun integer overflow bug investigation

Explore a fun investigation into an integer overflow bug in Metabase. Learn how a simple unit conversion mistake led to a `NumberFormatException` and how the issue was resolved by debugging logs and updating the database.

metabase bug investigation troubleshooting

Fast data migration from MySQL to Redshift on the command line

Learn how to migrate large datasets from MySQL to AWS Redshift using command-line tools. This guide covers extracting data, transforming it for Redshift, and loading it via S3, achieving efficient data transfer with Unix pipes and filters.

mysql mongo aurora aws

Stay in the loop

Get notified when new posts are published. No spam, unsubscribe anytime.