#644 – September 21, 2025
without slowing the team down
How software engineers make productive decisions
8 minutes by Fran Soto
Most teams get stuck because they treat every decision like it's permanent. Many choices are actually reversible. You can try something, see if it works, and undo it if needed. Save extra caution for truly irreversible decisions like data migrations or major security changes.
Take Control of User Access with WorkOS
sponsored by WorkOS
As your app scales, managing roles and permissions gets messy. Hard-coded access slows you down and fails to meet enterprise demands. WorkOS RBAC gives you structured, scalable access control with clean APIs, a powerful dashboard, and built-in single sign-on and automated user provisioning.
Hosting a website on a disposable vape
6 minutes by Bogdan Ionescu
Bogdan collected disposable vapes and discovered they contain surprisingly capable microcontrollers. The vape uses PY32 chips with 24KB of flash memory and 3KB of RAM. By using semihosting and SLIP protocol, he turned one into a working web server that connects through a USB debugger. Despite the tiny specs, the server loads pages in just 160ms and hosts an entire blog post using only 20% of available storage.
The last programmers
11 minutes by Xipu Li
We're approaching the end of hand coding as AI tools become more powerful. Xipu spends weeks writing design documents in plain English instead of looking at actual code, letting AI handle implementation. This shift divides developers into two camps: experimenters who embrace AI shortcuts and guardians who value deep technical understanding. As coding becomes commoditized, success will depend on understanding users, knowing what to build, and effective distribution rather than technical skills.
Why are event-driven systems hard?
6 minutes by Sid
Events are small messages that notify services when something happens, like "user clicked button" or "payment processed." This approach makes systems flexible but creates complex challenges at scale. Key challenges include message versioning, observability, failure handling, idempotency, and eventual consistency. Sid highlights essential practices for building resilient event-driven architectures.
Writing an operating system kernel from scratch
24 minutes by Uros Popovic
Uros describes building a minimal time-sharing operating system kernel for RISC-V using Zig instead of traditional C. The kernel implements basic threading with timer-based context switching between user-mode threads and a supervisor-mode kernel. It uses OpenSBI for hardware abstraction and runs as a unikernel where application code is bundled directly with the OS. It demonstrates core OS concepts like interrupt handling, system calls, and memory virtualization in an educational setting.
And the most popular article from the last issue was: