TLDR Dev 2025-06-16
Software craftsmanship 🛠, lessons from 9 years of bugs 💻, why GCP went down 📉
Use Async Local Storage to prevent props drilling in Next.js Route handlers (5 minute read)
Async Local Storage acts like React Context but for Node.js, storing data accessible within the same execution context. It can be used to pass a user object through multiple functions easily. The code provided uses `userContext.run()` to wrap functions needing access.
Things to avoid in JavaScript (11 minute read)
JavaScript devs should avoid common pitfalls that can lead to bugs and reliability issues. Important things to avoid include using `innerHTML` for setting text, relying on `JSON.stringify()` for object cloning, overusing regular objects as associative arrays, and utilizing `eval()` for code execution.
Lessons From 9 More Years of Tricky Bugs (8 minute read)
In this developer's nine years of tricky bugs, common coding errors involved empty cases, date-related logic, data format upgrades, and aliased dictionaries. Good testing had exploratory methods, smaller test environments, and accounted for varied access rights. Debugging relied on detailed logging, collaboration, alerting systems, and reproducing issues with minimal examples.
The Case for Software Craftsmanship in the Era of Vibes (6 minute read)
The increased accessibility of code generation through AI should elevate the standard for software quality, not just quantity. System design and taking ownership of the user experience is even more important now.
Ship delightful inboxes, notification feeds, and lifecycle messages inside your app (Sponsor)
Knock is the
complete toolkit for in-product messaging with drop-in React components and realtime stateful APIs. It's used by companies you use everyday: Vercel, Zapier, Webflow. It's got everything you need for best-in-class notifications that actually feels native to your product. It's free for 10k notifications/mo.
Get startedAmazingPrint (GitHub Repo)
AmazingPrint is a Ruby gem that provides customizable, colorized pretty-printing of Ruby objects with proper indentation, including support for Rails and IRB/PRY integration.
Wildcat (GitHub Repo)
Wildcat is a high-performance, open-source, embedded key-value database engine written in Go with C interoperability. It has a log-structured merge tree architecture, multi-version concurrency control, ACID transactions, and various iteration and configuration options for optimal read/write performance and durability.
Source code sandboxing (6 minute read)
It's easier than expected to implement source code sandboxing, which limits a program's access to system resources, across various operating systems and languages in 2025. This article goes over tools like seccomp, landlock, seatbelt, Capsicum, pledge, JSM, secmodel, and privileges, analyzing the complexity of their documentation and implementation through code examples and a case study of OpenSSH. The findings suggest OpenBSD's pledge has seen the most success due to its simplicity, while Linux's seccomp is considerably more complex.
Can AI rebuild a Rails page in Next.js? We tried it (3 minute read)
These developers attempted to rebuild a page from an internal Rails app using Cursor with different LLMs (Gemini 2.5 Pro and Claude 4). After three attempts with varying degrees of success, the LLMs almost completed the task, missing only a simple "use client" directive to make it fully functional.
One more reason to choose Postgres over MySQL (3 minute read)
A big advantage of Postgres over MySQL is Transactional DDL, which allows database schema changes within a single, reversible transaction.
Google Cloud Service Health (15 minute read)
A faulty code deployment triggered by an invalid automated quota update caused a widespread Google Cloud and Workspace service disruption with API request errors across multiple regions on June 12.
MCP Index (GitHub Repo)
The MCP Index repository provides a curated list of MCP servers, giving AI applications access to many tools and data sources across categories like official servers, web search, browser automation, memory management, weather and location, Git workflow, and business tools.
Tip: Put your Rails app on a SQL query diet (5 minute read)
To improve Rails application performance, minimize SQL query count by monitoring queries, eliminating unnecessary and duplicate queries, consolidating data access, and focusing on retrieving only the data needed for client application use cases.
The most important software engineering news in one daily email
Join 450,000 readers for
one daily email