Data evolution with set-theoretic types
We explore how set-theoretic types could address how many statically typed languages do not allow libraries to evolve their public data definitions in a backwards compatible manner. The proposed solution aims to be automatically verified by the compiler and type safe.
Threlte 8
The next major release of Threlte
Archimedes – A Python toolkit for hardware engineering
A great engineer (controls being no exception) has to be part hacker, part master craftsman.
A year of Rust in ClickHouse
This story is about how ClickHouse supports Rust components in the C++ code base and the challenges we had to overcome.
Offline-First Landscape – 2025
Building Marco meant committing to IMAP and cross-platform support. Here is why offline-first proved far harder than we expected, and what we learned.
UUIDv7 Comes to PostgreSQL 18
PostgreSQL 18 adds native support for UUIDv7. A timestamp-based UUID variant that plays nicely with btree indexes. Here's what that means for you.
Making PyPI's test suite faster
See how we slashed PyPI’s test suite runtime from 163 to 30 seconds. The techniques we share can help you dramatically improve your own project’s testing performance without sacrificing coverage.
Effective harnesses for long-running agents
How an initializer agent and an incremental coding agent help the Claude Agent SDK make steady progress across many context windows.
A visual demo of Ruby's lazy enumerator
Where you get to play with an interactive demo to visualize how Enumerator::Lazy helps avoid unnecessary work
What’s New in PostgreSQL 18 – a Developer’s Perspective
PostgreSQL 18 features that change how application developers write and ship code.
The need for memory safety standards
For decades, memory safety vulnerabilities have been at the center of various security incidents across the industry, eroding trust in technology and costing billions. T…
Why is Windows still tinkering with critical sections? – The Old New Thing
The critical section may be an old dog, but it's still learning new tricks.
There's Math.random(), and then there's Math.random() (2015)
V8’s Math.random implementation now uses an algorithm called xorshift128+, improving the randomness compared to the old MWC1616 implementation.
An Introduction to Solid Queue for Ruby on Rails
Solid Queue is Rails’ default background job backend: jobs live in your database, no Redis. See how jobs, workers, and the supervisor work under the hood.
The rise of async AI programming
The workflow that's changing how software gets built.
Don't Build Multi-Agents
Frameworks for LLM Agents have been surprisingly disappointing. I want to offer some principles for building agents based on our own trial & error, and…
The double standard of webhook security and API security
Explore the surprisingly different security standards we apply to webhooks versus traditional API requests.
$20K Bounty Offered for Optimizing Rust Code in Rav1d AV1 Decoder
In March of 2023 we announced that we were starting work on a safer high performance AV1 decoder called rav1d, written in Rust. We partnered with Immunant to do the engineering work. By September of 2024 rav1d was basically complete and we learned a lot during the process. Today rav1d works well—it passes all the same…
Migrating to React Native's new architecture
Shopify successfully migrated two of its largest apps, Shopify Mobile and Shopify Point of Sale (POS) to React Native's New Architecture while maintaining weekly releases and serving millions of merchants. This migration involved a complex codebase with hundreds of screens and native modules, extensive custom…
CheerpJ 4.1: Java in the browser, now supporting Java 17 (preview)
The latest release of our state-of-the-art Java runtime that runs completely in the browser via WebAssembly, is now available. Supports up to Java 17.
A kernel bug froze my machine: Debugging an async-profiler deadlock
How I investigated and worked around a kernel bug that caused async-profiler to freeze my machine whenever I tried to use a profiler.
Context Engineering for AI Agents: Lessons
This post shares the local optima Manus arrived at through our own "SGD". If you're building your own AI agent, we hope these principles help you converge faster.
Performance hacks for faster Python code
Learn practical optimization hacks, from data structures to built-in modules, that boost speed, reduce overhead, and keep your Python code clean.
OpenTelemetry collector: What it is, when you need it, and when you don't
A practical, no-fluff guide to understanding the OpenTelemetry Collector - what it does, how it works, real architecture patterns (with and without it).
A programmer-friendly I/O abstraction over io_uring and kqueue (2022)
Consider this tale of I/O and performance. We’ll start with blocking I/O, explore io_uring and kqueue, and take home an event loop very similar to some software you may find familiar.
April Fools 2014: The *Real* Test Driven Development (2014)
Update: APRIL FOOLS! by Kaue Silveira Here at Google, we invest heavily in development productivity research. In fact, our TDD resea...
Modeling the World in 280 Characters
An exploration of the mindset, methods, and motivations behind crafting tiny, expressive shaders that combine code, art, and constraint.
Why I'm No Longer Talking to Architects About Microservices
I'm done talking about microservices: the term is confusing, discussions are abstract, and without organisational change, microservices are pointless