TLDR Dev 2026-01-01
Clock sync nightmares β°οΈ, vibe-coding users π§π§ποΈ, AI forces good code π¨
π§βπ»
Articles & Tutorials
The production bug that made me care about undefined behavior (14 minute read)
A production bug in a C++ payment processing system returned an impossible "error: true, succeeded: true" response, which the author traced to uninitialized boolean fields in a `Response` struct. This seemingly straightforward issue was a consequence of C++'s counter-intuitive default initialization rules for non-POD types, where the compiler-generated default constructor left primitive fields uninitialized. The fix involved either explicitly value-initializing the struct at the call site or providing default member initializers within the struct definition.
Clock Synchronization Is a Nightmare (18 minute read)
Clock synchronization is a persistent challenge in distributed systems, coming from the inherent inaccuracies of physical computer clocks and the absence of a single global time source. There are various methods used, from simpler algorithms like NTP for millisecond accuracy to advanced hardware-assisted PTP for nanosecond precision. For systems demanding strong consistency, like Google Spanner's TrueTime, hybrid approaches combine physical time with bounded uncertainty.
AI Is Forcing Us To Write Good Code (10 minute read)
AI agents require a higher standard of code quality. Previously "optional" best practices are now essential requirements for effective operation. Thoughtful file organization and extensive use of end-to-end type systems are also necessary for guiding agents, reducing errors, and improving context loading.
Build Software. Build Users (5 minute read)
True software quality is often missed because engineers fail to deeply understand user needs. A possible solution is to "vibe code users" first, before coding the software itself, by creating detailed, LLM-driven user agents that simulate target users and their interactions. This iterative process involves building these agentic users with defined profiles and "happy paths," then developing software, and finally allowing the simulated users to provide feedback, refining both the agents and the software.
You can't design software you don't work on (9 minute read)
Effective design for large, existing software systems requires an intimate, concrete understanding of the codebase, not generic advice. Generic software design, often found in books or blogs, is typically useless for day-to-day problems because concrete factors and existing code details always dominate practical discussions. This generic advice is instead valuable for new projects, tie-breaking existing system decisions, or shaping broad company-wide architectural strategies.
Ensue Memory Network (GitHub Repo)
Ensue Memory Network is a tool designed to provide LLMs with a persistent, growing knowledge tree, preventing them from "resetting" and losing context with each new conversation. It aims to solve the problem of LLMs starting from zero by allowing knowledge, research, and decisions to compound and carry forward across interactions.
ExoPriors (3 minute read)
ExoPriors is a powerful search engine for intelligence explosion-related research, with arbitrary SQL and vector algebra search capabilities over a growing index of documents from sources like arXiv and LessWrong. It allows users to ask nuanced questions by using techniques like vector mixing, debiasing, and temporal deltas. The platform integrates with AI models like Claude Code and Claude Web.
My role as a founder CTO: Year Eight (16 minute read)
During 2025, RevenueCat received an acquisition offer that would have nine-figure sums for the founders, leading to intense internal debate and emotional weeks. Ultimately, both co-founders decided against selling, opting to remain independent and raise a new round to continue building what they hope will be a generational company.
2025: The year in LLMs (41 minute read)
2025 was when LLMs learned to reason, allowing models to tackle complex, multi-step tasks, which in turn drove the widespread adoption of highly capable AI agents. "Coding agentsβ came to life, autonomously writing, executing, and debugging code across command-line interfaces and even mobile phones. The competitive landscape shifted a lot as Chinese open-weight models dominated capability rankings, and Google's Gemini made large strides with new models and features like Nano Banana, challenging OpenAI's previous industry lead.
The rise of industrial software (9 minute read)
AI coding is creating an industrial revolution in software, transforming its production from a craft into an increasingly automated manufacturing process. This shift reduces costs and dramatically increases output, creating a new class of low-value, easily reproducible "disposable software" or "AI slop." While traditional human-written software might become a niche, innovation is still necessary for generating value and driving technological progress alongside industrialization.
The most important software engineering news in one daily email
Join 450,000 readers for
one daily email