Claude Code Rewrites PostHog's SQL Parser for 70x Speedup – How Property-Based Testing and Parallel Agents Worked

PostHog engineer Robbie Coomber used multiple long-running Claude Code sessions in parallel to rewrite their SQL parser, achieving a ~70x speedup over the existing ANTLR-generated C++ parser. The new parser is 16K lines of hand-rolled Rust code, plus 5K lines of tooling and tests.
Why rewrite?
PostHog transpiles user SQL to raw ClickHouse SQL for logical data views and optimizations. The parser turns SQL into an AST for downstream access control and optimization. The old ANTLR-generated parser used a generic graph-walking interpreter (an ATN — NFA-with-a-stack) with arbitrary dynamic lookahead, which was slow despite being in C++. Hand-rolled recursive-descent parsers are inherently faster.
Approach: parallel agent sessions + oracle TDD
- Tested two approaches in parallel: one focused on performance (recursive-descent with Pratt expression parsing), the other on correctness (mimicking ANTLR's behavior with explicit code). Both worked equally well.
- Used the existing C++ parser as an oracle to generate disagreements — find SQL where parsers differed, fix the new parser, repeat.
- Property-based testing generated countless SQL variations, including a test for
SELECT SELECT FROM FROM WHERE WHERE AND AND(valid SQL). - The new parser agrees with the oracle for all realistic queries; differences occur only for pathological queries.
Results
70x speedup in parsing. The final parser is a recursive-descent design with lookahead and backtracking only where necessary. Coomber notes that without AI, writing and maintaining such a hand-rolled parser would take months and likely not be worth the effort. With Claude Code, it became practical.
Key takeaway
This case study shows that parallel AI coding sessions, combined with property-based testing and an oracle for test-driven development, can dramatically improve performance-critical code. The technique — using agents to rewrite core infrastructure while relying on automated disagreement detection — is reusable for other projects.
📖 Read the full source: HN AI Agents
👀 See Also

LM Studio plugins add web image analysis for vision-capable LLMs
A developer created plugins for LM Studio that enable vision-capable LLMs to fetch and analyze images from the web, with automatic image processing and tool chaining. The plugins work with models like Qwen 3.5 9b/27b and include updated Duck-Duck-Go and Visit Website functionality.

Connecting OpenClaw to Qwen2.5 Coder: Feasibility and Considerations
Explore the possibility of connecting OpenClaw to a local Qwen2.5 Coder model with 7 billion parameters to address rate limits with API Gemini 3.

OpenClaw's atoship skill turns AI assistant into shipping manager
The atoship skill for OpenClaw allows users to describe shipping needs in plain English, then handles carrier selection, rate comparison, label purchase, and tracking. Example commands include 'ship this 1lb box to New York, cheapest option'.

Marmy: A Self-Hosted Framework for Managing AI Coding Agents Remotely
Marmy is an open-source, MIT-licensed framework built with Claude Code that lets developers manage AI coding agents and tmux sessions from a mobile app. It includes a Rust agent for development machines and a React Native app for remote control.