# Eugene Oleinik > Building things that work. ## Posts - [The Real Cost of a Claude Code Session Is the Language Server, Not Claude](https://evoleinik.com/posts/claude-code-memory-real-cost-per-session/): Summing RSS says 26 Claude Code sessions eat 50GB. Measuring PSS/USS says 32.5GB — and the entire swing is the TypeScript language server, not Claude. - [The Path Has To Exist: Fixing Claude Code's CI Panel for Remote Dev (Without Melting a CPU)](https://evoleinik.com/posts/claude-ci-panel-remote-mirror/): Claude Code's desktop CI panel shells out to local gh in the session's working directory — a remote path that doesn't exist on my Mac. I fixed the premise by making the path exist: first with a FUSE-T mount that pinned a CPU at 100%, then with a git-worktree mirror that doesn't. Plus the open-source tool that does it for you. - [Web 4.0 Is Open Databases](https://evoleinik.com/posts/web4-open-databases/): I asked my AI agent to plan a family escape from Chiang Mai's burning season. It reverse-engineered a proprietary air quality encoding, scraped flights, checked fuel costs, and compared 15 cities across 10 years of data. This is what Web 4.0 actually looks like: open databases + agents that query them. - [Agent Experience (AX): 10 Principles for CLI Tools AI Agents Can Actually Use](https://evoleinik.com/posts/vx-launch/): We have UX. We have DX. But AI agents are now the primary users of developer tools, and nobody's designing for them. Here are 10 principles from watching real agent behavior through usage telemetry. - [How We Make Claude Remember: Learnings Over Skills](https://evoleinik.com/posts/ai-agent-learnings/): Skills don't reliably auto-invoke. We built a three-layer system: searchable learnings files, a curation skill, and a post-commit hook that reminds you to document. - [Serve Markdown to AI Agents (10x Smaller Payloads)](https://evoleinik.com/posts/markdown-for-agents/): An entire infrastructure layer (CSS, JS, frameworks) is becoming optional for a growing class of consumers. Here's how to serve markdown via HTTP content negotiation. - [The AI Data Trap: Why You Can't Opt Out](https://evoleinik.com/posts/ai-data-trap/): Your competitor uses Claude or GPT to move faster. If you don't, you fall behind. That's the trap. - [The Best Agent Architecture Is Already in Your Terminal](https://evoleinik.com/posts/filesystem-agent-context/) - [Zero-Friction Database Branching with Neon, Git Hooks, and Claude Code](https://evoleinik.com/posts/neon-git-branching/) - [The Iteration Trap: When AI Makes You a Spectator](https://evoleinik.com/posts/iteration-trap/): The iteration trap is really a clarity trap. You iterate because you don't know what you want. - [Adding LLM Polish to a Speech-to-Text App](https://evoleinik.com/posts/adding-llm-polish-to-speech-to-text/): How I added an optional LLM post-processing step to clean up voice transcriptions, with lessons on prompt engineering and graceful degradation. - [Building an AI-Powered Changelog GitHub Action](https://evoleinik.com/posts/ai-changelog-github-action/): How a 87-line inline script became a reusable GitHub Action for AI-generated changelog summaries posted to Slack. - [CLAUDE.md: Building Persistent Memory for AI Coding Agents](https://evoleinik.com/posts/claude-md-as-agent-memory/): How to use a curated CLAUDE.md file as institutional memory for Claude Code, so your AI agent stops repeating the same mistakes every session. - [Debugging Random Reboots with Claude Code: A PSU Power Limit Story](https://evoleinik.com/posts/debugging-random-reboots-with-claude-code/): How I used Claude Code to diagnose random system reboots caused by PSU power limits - and why AI assistants excel at systematic hardware debugging. - [iTerm2 + tmux -CC: The Remote Development Setup Nobody Talks About](https://evoleinik.com/posts/iterm2-tmux-control-mode/): How iTerm2's tmux control mode turns remote SSH sessions into native Mac tabs with persistent sessions, proper scrollback, and zero friction. - [The Loop Changes Everything: Why Embodied AI Breaks Current Alignment Approaches](https://evoleinik.com/posts/the-loop-changes-everything/): Chat models are stateless and safe by architecture. Embodied robots need persistent loops, memory, and self-models - and that's where alignment gets genuinely hard. - [Preserve macOS App Permissions Across Rebuilds with Self-Signed Certificates](https://evoleinik.com/posts/macos-dev-signing-preserve-permissions/): Stop re-granting Accessibility permissions after every rebuild by creating a stable self-signed certificate. - [Speed Up Syncthing File Sync Discovery (From 11 Seconds to 2)](https://evoleinik.com/posts/syncthing-faster-sync-discovery/): Reduce Syncthing's file detection delay from 10+ seconds to under 3 by tuning fsWatcherDelayS on the sending machine. ## About - [About](https://evoleinik.com/about/) - [GitHub](https://github.com/evoleinik) - [LinkedIn](https://linkedin.com/in/evoleinik) - [Email](mailto:ev@evoleinik.com)