Philip Z
philz.dev
Philip Z
@philz.dev
ttl.sh is very cool. Limited-duration container registry, perfect for testing things!
ttl.sh - Anonymous & Ephemeral OCI Registry
Free, anonymous, and ephemeral OCI registry. No sign-up required. Push your images and they expire automatically.
ttl.sh
February 5, 2026 at 9:43 PM
Wrote blog.exe.dev/expensively-... to dig into how cache reads costs dominate LLM agent conversations. Several visualizations and one terrible pun included!
February 3, 2026 at 5:28 PM
docs.stripe.com/stripe-data/... looks like they’ll deliver a parquet file to s3 which is pretty close. Duckdb will happily read it.
Export data to Amazon S3
Deliver Stripe data as Parquet files to Amazon S3 buckets with 3-hour updates using IAM roles and optional PGP encryption.
docs.stripe.com
February 1, 2026 at 5:26 AM
Look on my Works... This is the coding agent I've been busy building.
January 20, 2026 at 7:40 PM
Thanks for the kind write-up!
January 7, 2026 at 8:08 PM
Follow the “login” button (top right) on the front page and try it without a laptop!
December 30, 2025 at 4:37 AM
It’s not supposed to. Ping us on discord or DM or whatever and we can look into it.
December 24, 2025 at 10:05 PM
What we are working on right now: blog.exe.dev/meet-exe.dev

We all need more virtual machines. We keep building software to work around the fact that VM infrastructure is clunky. Let's have good VM infrastructure instead.
December 15, 2025 at 11:52 PM
"PRAGMA busy_timeout=1000;" is often helpful.
October 28, 2025 at 2:43 AM
Ctrl-P Ctrl-Q detaches from "docker -it alpine:latest sleep 10000". (And ~^Z or ~. for SSH.) (And Ctrl-B d for tmux.)
September 11, 2025 at 4:14 PM
This was fun. Wrote a bookmarklet to add an agent (bring your own anthropic key) to any (excluding strict CSPs) website. blog.philz.dev/blog/itsy-bi...
Itsy Bitsy Agent Bookmarklet (or, adding an agent to a PyBricks simulator)
blog.philz.dev
August 12, 2025 at 1:31 PM
Inject requestids into a function name (generate a pass through dynamically one way or another) and attach a sampling profiler. Log slow requests and then find them in the profile.
July 25, 2025 at 3:26 PM
Wrote up a complete example of managing Grafana dashboards in code at philz.dev/blog/grafana/.
Infrastructure as Code for Grafana Dashboards
philz.dev
July 24, 2025 at 12:51 AM
I'm ready for data visualization competition.
June 21, 2025 at 9:17 PM
LLM agents loops with tool use are handy and surprisingly quick to write.

sketch.dev/blog/agent-l...
sketch blog: The Unreasonable Effectiveness of an LLM Agent Loop with Tool Use
sketch.dev
May 15, 2025 at 7:56 PM
Rejecting git pushes because prettier et alia failed... just to run the formatter and push again is nonsense. Big quality of life improvement to just let the merge queue take care of it. sketch.dev/blog/lightwe...
sketch blog: A Lightweight Merge Queue using GitHub Actions
sketch.dev
May 9, 2025 at 5:18 PM
Reposted by Philip Z
If you want to try out the next version of sketch.dev (that you can run on an existing code base), send me a message and I'll add you.
April 18, 2025 at 7:19 PM
I've seen the "root span" be the "page load" (i.e., the HTTP request that then initiates the websocket connection).
February 19, 2025 at 1:58 AM
Ultimately a profile is a collection of stacks and you can convert into a greppable format and filter appropriately. I spent too much time on blog.philz.dev/blog/flamedu... at some point :)
Drawing flamegraphs with DuckDB and Vega-Lite
It's not all it's cracked up to be.
blog.philz.dev
December 13, 2024 at 1:00 AM
In which we learn a bit about language servers: blog.philz.dev/blog/languag...
Exporting Language Server Data to SQL
It's not all it's cracked up to be.
blog.philz.dev
November 10, 2024 at 11:35 PM
Reposted by Philip Z
Found myself nodding along to the entirety of https://jeremymorrell.dev/blog/a-practitioners-guide-to-wide-events/. Log one, wide, structured line per request. Include everything you can think of. (And then, hook up your data warehouse and tooling to it!)
November 10, 2024 at 10:48 PM