Resources

Filter resources by tag
Filter resources by tag
75 of 75 resources
Jun 6, 2026

Should I Run Plain Docker Compose in Production in 2026?

Yes, plain Docker Compose can still run production workloads in 2026—if you close the operational gaps it leaves: cleanup, healing, image pinning, socket security, and updates.

Jun 6, 2026

Three Inverse Laws of AI

Humans must not anthropomorphise AI systems. Humans must not blindly trust the output of AI systems. Humans must remain fully responsible and accountable for consequences arising from the use of AI systems.

Jun 6, 2026

Alert-driven monitoring

It feels productive to see rows of glowing charts and telemetry. They make for some cool office art when you put them on a giant TV on the wall. But nobody spends their day watching graphs. The real core of infrastructure monitoring isn't dashboards. It's the alerts.

Jun 6, 2026

Laws of UX

Laws of UX is a collection of best practices that designers can consider when building user interfaces.

Jun 6, 2026

The woes of sanitizing SVGs

I think Scratch's approach to SVG sanitization is doomed. To explain, we have to take a trip through the history of SVG sanitization in Scratch to see how well it has worked so far.

Jun 6, 2026

Open Design: The open-source Claude Design alternative

The local-first, open-source Claude Design alternative. 🖥️ Native desktop app for macOS and Windows. ⚡ 100+ skills · ✨ 150 brand-grade DESIGN.md systems · 📦 261 ready-to-use plugins. 🖼️ Generates web · desktop · mobile prototypes, live dashboards / artifacts, decks, images, video, plus HyperFrames motion graphics.

Jun 6, 2026

Laws of Software Engineering

A collection of principles and patterns that shape software systems, teams, and decisions.

Jun 6, 2026

The Git Commands I Run Before Reading Any Code

Five git log commands that diagnose a new codebase before you open a single file: code churn hotspots, bus factor, bug clusters, and crisis patterns.

Jun 6, 2026

The Virtual OS Museum

This is a virtual museum of operating systems (and standalone applications) running under emulation, implemented as a Linux VM for QEMU, VirtualBox, or UTM.

Jun 6, 2026

Why we should get rid of average CPU utilization

Every tool shows you average CPU utilization, but none of the tools help you interpret it. None of them tell you that CPU utilization isn't linear to how much capacity you have. They just show you a percentage. The jump from 80% to 81% CPU utilization adds roughly 20× more wait time than the jump from 10% to 11%. So even with 20% "headroom" at 80% utilization, latencies have already started climbing:

Jun 6, 2026

Learnings from 100K Lines of Rust with AI

Besides unprecedented productivity, I discovered several techniques that were instrumental. This post shares my most valuable learnings on: ensuring correctness with code contracts, applying lightweight spec-driven development, and pursuing aggressive performance optimization — plus my wish list for the future of AI-assisted coding.

Apr 6, 2026

MicroGPT

This is a brief guide to my new art project microgpt, a single file of 200 lines of pure Python with no dependencies that trains and inferences a GPT. This file contains the full algorithmic content of what is needed: dataset of documents, tokenizer, autograd engine, a GPT-2-like neural network architecture, the Adam optimizer, training loop, and inference loop. Everything else is just efficiency. I cannot simplify this any further.

Apr 6, 2026

MicroGPT explained interactively

Andrej Karpathy wrote a 200-line Python script that trains and runs a GPT from scratch, with no libraries or dependencies, just pure Python. The script contains the algorithm that powers LLMs like ChatGPT. Let's walk through it piece by piece and watch each part work. Andrej did a walkthrough on his blog, but here I take a more visual approach, tailored for beginners.

Apr 6, 2026

Algorithm Visualizer

Welcome to Algorithm Visualizer, an interactive online platform designed to bring algorithms to life through visualization. Whether you're a student, teacher, or professional, our platform provides an engaging way to explore and understand various algorithms.

Apr 6, 2026

There Is No Spoon

A machine learning primer built from first principles. Written for engineers who want to reason about ML systems the way they reason about software systems.

Apr 6, 2026

A Visual Introduction to Machine Learning

In machine learning, computers apply statistical learning techniques to automatically identify patterns in data. These techniques can be used to make highly accurate predictions.

Feb 25, 2026

SaaS map of Brazil

Interactive map of SaaS by state and city.

Feb 25, 2026

AI is Killing B2B SaaS

SaaS is the most profitable business model on Earth. It's easy to understand why: build once, sell the same thing again ad infinitum, and don't suffer any marginal costs on more sales. AI is bringing an existential threat to a lot of B2B SaaS executives: How to keep asking customers for renewal, when every customer feels they can get something better built with vibe-coded AI products?

Feb 25, 2026

My AI Adoption Journey

My experience adopting any meaningful tool is that I've necessarily gone through three phases: (1) a period of inefficiency (2) a period of adequacy, then finally (3) a period of workflow and life-altering discovery.

Feb 25, 2026

SectorC: A C Compiler in 512 bytes

SectorC is a C compiler written in x86-16 assembly that fits within the 512 byte boot sector of an x86 machine. It supports a subset of C that is large enough to write real and interesting programs. It is quite likely the smallest C compiler ever written.

Feb 25, 2026

Cosmologically Unique IDs

Or maybe we convert all of the mass of the universe into 1-gram nanobots? We would have 1.5 x 10^{56} bots, which would require IDs of 372 bits.

Feb 25, 2026

The Age-Verification Trap: Verifying user's ages undermines everyone's data protection

Social media is going the way of alcohol, gambling, and other social sins: Societies are deciding it's no longer kid stuff. Lawmakers point to compulsive use, exposure to harmful content, and mounting concerns about adolescent mental health. So, many propose to set a minimum age, usually 13 or 16.

Feb 25, 2026

The cryptography behind electronic passports

Did you know that most modern passports are actually embedded devices containing an entire filesystem, access controls, and support for several cryptographic protocols?

Feb 25, 2026

Replacing JS with just HTML

As time marches on, and the HTML and CSS methods gain traction, we need to start replacing the old JS methods that feel so comfy with new methods that require less JS.

Feb 25, 2026

Clock Synchronization Is a Nightmare

Time seems simple. But we engineers lose sleep over something as basic as keeping clocks in sync. Here's why...

Feb 25, 2026

Unconventional PostgreSQL Optimizations

When it comes to database optimization, developers often reach for the same old tools: rewrite the query slightly differently, slap an index on a column, denormalize, analyze, vacuum, cluster, repeat. Conventional techniques are effective, but sometimes being creative can really pay off!

Feb 25, 2026

21 Lessons From 14 Years at Google

When I joined Google ~14 years ago, I thought the job was about writing great code. I was partly right. But the longer I've stayed, the more I've realized that the engineers who thrive aren't necessarily the best programmers - they're the ones who've figured out how to navigate everything around the code: the people, the politics, the alignment, the ambiguity.

Feb 25, 2026

Python Numbers Every Programmer Should Know

There are numbers every Python programmer should know. For example, how fast or slow is it to add an item to a list in Python? What about opening a file? Is that less than a millisecond? Is there something that makes that slower than you might have guessed? If you have a performance sensitive algorithm, which data structure should you use? How much memory does a floating point number use? What about a single character or the empty string? How fast is FastAPI compared to Django?

Dec 26, 2025

HTTP caching, a refresher

This is a reading of RFC 9111 (2022), the latest iteration of the HTTP Caching standard. It defines the Cache-Control HTTP header as a way to prescribe how caches should store and reuse HTTP responses, with regards 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.

Dec 26, 2025

A 1961 Relay Computer Running in Your Browser

Before microchips existed, computers were built with mechanical relays. This is a working simulation of the Minivac 601, an educational computer designed by Claude Shannon. You can watch it think slowly enough to see every step.

Dec 26, 2025

You're Not Burnt Out. You're Existentially Starving.

Let me guess: Your life is going pretty darn well by any objective metric. Nice place to live. More than enough stuff. Family and friends who love you. But you're tired, burnt out, and more. It feels like you're stuck in the ordinary when all you want to do is chase greatness.

Dec 26, 2025

Great Ideas in Theoretical Computer Science

Welcome to CS251 at CMU! This course is about the rigorous study of computation, which is a fundamental component of our universe, the societies we live in, the new technologies we discover, as well as the minds we use to understand these things.

Dec 26, 2025

A Safer Container Ecosystem with Docker: Free Docker Hardened Images

Docker Hub has over 20 billion monthly pulls, with nearly 90% of organizations now relying on containers in their software delivery workflows. That gives us a responsibility: to help secure the software supply chain for the world.

Dec 26, 2025

If You're Going to Vibe Code, Why Not Do It in C?

Why vibe code with a language that has human convenience and ergonomics in view? Or to put that another way: Wouldn't a language designed for vibe coding naturally dispense with much of what is convenient and ergonomic for humans in favor of what is convenient and ergonomic for machines? Why not have it just write C? Or hell, why not x86 assembly?

Sep 12, 2025

Big O

Big O notation is a way of describing the performance of a function without using time. Rather than timing a function from start to finish, big O describes how the time grows as the input size increases. It is used to help understand how programs will perform across a range of inputs.

Sep 12, 2025

Everything I know about good API design

Like designing good software systems, I think much of the advice floating around about API design is too fancy. People get wrapped up in what “real” REST is, or whether HATEOAS is a good idea, and so on. This post is my attempt at writing down everything I know about designing good APIs.

Sep 12, 2025

What Is the Fourier Transform?

Amid the chaos of revolutionary France, one man's mathematical obsession gave way to a calculation that now underpins much of mathematics and physics. The calculation, called the Fourier transform, decomposes any function into its parts.

Sep 12, 2025

Passkeys and Modern Authentication

There is an ongoing trend in the industry to move people away from username and password towards passkeys. The intentions here are good, and I would assume that this has a significant net benefit for the average consumer. At the same time, the underlying standard has some peculiarities. These enable behaviors by large corporations, employers, and governments that are worth thinking about.

Sep 12, 2025

Experimenting with local LLMs on macOS

So, this blog post will be about LLMs, and everyone has opinions about that. To be upfront about it, I'm a skeptic, yet I like experimenting with stuff so I download and run them locally on my Mac. And I'll teach you how to do it too, if you'd like!

Sep 12, 2025

The maths you need to start understanding LLMs

This article is the second of three "state of play" posts that explain how Large Language Models work, aimed at readers with the level of understanding I had in mid-2022: techies with no deep AI knowledge.

Sep 12, 2025

The Prompt Engineering Playbook for Programmers: Turn AI coding assistants into more reliable development partners

Developers are increasingly relying on AI coding assistants to accelerate our daily workflows. These tools can autocomplete functions, suggest bug fixes, and even generate entire modules or MVPs. Yet, as many of us have learned, the quality of the AI's output depends largely on the quality of the prompt you provide. In other words, prompt engineering has become an essential skill.

Jun 10, 2025

Reinvent the Wheel

One of the most harmful pieces of advice is to not reinvent the wheel. It usually comes from a good place, but is typically given by two groups of people: those who tried to invent a wheel themselves and know how hard it is; those who never tried to invent a wheel and blindly follow the advice.

Jun 10, 2025

My favourite fonts to use with LaTeX

TeX and related systems are often associated with their default fonts, Donald Knuth's Computer Modern (CM) typefaces. While these fonts are excellent, they have become so ubiquitous in the scientific community that many LaTeX users have sought alternative fonts for their documents. As a result, a plethora of font packages and even OpenType-compatible engines (XeLaTeX and LuaLaTeX) have emerged in the past 20 years.

Jun 10, 2025

Open Source Society University: Path to a free self-taught education in Computer Science

The OSSU curriculum is a complete education in computer science using online materials. It's not merely for career training or professional development. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners.

Feb 28, 2025

Millions of Accounts Vulnerable due to Google's OAuth Flaw

Millions of Americans can have their data stolen right now because of a deficiency in Google's “Sign in with Google” authentication flow. If you've worked for a startup in the past - especially one that has since shut down - you might be vulnerable.

Feb 28, 2025

Build It Yourself

You're probably familiar with the concept of 'dependency churn.' It's that never-ending treadmill of updates, patches, audits, and transitive dependencies that we as developers love to casually install in the name of productivity.

Feb 28, 2025

httptap

View the HTTP and HTTPS requests made by any linux program.

Feb 28, 2025

Developer philosophy

A few weeks ago at work we had a talk where senior developers (including me) were invited to spend around five minutes each talking about our personal software development philosophies. The idea was for us to share our years of experience with our more junior developers.

Feb 28, 2025

How Core Git Developers Configure Git

What git config settings should be defaults by now? Here are some settings that even the core developers change.

Feb 28, 2025

Subtrace: Wireshark for Docker containers

Subtrace is Wireshark for your Docker containers. It lets developers see all incoming and outgoing requests in their backend server so that they can resolve production issues faster.

Feb 28, 2025

A year of uv: pros, cons, and should you migrate

After one year of trying uv, the new Python project management tool by Astral, with many clients, I have seen what it's good and bad for. My conclusion is: if your situation allows it, always try uv first. Then fall back on something else if that doesn't work out.

Feb 28, 2025

A calculator app? Anyone could make that.

A calculator should show you the result of the mathematical expression you entered. That's much, much harder than it sounds. What I'm about to tell you is the greatest calculator app development story ever told.

Feb 28, 2025

Nping

Nping is a Ping tool developed in Rust. It supports concurrent Ping for multiple addresses, visual chart display, real-time data updates, and other features.

Feb 28, 2025

MapTCHA, the open source CAPTCHA that improves OpenStreetMap

OpenStreetMap (OSM) has many objects remaining to be mapped, but the quality of AI-generated objects is not high enough for direct inclusion. We introduce MapTCHA, a CAPTCHA that leverages the uncertainty of interpreting imagery with computer vision, and provides human verification for AI predictions: users are asked to identify images containing correctly interpreted objects, e.g. building outlines.

Feb 28, 2025

I am (not) a Failure: Lessons Learned From Six (and a half) Failed Startup Attempts

If my younger self had heard these stories he might have had a less stressful life knowing that even a long string of failures in specific endeavors doesn't necessarily translate to failure in life. Maybe some version of my younger self is still out there and will get some similar value out of it.

Jan 14, 2025

On the nature of Computing Science

We all know, how computing is now expected to cure all ills of the world and more, and how as far as these expectations are concerned, even the sky is no longer accepted as the limit.

Jan 14, 2025

Operating System in 1,000 Lines

We're going to build a small operating system from scratch, step by step.

Jan 14, 2025

mCaptcha

mCaptcha is proof-of-work based captcha system that is privacy focused and fully automated.

Jan 14, 2025

Nearly All Binary Searches and Mergesorts are Broken

And now we know the binary search is bug-free, right? Well, we strongly suspect so, but we don't know. It is not sufficient merely to prove a program correct; you have to test it too. Moreover, to be really certain that a program is correct, you have to test it for all possible input values, but this is seldom feasible.

Jan 5, 2025

Developer Roadmaps

roadmap.sh is a community effort to create roadmaps, guides and other educational content to help guide developers in picking up a path and guide their learnings.

Jan 4, 2025

Seconds Since the Epoch

Consequently, every few years POSIX time jumps backwards, wreaking utter havoc. Someday it might jump forward.