12-05-23Pseudonyms in American History
12-04-23Fairchildren
12-03-23ChatGPT After One Year
12-02-23McNamara Fallacy
12-01-23Data Quality in LLMs
11-30-23Discord and AI GTM
11-29-23Standard Causes of Human Misjudgment (Munger)
11-28-23The Unreasonable Effectiveness of Monte Carlo
11-27-23Razor and Blades Model
11-26-23Drawbacks of Moving to the Edge
11-25-23Are Things Getting Worse?
11-24-23How AI Changes Workflows
11-23-23Duties of a Board of Directors
11-22-23Strategies for the GPU-Poor
11-21-23Take Your Time Making Decisions
11-20-23The Encyclopedia of Integer Sequences
11-19-23The Catilinarian Conspiracy
11-18-23The Model is Not the Product
11-17-23The AI-Neid
11-16-23Model Merge - (Frankenmerge)
11-15-23The Cost of Index Everything
11-14-23What if Google Wasn’t The Default?
11-13-23Copilot is an Incumbent Business Model
11-12-23Eroom's Law
11-11-23The Lucretius Problem
11-10-23The Call to Adventure
11-09-23AI Agents Today
11-08-23Norvig's Agent Definition
11-07-23The Context Length Observation
11-06-23To be, or not to be; ay, there’s the point.
11-05-23Improving RAG: Strategies
11-04-23Static Sites Aren't Simple Anymore
11-03-23Lessons from llama.cpp
11-02-23Why Model Evaluation is Difficult
11-01-23Mechanical Turks
10-31-23Regulatory Capture in the Railroad Industry
10-30-23What If OpenAI Builds This?
10-29-23On Mixing Client and Server
10-28-23Infrastructure as Code Will be Written by AI
10-27-23When A/B Testing Doesn't Work
10-26-23Between Images and Text, CLIP
10-25-23Positioning Yourself Near the Opportunity
10-24-23Tech Invariants
10-23-23Horizontal Tuning: Instruction, Chat, and What Else?
10-22-23Retrieval Augmented Generation
10-21-23The Silent Todo List
10-20-23Pitfalls of File-based Routing
10-19-23Benefits of Small LLMs
10-18-23Can OpenAI Win Consumer and Enterprise?
10-17-23The Inner-Platform Effect
10-16-23Revision: Generative text-to-UI
10-15-23Why Is the Frontend Stack So Complicated?
10-14-23An Intelligent Wikipedia
10-13-23The Half-Life of the AI Stack
10-12-23Nagle's Algorithm
10-11-23Black Swan by Shakespeare
10-10-23Anticipate the Cheap
10-09-23Moravec's Paradox
10-08-23The American Experiment
10-07-23Incentives Behind Programming Languages
10-06-233D as the New Modality
10-05-23Keep Going
10-04-23The Benefit of a Personal Notation
10-03-23Pitfalls of Database Migrations
10-02-23Generative Interfaces
10-01-23Lessons From Debugging
09-30-23Compression / Learning Duality
09-29-23Is AI a Platform Shift?
09-28-23Passkeys, Crypto, and Signing AI Content
09-27-23Is Data Still a Moat?
09-26-23Multi-Modal AI is a UX Problem
09-25-23Observer-Expectancy at Scale
09-24-23LLMs as System 1 Thinkers
09-23-23The Fundamental Attribution Error
09-22-23Good Enough Abstractions
09-21-23Automate (But Automate Last)
09-20-23AI Biographers
09-19-23Customized End User Software (with AI)
09-18-23Five Principles from Renaissance Technologies
09-17-23Moving Upmarket
09-16-23The Age-old Resistance to Generated Code
09-15-23Cincinnatus
09-14-23Undetectable AI
09-13-23The New Economics of Generating Code
09-12-23The Inevitability of Scope Creep
09-11-23Fine-tuning Stable Diffusion XL with Personal Photos
09-10-23The Low-Hanging Fruit
09-09-23Beyond Prompt Engineering
09-08-23The Hardware / Software Cycle
09-07-23Raft: The Distributed Systems Algorithm
09-06-23The Widgetification of Apple
09-05-23Type Constraints for LLM Output
09-04-23Why Fast?
09-03-23Technical Metrics to Track in Engineering Orgs
09-02-23TypeScript Type System Hacks
09-01-23Capital Intense AI Bets
08-31-23Imputavi, Computavi, Putavi.
08-30-23Llama 2 in the Browser
08-29-23The Contrarian Strategy of OpenAI
08-28-23GitHub Inbox as GTM
08-27-23AI and Text-First Interfaces
08-26-23The Business Source License
08-25-23The Free Lunch of Model Distillation
08-24-23Adding Constraints
08-23-23Copy and Paste Libraries
08-22-23Beating the Average
08-21-23A Model API Gateway for 20+ LLMs
08-20-23De Facto Ports
08-19-23The Truth About GPU Utilization
08-18-23Directly Responsible Individuals
08-17-23Akin's Laws of Spacecraft Design
08-16-23What is a Prompt Engineer?
08-15-23Learning Via Negativa
08-14-23Why Tailwind CSS Won
08-13-23My Everyday LLM Uses
08-12-23Dark Mode and Marginal Benefit
08-11-23Llama/Unix
08-10-23Deterministic, Structured LLM Output
08-09-23Bayes' Rule
08-08-23A Fine-Tuning Marketplace
08-07-23Majority Rule Developers
08-06-23NVIDIA's CUDA Monopoly
08-05-23Prescriptive vs. Descriptive Feedback
08-04-23Focus On What Could Go Right (Not Wrong)
08-03-23Apple's Hidden Social Network
08-02-23Data Versioning
08-01-23Automatic and Universal Adversarial Prompts
07-31-23Minimum Effective Dose and Discrete Outcomes
07-30-23On Compounding
07-29-23Git Merge Strategies and Algorithms
07-28-23Modern Samizdat Libraries
07-27-23Amara's Law
07-26-23Black Swan Theory
07-25-23Optimizing $Model.cpp
07-24-23Commonplace Books
07-23-23Virtual Machines and Path Dependence
07-22-23On Getting Married
07-21-23The RLHF Advantage
07-20-23Robots.txt for LLMs
07-19-23Why Did Meta Open-Source Llama 2?
07-18-23Diffusion of Innovation
07-17-23Literate Programming with LLMs
07-16-23Schopenhauer's 36 Stratagems for Winning Arguments
07-15-23Scale to Zero for AI Workloads
07-14-23Stop Overengineering
07-13-23Hard Launches vs. Soft Launches
07-12-23Virtualized Linux on macOS Internals
07-11-23Why Frameworks Fail
07-10-23Categorization and Classification with LLMs
07-09-23Towards Technical CEOs
07-08-23ActivityPub, Decentralization - Do Users Care?
07-07-23The Anti-AI Movement
07-06-23Customer Obsession is the Only Winning Strategy
07-05-23Avoiding Footguns
07-04-23Where AI Fits in Engineering Organizations
07-03-23Myths About ORMs
07-02-23Google Search's Death by a Thousand Cuts
07-01-23The Circular Startup Economy
06-30-23Personal Lessons From LLMs
06-29-23Overcoming LLM Hallucinations
06-28-23Monopolizing Useless Resources
06-27-23Dark Patterns
06-26-23Platform Engineering vs. DevOps
06-25-23Model Evaluation is (Still) An Art
06-24-23Clear, Simple, and Wrong
06-23-23What Comes After Kubernetes?
06-22-23No Feature is Free (Especially AI Ones)
06-21-23Mixture of Experts: Is GPT-4 Just Eight Smaller Models?
06-20-23The LLaMA Ecosystem
06-19-23Merge Queues
06-18-23Unforced Errors
06-17-23The Low-Background Steel of AI
06-16-23Why Does Every AI Cycle Start With Chat?
06-15-23A Token Efficient Language for LLMs
06-14-23Keep The Main Thing The Main Thing
06-13-23ControlNet QR Codes
06-12-23It’s Too Early To Call Winners in AI
06-11-23The Last Innings of Web 2.0
06-10-23Biography of an Idea
06-09-23The Myth of the AI Infrastructure Phase
06-08-23LLMs For Software Portability
06-07-23ChatGPT Plugins Don't Have PMF
06-06-23Levels of Autonomy in AI Agents
06-05-23The Problem with Tokenization in LLMs
06-04-23What Diffusion Models Can Teach Us About LLMs
06-03-23Sequence and Version Control Models
06-02-23Practical Dependency Management for Developers
06-01-23The End of Public APIs
05-31-23Faster Horses: AI Products That Companies Think They Want
05-30-23Templating Magic Isn't Free
05-29-23AI Means More Developers
05-28-23Two Years of Daily Blogging
05-27-23Prompt Engineering is Configuration Engineering
05-26-23SEO Inside AI
05-25-23A List of Things I Was Wrong About
05-24-23The ChatGPT Plugin Specification
05-23-23The Local Development Story
05-22-23Twitter and the Idea Maze
05-21-23The New Tax on Engineering Against the Grain
05-20-23Piecewise
05-19-23On Regulating AI
05-18-23On Device AI?
05-17-23A List of Leaked System Prompts
05-16-23Intercloud Brokers
05-15-23React LLM: Run Models in the Browser with Headless Components
05-14-23Context-Free Grammar Parsing with LLMs
05-13-23Taylor Swift and Launch Cadence
05-12-23StackOverflow/ChatGPT
05-11-23Self-hosted Compilers and Bootstrapped AI
05-10-23Unix Philosophy for AI
05-09-23Why Declarative Build Systems Aren’t Popular
05-08-23The New AI Moats
05-07-23On-Demand Package Manager
05-06-23Second-level Thinking
05-05-23ReLLM: Exact Structure for Large Language Model Completions
05-04-23llm.ts
05-03-23The Python Family of Languages
05-02-23WebGPU and the New OS
05-01-23Applications of Category Theory
04-30-23Implementing LLMs in the Browser
04-29-23React Component as the API
04-28-23Why Multi-Cloud Failed
04-27-23Principle of Least Astonishment
04-26-23Probabilistic Data Structures and LLMs
04-25-2316 Lessons from the Tanenbaum–Torvalds Debates
04-24-23Tanenbaum–Torvalds Debates, Part 1
04-23-23The ptrace syscall
04-22-23Building a Kernel From Scratch
04-21-23Autonomous LLM Agents Are At Least 10 Years Out
04-20-23Peanut Butter Manifesto (2006)
04-19-23Sandbox Your Prompts
04-18-23Stochastic/Deterministic
04-17-23Jevons Paradox and LLMs
04-16-23Everyday Fourier Transforms
04-15-23On The Shortness Of Life
04-14-23Synthetic Data From Compilers
04-13-23Foundational Models Are Not Enough
04-12-23Imperative, Declarative, Interrogative, and Exclamatory Interfaces
04-11-23But / Therefore
04-10-23A List of 1 Billion+ Parameter LLMs
04-09-23No GPUs before Product-Market Fit
04-08-23The Path Dependence of YAML
04-07-23Buyers in the Foundational Model Stack
04-06-23Internet Magic Numbers
04-05-23A High-level LLMOps Architecture
04-04-23Reasons To Do a Startup
04-03-23The Automation Frontier
04-02-23Why Open-Source a Model?
04-01-23Consumption Pricing Units in AI
03-31-23Reflections on 10,000 Hours of DevOps
03-30-23The AI Partnership Race
03-29-23A Hacker's Guide to LLM Optimization
03-28-23Kubernetes as a Dev Tool
03-27-23Code, not Chat, in Generative AI
03-26-23Distributed Systems and AI
03-25-23Necessary Conditions for an App Store Monopoly
03-24-23Remix Culture
03-23-23Are Incumbents Accruing All The AI Value?
03-22-23Model Arbitrage
03-21-23Modeling Context Length vs. Information Retrieval Cost in LLMs
03-20-23Framework-Defined Infrastructure
03-19-23The Missing Semester of CS
03-18-23The Value of Software Generalists
03-17-23Foundational Models Are Commodities
03-16-23On OpenAI's Kubernetes Cluster
03-15-23Choosing the Right Model
03-14-23Gell-Mann Amnesia
03-13-23On Prompt Injection
03-12-23Local LLaMA on a Mac M1
03-11-23Automatic1111 and AI Aggregators
03-10-23All the -Ops
03-09-23Chain of Thought Paradigms in LLMs
03-08-23Data Local Machine Learning
03-07-23On React.js
03-06-23Applications, Services, and Workflows Overload
03-05-23Will The AI Stack Be Open Or Closed?
03-04-23The Stoic Arrow
03-03-23Product Windows
03-02-23ChatML and the ChatGPT API
03-01-23The Bundling of the Software Developer
02-28-23Shells and Distribution
02-27-23More Art than Science
02-26-23Wrong Sequences For Startups
02-25-23Commoditization of Large Language Models: Part 3
02-24-23Taxonomy of Startup Risk
02-23-23The Connectors/Loaders Trap
02-22-23Erdős Vocabulary
02-21-23Why DSLs Fail
02-20-23Amdahl's Law and Optimization
02-19-23Why Python Won't Be the Language of LLMs
02-18-23Nix Is Fighting The Last War
02-17-23Interfaces for Uncertainty
02-16-23Why ChatGPT Needs AuthZ
02-15-23Ask Yourself Dumb Questions
02-14-23Carrying a Dozen Problems
02-13-23Blurring Language Boundaries
02-12-23LLM Ops, Part 1
02-11-23What Won't Change
02-10-23Multi-Model vs. Multi-Cloud
02-09-23Should OSS Projects Have Telemetry?
02-08-23Reactive Strategy
02-07-23Docker Without Docker
02-06-23Applications of Gall's Law
02-05-23Composable Models
02-04-23Stack Shift
02-03-23If It Doesn’t Ship, It Doesn’t Exist
02-02-23Optimal Stopping Theory
02-01-23Future is Not Evenly Distributed
01-31-23Zero Interest Rate Policy Phenomena
01-30-23The Frontend Bundling Cycle
01-29-23Type-Safe API Calls: tRPC vs. gRPC
01-28-23Overview of GPT-as-a-Backend
01-27-23Eisenhower Priority Matrix
01-26-23What Doesn't Fit in Git
01-25-23Cloud Services Ranked: Build vs. Buy
01-24-23Workflow Engine Paradigms
01-23-23Prompt Engineering Shouldn't Exist
01-22-23GPT Lineage
01-21-23How to Version an API
01-20-23Cheap UIs
01-19-23Cloud Spend Breakdown
01-18-23Rebuilding in Rust
01-17-23All Models Are Wrong (But Some Are Useful)
01-16-23The Problem with Drag-n-Drop Infrastructure
01-15-23Output vs. Outcome
01-14-23Garbage In, Garbage out?
01-13-23Winning Ugly and The Metagame
01-12-23Minix and nanoGPT
01-11-23Fully Managed Infrastructure
01-10-23Lessons from the Last AI Cycle
01-09-23White Space
01-08-23Fine-Tuning an OCR Model
01-07-23Semi-Organic Growth
01-06-23What's Next After NextJS
01-05-23RPA: The Human Interface
01-04-23The Implications of More Developers
01-03-23Counterfactuals
01-02-23A New ML Stack
01-01-23Top Posts of 2022
12-31-222023 Predictions
12-30-22Local AI: Part 2
12-29-22Local AI: Part 1
12-28-22Reflections on 2022 Predictions
12-27-22Proebsting's Law
12-26-22Turing Social: Twitter, For Bots
12-25-22Christmas 2022
12-24-22Shortest Time-to-Launch
12-23-22Software Rewrites
12-22-22Backward Compatibility
12-21-22ML Developer Experience
12-20-22The Architecture of Mastodon
12-19-22How Did Microsoft Win Back Devs?
12-18-22Vector Search
12-17-22The Fall of Freenode
12-16-22Docker as a DevTool Platform
12-15-22AI-driven Interfaces
12-14-22LAION, The Pile, and more datasets
12-13-22Abstracting the Infrastructure
12-12-22Lessons from Lensa
12-11-22Tarpit Ideas
12-10-22An Ideal CI/CD System
12-09-22Elo Rating
12-08-22Spam Filtering AI Content
12-07-22Google Takeout and Data Portability
12-06-22Stack Overflow Bans ChatGPT
12-05-22Will LLMs Disrupt Google Search?
12-04-22The Frontend Ouroboros
12-03-22A Conversation with ChatGPT
12-02-22Apple's Enemies
12-01-22MacGuffin
11-30-22Do Cold Starts Matter?
11-29-22Sharing a Notebook
11-28-22Fuzzy Databases
11-27-22Human-in-the-Loop and Other AI Mistakes
11-26-22Technical Posts Overview and Roundup
11-25-22Schelling Point
11-24-22Showing Up Every Day
11-23-22The Cloud Tax Implications
11-22-22Why Do Configuration Changes Cause Outages?
11-21-22Excel for Developers
11-20-22Will Twitter Fail?
11-19-22Generative AI Value Chain
11-18-22Amazon's Distributed Computing Manifesto (1998)
11-17-22Windows Subsystem for Linux
11-16-22Solving the Simple Case
11-15-22On the Mastodon Experiment
11-14-22On Launching
11-13-22LLMs for Code
11-12-22What is a Token? A Technical Explanation
11-11-22On FTX
11-10-22Information Barbell
11-09-22What are Containers?
11-08-22Decoy Effect
11-07-22What Happens to Infra Engineers?
11-06-22Generational Advantages
11-05-22UGC: User-Generated Code
11-04-22Mastering the Command Line
11-03-22Man in the Arena
11-02-22Who Pays? The Twitter Blue Check
11-01-22What If Google Builds This?
10-31-22Facebook's Culture Book (2012)
10-30-22And Yet it Moves
10-29-22Deploy Early, Deploy Often
10-28-22Ethereum RPC as a Service
10-27-22The Inner Dev Loop
10-26-22Apple's Ad Positioning
10-25-22Daily is the Product
10-24-22Kubernetes Interfaces
10-23-22Moat By Induction
10-22-22Exploiting Protocols for Fun
10-21-22AI Will Write Most Code
10-20-22Cloud Repatriation or Not?
10-19-22AI Scaling Laws
10-18-22Richard Feynman and Narrative
10-17-22SEC, Gensler, and Crypto
10-16-22Defaults
10-15-22Getting Stuck in the Past
10-14-22Short Taxonomy of Open-Source Strategies
10-13-22The Middle Squeeze
10-12-22A Personal Training Corpus
10-11-22Why Is NixOS Popular Again?
10-10-22Where Logic Lives
10-09-22On Web Clipping
10-08-22Risk vs. Uncertainty
10-07-22eBPF File Watching
10-06-22Reentrancy Attacks
10-05-22Perceptual Hashing
10-04-22Free Compute and Replit
10-03-22Screenshots as the Universal API
10-02-22The Steffen Boarding Method
10-01-22The Promise of Write Once, Run Anywhere
09-30-22Why Stadia Failed
09-29-22Thoughts on GitHub Actions
09-28-22Simple Group Theory
09-27-22Is Ethereum a Dumb Pipe?
09-26-22Startup Ideas I've Considered
09-25-22Hard to Compute, Simple to Verify
09-24-22What's an MVP in 2022?
09-23-22Infrastructure Defined Software
09-22-22Tree Shaking
09-21-22Rust, C++, or Carbon?
09-20-22It's Just a Tarball
09-19-22Standards, Protocols, and Platforms
09-18-22Is GitHub a Social Network?
09-17-22Google Infra For Everyone Else in 2022
09-16-22Adobe/Figma
09-15-22When To Roll Your Own X
09-14-22The Inventor's Paradox
09-13-22GraphQL Trades Complexity
09-12-22TensorFlow vs. PyTorch
09-11-22Recursive-length Prefix (RLP)/Simple Serialize (SSZ)
09-10-22SQLite Doesn't Use Git
09-09-22Materializing Results
09-08-22The Lost Art of System Administration
09-07-22Performance Comes Last
09-06-22Two Approaches to Prompt Engineering
09-05-22WASI vs. WASM
09-04-22Libraries > Languages
09-03-22Parallelizing Programs on the Blockchain
09-02-22The Unbundling of Twitter
09-01-22Low-end Disruption of AWS
08-31-22Why Does Google Kill So Many Products?
08-30-22The Commoditization of Large Language Models: Part 2
08-29-22Design in OSS
08-28-22Timeline of Early Email
08-27-22It's Harder to Read Code Than Write It
08-26-22Developer Platform Table Stakes
08-25-22The Value is in the API
08-24-22Value Accrual in the Crypto Infra Stack
08-23-22A Short List of Cognitive Biases
08-22-22r/K Startup Theory
08-21-22Tool-driven Scientific Revolutions
08-20-22Webhooks Aren't So Bad
08-19-22The Issues with Buildpacks
08-18-22Friction as a Proxy for Value
08-17-22Tradeoffs in API Design
08-16-22Teams, Slack, and Discord in Retrospect
08-15-22Cloud Native Localhost
08-14-22Towards Granular Compute
08-13-22The Ethereum Merge
08-12-22The Unreasonable Effectiveness of Makefiles
08-11-22Growing the Pie
08-10-22Developers Should Deploy Their Own Code
08-09-22Sanctioning a Smart Contract
08-08-22Braess's paradox
08-07-22Component-driven Markup
08-06-22On Unoptimizing
08-05-22Will v8 Isolates Coexist With Containers?
08-04-22The End-to-End Principle in System Design
08-03-22Sufficiently Decentralized
08-02-22Open-Source and Quadratic Funding
08-01-22The New Wave Frontend Toolchain
07-31-22Gacha Game
07-30-22A First-Class Language Package Manager
07-29-22Brooks in Reverse
07-28-22Don't Be Scared of Cloud Lock-in
07-27-22Lisp and Spreadsheets
07-26-22Adverse Selection Examples
07-25-22Defensible Machine Learning Model Naming
07-24-22Fault-Tolerant Design
07-23-22Non-Obvious Docker Uses
07-22-22Pull Request is Now the Unit of Review
07-21-22Presentation Next to Code
07-20-22Choosing Esoteric Technology
07-19-22The Quick Uptake of ARM on Cloud
07-18-22Stacked Pull Requests
07-17-22Shannon's Demon
07-16-22IaC: Strength or Weakness for Cloud Providers?
07-15-22Sybil Attacks on Airdrops
07-14-22The Story of CP/M
07-13-22Hotelling's Law and Differentiation
07-12-22Distribution in a Downturn
07-11-22The Remix IDE
07-10-22SSH: Less Relevant In the Cloud
07-09-22So Easy You Could Run It Yourself
07-08-22Smart Contract Immutability
07-07-22Not Even Wrong
07-06-22How Kubernetes Broke Git
07-05-22Commoditization of Large Language Models
07-04-22What Comes After Git
07-03-22A Look Into My Development Stack
07-02-22Giving Up Decentralization: Scalability Trilemma
07-01-22Does Financial Policy Matter?
06-30-22The Centralization of dYdX
06-29-2216 Bell-Curve Opinions on Engineering
06-28-22History of Version Control Systems: Part 3
06-27-22History of Version Control Systems: Part 2
06-26-22History of Version Control Systems
06-25-22Asset-lite in an Asset-Heavy Business
06-24-22Sequencing
06-23-22Panic of 1907/2022
06-22-22How to Use GitHub Copilot Effectively
06-21-22Least Common Denominator APIs
06-20-22Every Sufficiently Advanced Configuration Language is Wrong
06-19-22Is Snowflake a Platform?
06-18-22Plaintext Protocols
06-17-22Thoughts on RSS
06-16-22Convergence of DBaaS and BaaS
06-15-22Path of Least Resistance
06-14-22Don't Use Kubernetes, Yet
06-13-22The Last Question
06-12-22The Cost to Participate In Decentralized Networks
06-11-22Work Expands to Fill the Space
06-10-22Web3's Eternal September
06-09-22Are Platform Teams Dead?
06-08-22The Surprising Linearity of GitHub Star Growth
06-07-22The Centralization of Skype
06-06-22Usage-based Pricing in a Downturn
06-05-22Fallacies of Distributed Systems
06-04-22Datadog's State of Serverless
06-03-22The Idea Maze
06-02-22A Napkin Architecture of Ethereum Interfaces for Developers
06-01-22Product Velocity of Alternative Cloud Platforms
05-31-22Programming to the Interface
05-30-22Interface Decomposition in Cloud
05-29-22Payment for Order Flow in Web3
05-28-22One Year of Daily Blogging
05-27-22ETL vs. Platform Extensibility
05-26-22Computer Tips For Everyday People From a Software Engineer
05-25-22Text to Image Diffusion Models
05-24-22List of All Oblique Strategies
05-23-22A Universal Package Manager
05-22-22Smart Contract Language Runtimes
05-21-22A Short Primer on eBPF
05-20-22Crypto Without Blockchains
05-19-22Streaming Applications
05-18-22Minsky Cycle
05-17-22SQLite Renaissance
05-16-22PaaS Design Principles
05-15-22The Problem of Sharing Code
05-14-22Stablecoin Depegging
05-13-22Why Did Heroku Fail?
05-12-22Null Programming Philosophy
05-11-22Future of Passwords
05-10-22Request for Product: Typescript Docker Construct
05-09-22The Economics of Seinfeld
05-08-22Code Managed Service is Coming For Static Sites
05-07-22Taking on Good Technical Debt
05-06-22Elevator Data Structures and Algorithms
05-05-22API Aggregators Aggregating Aggregators
05-04-22Correlation vs. Causation
05-03-22Miner Extractable Value
05-02-22{Java,Py}Script
05-01-22The M:N API Problem
04-30-22Ethereum Transaction Fees
04-29-22Steganography
04-28-22What's Holding Monorepos Back?
04-27-22Path Dependence
04-26-22Improving Twitter
04-25-22Merkle Trees
04-24-22Innovation Tokens
04-23-22Permissionless Reckoning
04-22-22Chekhov's Gun of Product Development
04-21-22Why Do Protocols Win?
04-20-22Serverside, or Clientside WASM?
04-19-22Less Sticky SaaS
04-18-22Only the Paranoid Survive
04-17-22Stitching Together SaaS
04-16-22Annus Mirabilis
04-15-22Schema-driven Development
04-14-22Cathedral and Bazaar Startups
04-13-22Accidentally Turing Complete
04-12-22Why So Many Outages?
04-11-22Language Server Protocols
04-10-22Plan9: Everything is (Really) a File
04-09-22Every Unix Command Becomes a Startup
04-08-22Backwardation and Contango
04-07-22Shift Left: Observability at the Edge
04-06-22NFT and Email Spam
04-05-22Scaling Ethereum: Horizontal/Vertical
04-04-22Zero Knowledge Proofs
04-03-22Configuration-to-Code
04-02-22Engineering Against the Grain
04-01-22Type 1 and Type 2 Errors
03-31-22$ make docker
03-30-22Lagging vs. Leading Indicators
03-29-22On Standardized Tests
03-28-22Threat of the Hard Fork
03-27-22Elliptic Curve Cryptography for Beginners
03-26-22Carthago Delenda Est
03-25-22Build-as-Code
03-24-22How to Negotiate a Car Lease
03-23-22SaaS is the New Microservices
03-22-22Working on the Right Problems
03-21-22Trends from The Enterprise 30
03-20-22Embrace. Extend. Extinguish.
03-19-22Gall's Law
03-18-22Developer Velocity
03-17-22API Warfare
03-16-22Problems with Daylight Saving Time
03-15-22GitHub Isn't About Code
03-14-22youtube-dl and Google
03-13-22Sword of Damocles
03-12-22Blockchain Trade-offs: Part 3 – Incentives
03-11-22Blockchain Trade-offs: Part 2 - Privacy
03-10-22Blockchain Trade-offs
03-09-22Exponential Trends
03-08-22Ignore Sunk Costs
03-07-22Environment Parity
03-06-22Wire Protocols and APIs
03-05-22SPAs weren't a mistake
03-04-22Latency Numbers You Should Know (2022)
03-03-22What is SWIFT?
03-02-22Modus Tollens
03-01-22Giving It Away For Free
02-28-22Year 2038 Problem
02-27-22Software Convention in Consistency
02-26-22Why First Mover Advantage is Overrated
02-25-22Squash, Merge, or Rebase?
02-24-22Remote Work Zealotry
02-23-22J-Curves
02-22-22Don't Ship an Architecture
02-21-22Total Cost of Ownership and Crypto
02-20-22Order of Magnitudes
02-19-22Regression to the Mean
02-18-22Spectrum of Reproducibility
02-17-22Shodan and Port-Knocking
02-16-22What is Dog Fooding, Fish Fooding a Product?
02-15-22Compiled Configuration Stack
02-14-22Cutting Out the Middleman
02-12-22Algorithmic Fairness
02-11-22Why TypeScript for Infrastructure?
02-10-22Rickard's Law of Eponymy
02-09-22Optimization is Fragile
02-08-22VA Linux
02-07-22Platform vs. Publishers
02-06-22Onion Futures Act and Saturated Channels
02-05-22Commoditized Trust
02-04-22Meta on Meta
02-03-22Behind the $325mm Blockchain Hack
02-02-22Rethinking the PDF
02-01-22Okta's 2022 Business at Work
01-31-22Keynesian Beauty Contest
01-30-22Building the VPC Layer for Cloud
01-29-22Software Half-Life
01-28-22Flying-Car Syndrome
01-27-22Dumb (and Free) Interchange
01-26-22Source Code Generation
01-25-22The Declarative Trap
01-24-22S3 Isn't Getting Cheaper
01-23-22Negative Value Features
01-22-22Software Mullets
01-21-22Embedded DevOps Teams
01-20-22Antitrust Opportunity
01-19-22Technical Perfection and Irrelevance
01-18-22Layer Above, Layer Below
01-17-22Monk's Window
01-16-22Notes from Behind the Cloud
01-15-22Best Tech Acquisitions of All Time
01-14-22Code or Issues in DevOps Platform(s)?
01-13-22AWS is Not a Dumb Pipe
01-12-22Reversing the Chicago River
01-11-22Veto Power and Decision-Making Process
01-10-22Too Cheap to Meter
01-09-22Maxwell's Equations and Bridges
01-08-22The Story of Adobe
01-07-22Wordle: What's the Best Starting Word?
01-06-22Losing Sleep Over Java
01-05-22VPN as a Dev Tool
01-04-22Strategy Beyond Markets
01-03-22Pair Programming Doesn't Scale
01-02-22Increasing Bus Factor
01-01-22Antifragile in 2022
12-31-212022 Predictions
12-30-21Expert Networks
12-29-21Open Customer Data
12-28-21Russell Conjugation and The Great Rebranding
12-27-21Developer Network Effects
12-26-21Virtual Reality this Christmas
12-25-21Capturing Digital Identity
12-24-21Ownership in the Twenty-First Century
12-23-21Lost Art of Arch Linux
12-22-21Hunting Bugs with Bisect
12-21-21Twitch's Gini Coefficient
12-20-21Antiwork
12-19-21The Real Fix for Log4j Isn't a Patch.
12-18-21Next-Gen Terminals
12-17-21No Brown M&M's
12-16-21Top 10 Posts of 2021
12-15-2190% of Everything is Crap
12-14-21Unused Gift Cards are Great Business
12-13-21Metaverse and Other Words from Science Fiction
12-12-21Is Open Source Free Riding Bad?
12-11-21U-Shaped Utility of Monorepos
12-10-21The Leopard of Kilimanjaro
12-09-21Toolchain Sprawl
12-08-21Hollywood Accounting
12-07-21Direct Registration System (DRS)
12-06-21The Toyota Production System
12-05-21It's Impossible to Design a Watch that Only Tells Time
12-04-21If It Can Be Compiled, It Will Be
12-03-21Every DevOps Company is an Observability Company
12-02-21The Most Entertaining Outcome is the Most Likely
12-01-21Jane Jacobs and Software Engineering
11-30-21On Centralization
11-29-21Achilles and the Tortoise
11-28-21Calculating Willingness to Pay
11-27-21Browse Now, Pay Later
11-26-21Netlify, Vercel, and AWS Amplify
11-25-21Cloud Marketplaces
11-24-21The Sailing Ship Effect
11-23-21Shortcomings of Diff3
11-22-21How Git Merges
11-21-21The Gordian Knot
11-20-21How to Comment Your Code
11-19-21The Terrible UX of Git
11-18-21Being Wrong on Hacker News
11-17-21GitHub's Missing Package Manager
11-16-21The Collision Course of Databricks and Snowflake
11-15-21Mining Crypto on My M1 Max
11-14-21No Time to Read Bad Books
11-13-21The Goat Behind the Door
11-12-21A Browser for Developers
11-11-21How to Beat Google Search
11-10-21Open Infrastructure
11-09-21Open-sourced GPT-J
11-08-21PQLs
11-07-21Where is the Edge?
11-06-21The Cloud Cost Era
11-05-21The Next Design Systems
11-04-21Rich Barton and Zillow
11-03-21Commodity SaaS
11-02-21Niche Communities
11-01-21I Miss The Programmable Web
10-31-21Chesterton's Fence
10-30-21Cloud Growth in 2021
10-29-21Founder Vision
10-28-21Technical Wedges
10-27-21Data Planes and Control Planes
10-26-21Kelly Criterion
10-25-21Remote Work for Developers
10-24-21Solving Supply Chain with a Tweet
10-23-21How Complex Systems Fail
10-22-21Scoping Developer Tools
10-21-21IDE as a Platform
10-20-21Agent vs. Agentless Future
10-19-21A Short History of the M1 Chip
10-18-21Zuckerberg on Platforms
10-17-21Alternative Data on Developer Products
10-16-21Top-Down JAMStack vs. Cloud
10-15-21The GitLab Upgrade
10-14-21Takeaways From JetBrain's Developer Survey 2021
10-13-21Templating: When to Move Along the Heptagon
10-12-21Kubernetes in the Data Stack
10-11-21Calculating SaaS Retention
10-10-21The Tarpit
10-09-21The Changelog Podcast #463
10-08-21Open Source Reckoning
10-07-21Running Fast
10-06-21What is BGP?
10-05-21The Birth & Death of JavaScript
10-04-21Sales Compensation at GitLab
10-03-21Zawinski's Law
10-02-21Egregious Egress and Disruption
10-01-21The Puzzling Corporate Archaeology of MIPS
09-30-21What is RISC-V?
09-29-21Extending Applications with WebAssembly
09-28-21A Hypothesis is a Liability
09-27-21Go-to-market Strategy
09-26-21Developer Experience
09-25-21Knuth and McIlroy Approach a Problem
09-24-21Commoditizing Your Complements in the Cloud Era
09-23-21A Public Public Company
09-22-21The Unbundling of the Software Developer
09-21-21The Problems with "Cloud-Prem"
09-20-21Thinking Like a Contrarian With Counter-Positioning
09-19-21Remote Developer Environments are Cool Again (Kind of)
09-18-21Laws of Software Evolution
09-17-21Infrastructure as SQL
09-16-21The Data Stack As a Snowflake
09-15-21How to Calculate a CIDR
09-14-21Email is Back in Vogue
09-13-21Net Dollar Retention
09-12-21Frustrations of Modern Development
09-11-21Software Treadmills
09-10-21The End of CI
09-09-21Ten Things I Look For In a Code Review
09-08-21The Mother of All Demos
09-07-21As We Thought
09-06-21The Rule of 40
09-05-21Tools as Code
09-04-21Are Ideas Getting Harder to Find?
09-03-21Product-Led Sales Efficiency at GitLab
09-02-21Different Types of Software Containers
09-01-21An Overview of Docker Desktop Alternatives
08-31-21Your Integration Tests are Too Long
08-30-21SaaS Isolation Patterns
08-29-21Buying IPv4 Addresses
08-28-21Words
08-27-21The Clever Hans Effect
08-26-21Incremental Compilation in Build Systems
08-25-21The Map is Not The Territory
08-24-21What Low-Code Lacks
08-23-21Keep Your API Surface Small
08-22-21Nine Circles of Dependency Hell
08-21-21History of Silicon Valley: 1891-1956
08-20-21Potential Energy in Startups
08-19-21Tracking Cyclomatic Complexity
08-18-21Hire for slope, not Y-Intercept
08-17-21One Month of Using GitHub Copilot
08-16-21DRY Considered Harmful
08-15-21Yak Shaving
08-14-21Cheap and Expensive
08-13-21Non-Consensus Right
08-12-21Signaling Against Asymmetric Markets
08-11-21Growing Your Open Source Project: Part 3 – Users
08-10-21Growing Your Open Source Project: Part 2 – Community
08-09-21Growing Your Open Source Project: Part 1 – Contributors
08-08-21Service Reliability Math that Every Engineer Should Know
08-07-21Coding Classical Latin
08-06-21Confessions of an Internal Tool Builder
08-05-21Unexpected Developer Trends
08-04-21Real Options Valuation
08-03-21Silence Dogood and the Ben Franklin Effect
08-02-21Reflections on 10,000 Hours of Programming
08-01-21Economics of Bundling and Unbundling
07-31-21Limiting Steps
07-30-21How Multiplayer Data Structures Work
07-29-21Grok
07-28-21Don't Break the Chain
07-27-21Kubernetes Maximalism
07-26-21How to Spot a Made Up Number
07-25-21The IKEA Effect in Software Development
07-24-21Why The Dow Jones is a Lousy Index
07-23-21Functions as a Service
07-22-21Orthogonal or Parallel Problems
07-21-21Be Lazy
07-20-21Open-Source and Firm-Specific Training
07-19-21In Defense of the Jupyter Notebook
07-18-21Code Poems
07-17-21Ship Thesean Software
07-16-21A History of 'Welcome, seriously' Ads
07-15-21A Personal Internet
07-14-21Everything is a Graph
07-13-21The Potato Paradox
07-12-21Package Managers and Developer Productivity
07-11-21JEDI Mind Tricks
07-10-21GitHub Copilot
07-09-21Avoiding People at Work
07-08-21Strange Loops
07-07-21The Taste Gap
07-06-21Dynamics of Switching Costs
07-05-21High-Velocity Decision-Making
07-04-21Makers of Patterns: Part 2
07-03-21Maker of Patterns: Part 1
07-02-21What is WebAssembly?
07-01-21What is MicroSaaS?
06-30-21Jevons Paradox and Software Efficiency
06-29-21Steven P. Jobs and Pixar Employees Buy Pixar
06-28-21Survivorship Bias
06-27-21Code Transparency
06-26-21Machine Learning Operations (MLOps), Convergent or Divergent?
06-25-21Foundational Products
06-24-21How Startups Grew by Platform Hacking
06-23-21Live Programming
06-22-21Reducing Errors in Decision-Making
06-21-21First Principles
06-20-21Platform Advantage: Velocity
06-19-21The End of Per-node Pricing
06-18-21Software Wants to be Simple
06-17-21Observations of the Lindy Effect
06-16-21Everything is a Browser
06-15-21Declarative vs. Imperative
06-14-21Diseconomies of Scale at Google
06-13-21Asynchronous Communication
06-12-21The Post-Modern Web
06-11-21Why Developers Will Win the Creator Economy
06-10-21Build a Team of Rivals
06-09-21Comparative Advantage and Why PMs Shouldn't Write SQL Queries
06-08-21The Case For XCode Cloud
06-07-21Problem Solving Techniques from Math
06-06-21Getting to Market With Rails
06-05-21The Developer Economy
06-04-21APIs Will Disrupt Rpa. This Is Obvious to Engineers.
06-03-21Organic Cloud Infrastructure
06-02-21Usage or Subscription Pricing
06-01-21Docker Is a Compiler
05-31-21Inorganic Growth at Zynga
05-30-21A Mind at Play
05-29-21What's Measured Gets Managed
05-28-21Why Do Companies That Sell APIs Have Such Low Churn Rates?
03-14-21ScapeNet: Real-time object detection in RuneScape
02-03-21Docker Merge
12-11-20Sales Calculus, Part 1: Scaling
07-09-20Is Technology Making Us More Productive?
07-08-20Virgo: a Graph-based Configuration Language
07-05-20The Negative Operating Cycle
02-26-19Reproducibility in Practice
02-22-196 Open Source Licenses That You Shouldn't Use
01-10-19An Alternative to the Dockerfile
01-01-19The Heptagon of Configuration
10-22-18Should Your Developers Work in the Cloud?
10-11-18Fast Kubernetes Development with File Sync and Smart Rebuilds
10-08-18Offline is a Feature, Not a Product
10-06-18Unit Testing with the Kubernetes Client Library