TLDR Dev 2024-08-12
Donβt trust abstractions π€, OpenDevin paper π€, prevent resume-driven development π
π§βπ»
Articles & Tutorials
Build your own React state management library in under 40 lines of code (6 minute read)
This article explains how to create a simple React state management library using the `useSyncExternalStore` hook introduced in React 18. It outlines the key components of the library, including subscribing to state changes, retrieving the current state, and updating the state. The article also compares this approach to using React Context and discusses potential improvements like using reducers and immer for state management.
Building a highly-available web service without a database (12 minute read)
This blog post shows off a novel web dev architecture that removes the need for a separate database. It uses in-memory data storage, periodic snapshots, and transaction logs for high availability. The author details how the Raft Consensus Protocol can be integrated to achieve 99.999% availability, making it suitable even for demanding enterprise clients.
Why Your Data Stack Won't Last - And How To Build Data Infrastructure That Will (11 minute read)
Data infrastructure projects are often quickly replaced and difficult to maintain. To prevent this, it's important to avoid "resume-driven development," where teams prioritize trendy technologies over practical needs, and the "key person dependency" problem, where only one person has all the knowledge of a system.
Microfrontends should be your last resort (10 minute read)
Microfrontends (MFEs) are often touted as a solution for large, complex front-end applications, but they should be a last resort. While MFEs can offer benefits like team independence and modularity, they also introduce complexities like increased deployment overhead and a distributed monolith if not implemented correctly. Before adopting MFEs, prioritize refactoring your codebase and try starting with a modular monolith first.
7 Things I've learned building a modern TUI Framework (13 minute read)
While building a modern TUI (Terminal UI) framework, this author found that it's important to have smooth animation in terminals, achieved through techniques like overwriting instead of clearing, single-write updates, and the Synchronized Output protocol. He also advocates for DictViews for efficiently comparing data structures, and lru_cache for improving performance by caching function results.
Programmers Should Never Trust Anyone, Not Even Themselves (9 minute read)
Programmers should embrace a mindset of skepticism and constant verification, as trusting abstractions can lead to unexpected problems. Abstractions, while necessary for efficient thinking, are often leaky and can fail in unpredictable ways, so it's important to understand the underlying mechanisms. That's why "trust, but verifyβ is necessary when working on a project with a lot of abstractions.
Mitigating OAuth's recently discovered Open Response Type vulnerability (Sponsor)
How Clerk mitigated the recently discovered Open Response Type vulnerability. We dive into the technical details of the vulnerability, why most customers were protected by default, and how we mitigated the attack for the last few.
pg_replicate (GitHub Repo)
pg_replicate is a Rust crate published by Supabase that simplifies building data pipelines for replicating Postgres data to other systems by providing high-level abstractions over Postgres's logical streaming replication protocol.
Nous (GitHub Repo)
Nous is an AI platform with advanced autonomous agents for complex workflows, offering features like intelligent planning, flexible function calling, LLM integrations, and human-in-the-loop capabilities.
How the SNES Graphics System works (5 minute read)
This article goes into the four chips responsible for the SNES (Super Nintendo Entertainment System) graphics system: the two Pixel Processing Units (PPU1 and PPU2) and two SRAM chips. The PPU1 acts as the brain, while the PPU2 acts as a compositor to display the visuals. The article then discusses the different types of RAM used for storing graphics data, including VRAM (which is designed uniquely), OAM, and CGRAM.
Imagining a Personal Data Pipeline (23 minute read)
A personal data pipeline is a system to collect, manage, and utilize personal data generated from various online services. This article goes over an architecture to create this pipeline, made of Data Getters, Processors, and Recipes, allowing users to extract, transform, and combine data from different sources.
How I Created 175 Fonts Using Rust (30 minute read)
This author created a massive 175-font pixel font megapack, using Rust to build his own custom font generation toolchain. He aimed to improve upon his previous packs by offering a wider range of styles and language support, and implemented automatic kerning and quality control measures to streamline the process. The author developed a tool called pifo, which uses algorithms to analyze and generate contours from pixel art, calculates kerning pairs, and exports the fonts in various formats.
The most important software engineering news in one daily email
Join 450,000 readers for
one daily email