2026-07-20 20:19:00
Hi everyone,
With the rise of AI, there are spreading trend that SaaS doomed. This week there is an article address that. For me, SaaS is here to stay and will spread even faster.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
AI agents write code fast, but they're working blind. They never see real API responses, real database state, or real queue payloads, so bugs surface only after the fact.
mirrord connects your AI agents to actual staging conditions as they code. Every change gets tested against real data instantly, so agents catch broken assumptions before you do, not after.
monday.com cut dev cycle time by 70% running this way. 5k GitHub stars and growing.
Try mirrord free.
No, you’re not going to code your own Jira
what actually happens when a program opens a file? file operations work identically on an ext4 file (the disk filesystem most Linux distributions use by default), a file in /proc that exists only as kernel memory, and a file on an NFS share on another machine. Same calls, same file descriptor semantics, same close() at the end.
Text editors can be an interesting challenge to program. The types of problems that text editors need to solve can range from trivial to mind-bogglingly difficult. Recently, I have been on something of a spiritual journey to rework some internal data structures in an editor I have been building, specifically the most fundamental data structure to any text editor: the text.
modal.com rebuilt their core sandbox platform from ground up to support run millions of sandboxes concurrently and create ten of thoudsands of sandboxes per second.
This guide is for homelab admins who understand IPv4s well but find setting up IPv6 hard or annoying because things work differently. In some ways, managing an IPv6 network can be simpler than IPv4, one just needs to learn some new concepts and discard some old ones
Database sharding is the best way to scale a Postgres or MySQL database for anything beyond a few terabytes of data. Let’s look at how we go from a small single-node database, to one with a few terabytes spread across four shards, all the way up to one that is sharded across 768 servers and storing a petabyte of data
People kept telling OP that Linux could perform way better than Windows when it comes to FPS, frame pacing and input latency. So he came up with an idea to actuallly measure that.
One of the most valuable things about partitioned tables is pruning - the database’s ability to eliminate entire partitions based on a query predicate. Under conventional wisdom, pruning can only be achieved when querying by the partition key - this makes choosing the right key extremely difficult. However, if your data follows certain patterns, using some clever tricks you can achieve pruning even when filtering by non-partition key columns.
This isn’t about building a production system but more about a PoC and learning. The idea is we de-couple storage from compute, leverage the power of storage, especially CoW(Copy on write) to branching and do cool thing with database similar to PlanetScale.
Border Gateway Protocol (BGP) lacks built-in trust. Resource Public Key Infrastructure (RPKI) addresses that problem by letting address space holders cryptographically authorize which Autonomous System (AS) may originate their prefixes, via Route Origin Authorizations (ROAs) published through a chain of trust anchored at the five Regional Internet Registries (RIRs). But there are also independent operators contributes to this RPKI. In this post, we investigate who operates those small servers and why.
With modern CPUs, avoiding branch mispredictions is a key method for speeding up programs. One of the most effective ways to reduce mispredictions is to simply avoid branches.
Curious exactly what happens when you run a program on your computer? Read this article to learn how multiprocessing works, what system calls really are, how computers manage memory with hardware interrupts, and how Linux loads executables.
It just fun to read Honey pot result to see whats the scan or the threat actors do.
Color conversion & manipulation library by the editors of the CSS Color specifications
High-performance JSX UI outside the browser, with native rendering, standard Vue Vapor and Solid support, a Tailwind design system, and 60 FPS animation under an 8 MB memory budget.
an open-source, battery-powered temperature and humidity data logger with an always-on e-paper display. It records ambient conditions over time, stores readings in non-volatile memory, and displays current data along with a history graph. The device is designed for low power consumption, over 1 week of operation on a small Li‑Po battery.
Golang connection multiplexing library
A WiFi security auditing software mainly based on aircrack-ng tools suite
The Visual JSON Editor. Schema-aware, embeddable, extensible.
a modeling language for describing software architecture and tools to generate diagrams from the model.
A Docker-powered microservice for intelligent PDF document layout analysis, OCR, and content extraction
Privacy-first API platform built with Tauri v2. No login, no cloud, ~60 MB RAM. A lightweight Postman alternative.
2026-07-14 20:19:00
Hi everyone,
This is a really good issue IMHO with lot of link on fundamental of web dev and computer deep knowledge(syscall, cpu).
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Six months in, p_future holds 800M rows because the growth projection didn’t survive the workload, and every ALTER to fix it needs a maintenance window nobody wants to schedule. The boundary management is two lines of DDL; the harder part is picking a partition key that doesn’t leak into application code.
is CORS a browser security measure or a server security measure?
Given an array of data, what is the slowest way to sum up the integers? Is it adding the numbers from left to right, adding them randomly, or doing something else? In this post, we are going to build a data access pattern from the ground up that sums numbers as slowly as possible by exploiting memory pitfalls.
In this video we learn the basics of I/O devices, and how the interact with the the CPU in general purpose systems.
A look at how Linux handles system calls on x86-64, why crossing into the kernel has a cost, and why that cost shows up in performance profiles.
How Zalando built an in-process client-side load balancer for a million requests per second of internal fan-out traffic, what we layered on top (N-ring fade-in, occupancy-based bounded load, and AZ-aware routing with a latency health factor), and how hardening that path cut cost and made the service resilient to the infrastructure underneath it.
Have you ever come into some awaful situation where you run kill on a postgres process that handle a connection and then suddenly the whole Postgres restart, even though you just kill a single process that handle one connection. This post explains that.
Let’s be clear. It’s going to be a long time before running a local LLM will produce the type of results that you can get from querying ChatGPT or Claude. However, self hosted is useful when privacy is critical or when response time is not important.
A Go implementation of Radsort — a stable LSD radix sort with O(√n) space overhead, from “Parallel O(√n) Overhead LSD Radix Sort” by Robert Clausecker and Florian Schintke
Easy to use, yet comprehensive library for sending mails with Go.
Display images in the terminal
Give Claude the ability to watch any video. /watch downloads, extracts frames, transcribes, hands it all to Claude.
Open-source JavaScript library implementing an in-browser rich-text editor. I especially like the Collaborative Editing with their client/server example.
IP lists full of bad IPs - Updated every 2H
Send email from anywhere your code runs.
Create beautiful code screenshots with customizable styles
Distribute and run LLMs with a single file.
Resource monitor that shows usage and stats for processor, memory, disks, network and processes. Similar to htop but better.
is a lightweight network scanner with persistent device labeling, multi-network support, and Tailscale integration. Built by 291 Group.”
a production-ready API that delivers instant REST and Model Context Protocol (MCP) APIs on top of your existing or new Postgres database—CRUD, custom SQL routes, auth, ACL, and a read-only MCP endpoint—without hand-writing a backend.
2026-06-30 20:19:00
Hi everyone,
With the rise of LLM, it’s now become even more important to know the fundamental of tech, no longer just to be able to whipe up some quick script, but understanding technical merit at a deeer level. We will include more links about these in future issue.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Connect 80+ databases (Postgres, MongoDB, Snowflake, and more) from VS Code, Cursor, or any fork. Browse and edit data, write schema-aware SQL, generate ERDs, run SQL notebooks, and turn plain English into queries with Copilot.
TPUs is Google’s ASIC that focuses on two factors: extreme matmul throughput + energy efficiency. TPUs power the majority of Google’s AI services. Of course, that includes training and inference of Gemini or Veo, but also deploying their recommendation models (DLRMs).
One of the most famous file formats in computer history probably is the Portable Executable, popularly known as .exe. There is more to it than just being the binary file format of choice for Windows systems. In this chapter, we will deep-dive into what are portable executables? Where they live? What they eat?
SIMD means single instruction multiple data, also sometimes called vectorization. Instead of this
a[0] + b[0] a[1] + b[1] a[2] + b[2] a[3] + b[3]
and doing them sequentially, we can do
[a0 a1 a2 a3] + [b0 b1 b2 b3]
Kind of like JavaScript Promise.all in term of syntax.
Designing a good, fast, portable SIMD algorithm is not a simple matter and requires thinking a little bit like a circuit designer.
Author Wirewiki.com, a website to inspect internet infrastructure like domain names. It helps people check (historic) DNS records, DNS delegation, email deliverability config, etc. And it’s super fast. He want the autocomplete to be instant.
The worst way to store and manipulate text is to use an array. The good way is a binary tree structure called a rope. And the best way is a Gap Buffer.
A parser is usually taught as a problem of grammars, but once the grammar is correct, almost all of the performance and most of the engineering difficulty live somewhere else, in how the resulting tree is represented in memory.
An alignment quirk on Intel and AMD CPUs: keeping a Go array 8-byte aligned (vs offset 4) makes clearing it up to 49% faster, thanks to how REP STOSQ works.
pg_hardstorage is an open-source PostgreSQL backup tool — built so something as fundamental as your recovery story stays code you can read, run, and rely on.
Stateless Postgres Query Router.
Re-usable, easy interface JavaScript chart library based on D3.js, with SVG and Canvas rendering support
Want to learn more about DNS Resoltuon, MX record, DNS Trace. This tool has all, even including a DNS Hisory change
2026-06-22 20:19:00
Hi everyone,
We’re back for another issue. We’re become more regular now. If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Every new API key means tracking down which services need it, then updating each one by hand. At OpenRouter, that happened one to two times a week.
OpenRouter runs the largest AI gateway for developers, with infrastructure spanning Vercel, GCP, and Cloudflare and 70+ model providers. Each one ships its own keys, propagated manually with custom scripts, and no audit trail. A leaked production credential meant downtime and an SLA breach.
The team adopted Cursor, Claude Code, Devin, and Codex, and each needed scoped access to run services end to end without reaching credentials it shouldn't.
OpenRouter centralized everything on Infisical:
→ Dynamic folder sync replaced the scripts: one folder for all provider keys, imported into the services that need them
→ Role-based access separates dev, admin, and break-glass production: A dedicated agent tier issues session-scoped credentials, so tools like Cursor and Claude Code pull dev secrets directly and run read-only cron jobs against production, scoped to exactly what they need.
→ Audit logging: It closed the visibility gap on when and why a secret changed.
The payoff: spinning up a new service dropped from a multi-service manual chore to about 10 minutes. 21 services now sync through Infisical and 50+ engineering hours are saved per month.
As founding engineer Shashank Goyal put it: "With Infisical, you get the security benefit along with improved developer experience, it becomes a no-brainer."
Pair it with this video to learn how fast we can read a file? are we limited by disk or cpu?
Fraud detection in transaction data is mostly SQL. Not machine learning, not graph databases, not whatever Gartner is hyping this year. SQL, run against the right tables, with the right joins, looking for the right shapes.
Shopify needs no introduction of their scale. They have an oversell protection to track inventory buld on Redis, using DECR and INCR. But data now is lived on 2 system, and this cannot be done in an atomic manner because state is persisted outside of MySQL. Operating and scaling Redis in region awareness also not easy. So they moved this to MySQL with SKIP LOCKED.
The American Express core payments ecosystem is a global platform relied on by Card Members and partners around the world. Every day, it processes live payment transactions that require high availability, low latency, and predictable performance. To achieve this, the platform is built around a cell-based architecture that isolates failures, maintains low-latency processing, and scales capacity without expanding the failure domain
DataDog regularly run a variety of gamedays to intentionally stress our platforms and learn how our systems and teams respond under real-world conditions. During that they discover when network latency increase, replica lag, primary failed and failover is no longer safe.
On Xmas 2024, Aura Frames API had problems under peak load, being unavailable for three hours. They implement multiple strategy to help improve Postgres performance significantly. We will learn all of that here: high cpu during vacum, increase latency, lag replica, index bloat due to high write. One of interested thing is they split heavy write tables to its own dedicated db, we cannot always do this, but if we can it reduce and isolated high load to that db only.
I’ve been using Git for so long and I just realized you can ignore files at three different levels and not just with .gitignore. The three files you can use to ignore files are: .gitignore, .git/info/exclude, ~/.config/git/ignore
How hard it’s to build a home made CPU? hard if you had to do the hardware component yourself. But assume if you can get the part. TD4 is a little 4bit CPU: 2 registers, 16 bytes ROM.Quite limited but still very cool and teaches a lot of principles of computer architecture.
Modern concurrency primitives and building blocks for high performance applications, all in C99+
Your website, but inhabited. Very hard to explain, like convert visitor into real character can interact in a widget on your site. very fund interestint to check
A high-performance, concurrent bytecode virtual machine and language written in Go. Tiny combines the development speed of dynamic coding with a robust, multi-threaded runtime engine
The end of web parsing. The beginning of scalable pixel-native search.
A high-performance Ractor web server for Ruby 4.0+: Rack 3-based, with a Rust Tokio/Hyper front-end and Ractor-parallel Ruby workers and threaded fallback mode.
Makes PDFs look scanned (CLI or in the browser via WASM)
is a Postgres-native durable workflow system. It moves the complexity of durable execution into the database layer via stored procedures, keeping SDKs lightweight and language-agnostic. The core principle is to handle tasks that may run for minutes, days, or years without losing state.
A multithreaded PostgreSQL connection pooler in Rust (MSRV 1.87). Alternative to PgBouncer, Odyssey, and PgCat. In production at Ozon for over three years across Go (pgx), .NET (Npgsql), Python (asyncpg, SQLAlchemy), and Node.js workloads.
2026-06-15 20:19:00
Hi everyone,
Summer has started in a few places, summer time no-school season is about to started. One thing for sure is no more drop-off and pick-up. Time to do some side projects. I strongly believe everyone should try and experiment with self-hosted LLM. If you can afford some card with 24GB-32GB VRAM, it could be great to get started. No worry, this newsletter won’t turn into a AI/LLM junk, I simply think we should understand and control it, and especially the ability to self-host.
Even with AI development, I still want to talk to a person, this newsletter, you probably realized, full of grammars, typos. My English is not perfect, I tried but you can be sure these are hand writing by a person at 1:21AM Sunday when kids and wife are in deep sleep.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Live technical workshop | June 18 | 11am ET / 8am PT | 45 min + Q&A
Your AI agent writes code fast. So fast it barely matters now. The bottleneck is what comes after: running it, watching it break against real infrastructure, and debugging the gap between what the agent assumed and what your cluster actually does.
The agent never saw your queue payloads. It guessed your database schema. It has no idea that the downstream service returns 429 under real load. So you validate. Manually. Every time. That validation tax is the problem we're solving live on June 18..
What you'll watch happen in real time:
We'll connect a Cursor agent to a real Kubernetes cluster using mirrord and run the full loop: inspect live environment state, generate code informed by what's actually there, test immediately against real services, watch it fail, and watch the agent fix itself. No mocks. No deploy cycle. No human in the loop. The agent calls inspect, generate, test, fix autonomously. Total time from failure to working code: under 30 seconds.
Engineering teams at monday.com and similar companies already run this pattern in production. 350+ engineers at monday.com use mirrord daily. They cut dev feedback loops from 30 minutes to 30 seconds.
You'll leave with:
A reference architecture for wiring agents to real clusters safely. The exact prompts and mirrord config from the demo. A clear mental model for where human judgment still belongs and where agents can own the loop.
Built for engineers who are done validating what the agent should be validating itself.
Hosted by Arsh Sharma (Senior DevRel, MetalBear) and Aviram Hassan (Founder and CEO, MetalBear, co-creator of mirrord).
Some folks say that the design philosophy of Unix is that “everything is a file”. If you’re familiar with Unix-like platforms, you probably know that they don’t quite live up to the hype. But apparently, the memory of a process itself truely live up to this hype.
GPS is fundamentally a translation tool: it converts time into distance. A satellite sends a signal, your phone catches it, and the delay between those two events tells the phone exactly how far away the satellite is. 1 nanosecond of signal travel = 0.3 meters.
This is a DRAFT of the first part of Chapter 4 - On CPU Physics and CPU Cycles of a C++ books but I learn a lot about CPU in its physisc form and the communication between all component: cpu, ram, l1/2/3 cache.
A perceptron explained from scratch in Python, with interactive demos. Learn weights, bias, the decision boundary, epochs, learning rate, and why we normalize data.
A straightforward method for training your LLM, from downloading data to generating text.
In this blog post, I will share the adventures I had creating my own LLM, from (almost) scratch, trained only on old texts. I made my own base-training and fine-tuning scripts, data processing pipelines and custom datasets.
Many LLM Model require more 24GB+ VRAM? what happen if you can combine 2 smaller GPU Card? This walk ou through that setup.
Have you ever need to auto rotate a user profile picture, u read exif and rotate them? So let learn about this structure. They age well despite a standard being invented long ago with so many gotchas.
Running Gemma 4 26B-A4B and Qwen3.6 35B-A3B locally with llama.cpp, MTP speculative decoding, multimodal support, and PI as a coding agent.
true Go, no more CGO, cross platform. no C toolchain at build time and no libX11/libwayland at runtime
A tiny macOS utility that puts a red LED in your menu bar and lights it up whenever there’s I/O activity on the local drives you choose to monitor.
A safe, zero-dependency expression language for rules, filters, and templates
This repo contains 754 structured cybersecurity skills spanning 26 security domains, each following the agentskills.io open standard. Every skill is mapped to five industry frameworks — MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, MITRE D3FEND, and NIST AI RMF
DepsGuard looks for npm, pnpm, yarn, bun, uv, pip, poetry, and aube on your machine, reads their config files, compares them to recommended supply-chain settings, and can apply fixes interactively.
Which GGUF File Should You Download”
A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.
a coding-focused agentic model built upon Kimi K2.6. With substantial improvements on real-world long-horizon coding tasks, it strengthens end-to-end task completion across complex software engineering workflows while improving token efficiency, reducing thinking-token usage by approximately 30% compared with Kimi K2.6.
2026-06-08 20:19:00
Hi all,
We’re back for another issue. I’m still trying my time to make this news letter become a weekly again :(.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Spring Spotlight 2026 is live and we’ve rounded up the top updates for developers here. Featuring:
• AI-Assisted Development: Developer MCP Server lets you build apps faster with AI coding tools like Cursor, Claude Code, and Codex.
• Modern API Infrastructure: Date-based versioned APIs and versioned docs for predictable releases.
• MCP: Unlock HubSpot data via the HubSpot MCP Server (remote) to connect any compatible MCP client and create custom workflows and integrations.
• Projects 2026.03: Includes serverless functions, UI extension support, and migration from 2025.1 and 2023.2.
Turn any Android phone into a programmable SMS gateway for your SaaS — no per-message fees, no carrier contracts, no vendor lock-in.
A researcher find that the Creative Sound Blaster Katana V2X accept unsigned firmware over Bluetooth without auth. Since the speaker already register itself as a HID device for volume control, an attacker can flash it remotely and turn it into a Rubber Ducky, injecting keystroke into ur PC from ~50 feet away. Vendor refuse to patch.
Linear feel fast not because of one trick, but a lot of small one compound together. The big idea: treat the browser DB as the source of truth, and the server is just a sync target. Mutation apply locally first, reconcile async. Add to that aggressive code-split with service worker precaching, granular MobX observables to keep re-render small, and animation only on GPU-composited properties.
A basic introduction to USB for people that don’t need to know what happens on the wire. If u ever want to talk to a USB device from ur own app without diving into kernel land, this is a nice starting point.
Postgres planner can make bad estimate when columns are correlated. Extended statistics let u tell the planner about those relationship. The post walk through the three flavor - dependencies, mcv, and ndistinct - with real example showing how each one fix a different kind of wrong row estimate.
Sourcemaps unlock some observability benefits but might expose your codebase. Check out how they work, and how to protect yourself.
A Go specific article, but it present a methodlogical though of process. We had a 4 GiB file that’s almost entirely zeros, exactly one non-zero int64 is hiding at offset Size - 8 (the last aligned slot). The task: find that offset, as fast as possible, in Go on Linux.
Have u ever feel annoying with the useless Music app on macOS, u would love this tool. Typically it will be under Tool, but this is require deep understand on how everything works. Strongly recommend to learn its code, especially about the rcd(short for Remote Control Daemon)
This is a fresh reading of RFC 9111 (2022), the latest iteration of the HTTP Caching standard. The standard defines the Cache-Control HTTP header as a way to prescribe how caches should store and reuse HTTP responses, with regard to not just the browser cache, but to any other intermediary caches, such as proxies and content delivery networks, that may exist between the client and the origin server.
Use the ss command as a modern, faster replacement for netstat to inspect IPv4 TCP and UDP sockets, listening ports, and connection states.
A tiny (~1KB) & modern library for keybindings.
A literal credit-card sized computer with E-Paper display, ESP32 and NFC.
A CSS 3D engine for the DOM. Renders polygon meshes in HTML by leveraging matrix3d transforms.
A nice tool to let us know which AI Model can be run locally with a given GPU
a suite of tools to bring collaboration to your application. It’s based on Y.js (by Kevin Jahns), which is amazing to sync and merge changes from clients in real-time
A very swift way to encrypt secret, and commit it to the git repository. The sweetness come on how to onboard new team member, simply add their public key, do a re-encrypt and commit the change. Every team member now share the same secrets
A small, feature-rich, and robust Cloudflare DDNS updater
Open-source terminal SSH manager that keeps ~/.ssh/config in sync with your cloud infra across 16 cloud providers.
Animate your SVGs. Without losing your mind