TLDR Dev 2026-03-20
OpenAI acquires Astral π§Ύ, Claude Code Channels π±, thinking beats coding π€
When is code security too late? (Sponsor)
There's too much code being generated - and too many bottlenecks at the review and deploy stages. For security to work, it needs to make a big shift to the left.
Checkmarx Developer Assist runs directly within the IDE and analyzes code as it's written, modified, or refactored. It's the fast, incremental analysis that lets you code at AI speed, securely.
Developer Assist:
- Provides pre- and post-commit remediation and safe refactoring suggestions
- Analyzes both human-written and AI-generated code
- Surfaces inline feedback with context on why it matters and how to fix it
Watch the video or read the brief
π§βπ»
Articles & Tutorials
How Slack Rebuilt Notifications π£ (8 minute read)
Slack's notification system had quietly become a mess due to four conflicting preference models, settings that didn't sync across devices, and no clean way to separate βshow me activityβ from βpush me.β They rebuilt it from scratch into one unified model with a simple three-option structure and a single boolean controlling push, migrating millions of users without downtime using a read-time remapping strategy.
How OpenAI Codex Works (12 minute read)
OpenAI's Codex coding agent uses an "agent loop" that iteratively constructs prompts, interacts with the model, and executes tool calls like running commands or tests until a task is complete. Managing the growing conversation history and layered context is done through prompt caching and context window compaction to maintain performance. To support various interfaces, from CLIs to IDEs, OpenAI developed a bidirectional App Server protocol that encapsulates the core agent logic.
You're Not Paid to Write Code (6 minute read)
A dev's job isn't to write code. It's to solve problems, and the best engineers spend more time questioning requirements than typing. Code is a liability that needs to be maintained forever, so the real win is often writing less of it (or none at all).
Thinking beats coding: How to hire the right engineers in the AI era (4 minute read)
Hiring engineers based on framework knowledge is increasingly misguided as AI handles more implementation work. The traits that have always separated strong engineers are systems thinking, reasoning about tradeoffs, and clarifying problems before proposing solutions.
Stop pushing webhooks to Q5 (Sponsor)
With Svix you no longer need to.
Learn from Brex: API teams know they need webhooks, but bandwidth and timing often push them out.
β
Svix lets you launch production-ready webhooks with just 3 API calls. Go live in days, not quarters, with retries, monitoring, security, and more built in.
π Get your first 50,000 messages / mo free.
Starwind UI (Website)
Starwind UI is a collection of beautiful, accessible components for Astro projects, styled with Tailwind CSS v4, providing a "shadcn-like" experience for Astro developers. It allows users to own and fully customize component source code directly.
Push events into a running session with channels (8 minute read)
Claude Channels allow external events, like CI results, chat messages, or monitoring alerts, to be pushed into a running Claude Code session from an MCP server, enabling Claude to react while you're away. These channels, implemented as plugins for platforms like Telegram and Discord, can be two-way, allowing Claude to reply back through the same channel.
OpenAI to acquire Astral (4 minute read)
OpenAI is acquiring Astral and its widely used open-source Python developer tools, such as uv, Ruff, and ty. This acquisition is intended to accelerate the growth of OpenAI's Codex, moving it beyond simple code generation to participate in the entire software development lifecycle.
Why we banned React's useEffect (10 minute read)
Factory banned useEffect in their React codebase after production bugs convinced them it's more trouble than it's worth. Dependency arrays hide coupling, effect chains create race conditions, and it's the first thing AI agents reach for when they don't know what else to do. Almost every real useEffect use case has a better primitive: derive state inline, use a data-fetching library, put logic in event handlers, or use a key prop to force remounts.
The most important software engineering news in one daily email
Join 450,000 readers for
one daily email