Reading Feed

Articles I've read with my notes and highlights

Using Git with coding agents by Simon Willison
  • Git has a mechanism called the reflog which can often capture details of code that hasn’t been committed to a permanent branch. Agents can search that, and search other branches too.
  • When you run a bisect operation you provide Git with some kind of test condition and a start and ending commit range. Git then runs a binary search to identify the earliest commit for which your test condition fails.
Announcing DuckDB 1.5.0 by The DuckDB team
  • DuckDB now natively supports the VARIANT type, inspired by Snowflake’s semi-structured VARIANT data type and available in Parquet since 2025. Unlike the JSON type, which is physically stored as text, VARIANT stores typed, binary data. Each row in a VARIANT column is self-contained with its own type information. This leads to better compression and query performance.
  • DuckDB also supports reading VARIANT types from Parquet files, including shredding (storing nested data as flat values).
I don’t know if my job will still exist in ten years
Balancing cost and reliability for Spark on Kubernetes by Justin Lee
  • On Kubernetes, we use Karpenter with EKS Auto Mode for node management.Using this setup, Spark jobs do not need to set instance types or cluster sizes. They state their CPU and memory requirements, and Karpenter picks the optimal capacity, starts nodes as needed, and removes them when they are no longer needed. This dynamic provisioning both simplified and optimized our node management.
  • In practice, our jobs using Spot Instances often failed.
  • Spot Balancer is a Kubernetes tool that manages how a Spark job’s executors are split between spot and on-demand capacity. This gives us more control over spot usage per job, not just across the whole cluster.
Introducing the Apache Iceberg File Format API - Apache Iceberg™
  • The File Format API introduces a unified, extensible layer that engines can rely on when reading and writing Iceberg data files in any supported format. It will ship in the upcoming Apache Iceberg 1.11.0 release, making it available to all engines that use the Iceberg Java readers and writers.
Specs Should Be Equations, Not Essays by Benoit Pimpaud
Anti-patterns: things to avoid by Simon Willison
  • Don’t file pull requests with code you haven’t reviewed yourself.
Agentic Search over Graphs of Long Documents (or LAD-RAG++) by Pierce Lamb
  • had recently read this blog: The RAG Obituary where the author argued that retrieving (or investigating) over long documents was better suited to a Claude Code approach: provide the raw document data in a file system and just give an agent some foundational tools to interact with that raw document data.
  • Luckily, LAD-RAG’s approach to inference was exactly this: process the document into this graph structure, then provide an “agent” a set of tools to retrieve/explore that graph system and let it decide how it wants to proceed. So LAD-RAG was ticking a lot of boxes:Use the chunking mechanism the author intended via layoutMaintain semantic connections across pagesProvide this data via a set of tools to an agent to answer questions
Data Engineering After AI by Ananth Packkildurai
How I got Claude to teach me dbt
  • LLMs are rightly infamous for confidently asserting complete nonsense, and whilst it’s got a lot better in recent months, Claude is still not perfect, as I found when I challenged another aspect of its implementation ideas:

But then…Claude saves itself by owning its error, and then going to check what the actual values of the field are for itself…nice!

  • Could I edit a file by hand by figuring out the ASCII byte values to write to disk with dd? Umm, I guess? Does that mean I don’t use a text editor? Of course not. It’s about understanding the abstraction, the capability of the tools, and making an active, conscious, and educated decision about how to use them.
  • The risks? Plenty. Getting distracted and taking Claude on a flight of fantasy that may be fun but ultimately a waste of time. Working with technology which is at the edges (or beyond) Claude’s training dataset. Not having enough context for the area and trusting blindly what Claude tells you.
Drastically Reducing Out-of-Memory Errors in Apache Spark at Pinterest by Pinterest Engineering
Anthropic Study: AI Coding Assistance Reduces Developer Skill Mastery by 17% by Steef-Jan Wiggers
  • Anthropic recently published a randomized controlled trial showing developers using AI coding assistance scored 17% lower on comprehension tests than those coding manually, with productivity gains failing to reach statistical significance
  • wonder if we’re going to have a future where the juniors never gain the skills and experience to work well by themselves, and instead become entirely reliant on AI.
  • AI is incredibly useful as a personal tutor.
  • AI can reduce task completion time by 80% for tasks where developers already have relevant skills.
AI “Vibe Coding” Threatens Open Source as Maintainers Face Crisis by Steef-Jan Wiggers
Linear walkthroughs by Simon Willison
Bruteforcing the Bitwarden master password I forgor
The AI Vampire by Steve Yegge
Introduction to PostgreSQL Indexes
  • Although it gracefully handles hash conflicts, it works better for even distribution of hash values and is most suited to unique or mostly unique data
  • Nodes in BRIN indexes store the minimum and maximum values of a range of values present in the page referred by the index. This makes the index more compact and cache friendly, but restricts the use cases for it.
  • Generalized inverted index is appropriate for when you want to search for an item in composite data, such as finding a word in a blob of text, an item in an array or an object in a JSON
Your agents need runbooks, not bigger context windows by Ben Lorica 罗瑞卡
  • Context File System (CFS). You might also hear this more broadly categorized as an Operational Skill Store. This architecture separates the expensive reasoning of a large language model from the actual storage of operational knowledge. It mirrors the way a mature engineering team works.
Lance table format explained simply
Context Management for Deep Agents by LangChain Accounts
  • Context compression refers to techniques that reduce the volume of information in an agent’s working memory while preserving the details relevant to completing the task.
  • Offloading large tool results: We offload large tool responses to the filesystem whenever they occur.
  • Offloading large tool inputs: When the context size crosses a threshold, we offload old write/edit arguments from tool calls to the filesystem.
  • Summarization: When the context size crosses the threshold, and there is no more context eligible for offloading, we perform a summarization step to compress the message history.
Inside OpenAI’s in-house data agent
Performance Tips Using Postgres and pgvector | Crunchy Data Blog
  • Have enough RAM to build new indexes. Building indexes with larger lists requires higher settings for maintenance_work_mem — if you do not have the enough memory you’ll get an error. When building the lists = 2000 index above, the the maintenance_work_mem required 1.3GB of RAM.
Demystifying evals for AI agents
  • The agent shouldn’t be able to easily “cheat” the eval. Tasks and graders should be designed so that passing genuinely requires solving the problem rather than exploiting unintended loopholes.
  • Like the Swiss Cheese Model from safety engineering, no single evaluation layer catches every issue. With multiple methods combined, failures that slip through one layer are caught by another.
  • The patterns vary by agent type, but the fundamentals described here are constant. Start early and don’t wait for the perfect suite. Source realistic tasks from the failures you see. Define unambiguous, robust success criteria. Design graders thoughtfully and combine multiple types. Make sure the problems are hard enough for the model. Iterate on the evaluations to improve their signal-to-noise ratio. Read the transcripts!
Deep Blue by Simon Willison
  • ve even faced accusations from my peers that I am actively harming their future careers through my work helping people understand how well AI-assisted programming can work.
A Single Reason To Not Vibe Code
  • Atrophy risk  of cognitive skills amongst vibe coders is something IMHO that should be looked at more closely.