Filter by source
All sources GoCardless 6194 PubNub: 2474 Vercel 1663 Ariya Hidayat 849 Serverless 849 Jake Trent 816 Drew DeVault 784 Nic Raboy 734 SitePoint 629 Neon 503 Supabase 435 Shopify 432 Soundcloud 409 Databricks 396 Real Python 394 Johannes Brodwall 378 Jeremy Kun 327 Laravel 296 PostHog 294 Twilio 258 Graham King 257 MapTiler 257 Carlos Becker 252 Scott Johnson 250 Cloudflare 244 Lea Verou 244 Matt Aimonetti 231 Atomic Object 218 Andrew Bancroft 214 Nvidia 210 Stanko Tadić 189 Lerner Consulting 188 Stack Overflow 183 Freek Van der Herten 182 The Daily WTF 168 Raymond Chen 165 Trivago 159 GitHub Old 155 Discord 140 Dan Luu 137 WyeWorks 134 Swizec Teller 133 Una Kravets 132 Auth0 129 Codrops 126 OCTO Technology 123 Reginald Braithwaite 121 Android 119 Jane Street 119 Hostinger 118 Radek Pazdera 118 Warp 114 AWS 110 Antirez 110 Thoughtbot 105 Cerner 103 AdRoll 102 Changelog 101 Jake Wharton 101 Nelson Elhage 98 Martin Fowler 96 dbt Labs 95 Ilija Eftimov 94 Marek Majkowski 94 Docker 87 .NET 86 Finn.no 86 Nick Desaulniers 86 Hayden James 84 Marcelo Rinesi 84 Nordic APIs 82 Timescale 82 Toptal 82 Luciano Mammino 80 Sentry 79 Wingify 78 Jessie Frazelle 77 Monica Dinculescu 77 Matt Warren 76 Drivy 75 Jan Lelis 75 T.J. Maher 74 Paweł Chudzik 73 Kotlin 69 Ebay 68 Mykhailo Kozik 68 Axel Rauschmayer 64 Mozilla Release 64 Evil Martians 63 Confluent 62 Tania Rascia 60 0xADADA 59 Jake Yesbeck 59 Khan Academy 59 Tailscale 59 Dean Hume 57 RoseHosting 56 SurveyMonkey 53 jOOQ 53 Sam Saffron 51 Facebook AI Research 48 Monstermuffin 48 Huon Wilson 45 Philip Walton 45 Dennis Felsing 44 HackerEarth 44 Rust 44 The Pragmatic Engineer 44 Fly.io 43 Josh Sherman 42 Stripe 42 Gleb Bahmutov 41 Robin Ward 41 Philipp Oppermann 40 Armin Ronacher 36 Daniel Doubrovkine (dB.) 36 Alex Russell 35 Grab 35 Addy Osmani 34 Airbnb 34 Pinterest 34 Tumblr 33 8th Light 32 Joe Nelson 32 Brandwatch 31 Palantir 31 Bartlomiej Filipek 30 Domenico Luciani 30 Lazarus Lazaridis 30 Pamela Fox 30 Evan Miller 29 IPFS 29 Vanilla Java 29 Evan Hahn 28 Jonathan Snook 28 PagerDuty 28 Ruslan Spivak 28 Dereuromark 27 Okta 27 Petr Mitrichev 27 Red 27 GitHub 26 Julia Evans 26 Mozilla Hacks 26 Bad Concurrency 25 CSC - IT Center For Science - Cloud Team 25 GameChanger 25 Guido van Rossum 25 Jay Fields 25 Jeff Preshing 25 Life Plus Linux 25 Mark Seaborn 25 Oona Räisänen 25 Srinivas Tamada 25 Stephen Colebourne 25 Steve Yegge 25 Criteo 24 Eli Bendersky 24 Kogan.com 24 Squarespace 24 Dropbox 23 Crystal 22 Elegant Code 22 Babbel 21 Blundell's Android Tutorials 21 Gusto 21 HomeAway 21 Netflix 21 Dave Cheney 20 David Walsh 20 Erlang Solutions 20 Guardian 20 Justin Weiss 20 Michael Herman 20 Miguel Quinones 20 Mike Ash 20 Ole Begemann 20 Paul Irish 20 Robert C. Martin 20 Stefan Parker 20 Target 20 Wilfred Hughes 20 Yahoo 20 Instacart 19 Jeff Atwood 19 Spotify 19 Thumbtack 19 Aaron Patterson 18 Arkency 18 Nikola Brežnjak 18 The Coded Self 18 Jerry Gamblin 17 Matthew Green 17 Wealthfront 17 Chris Wellons 16 Filippo Valsorda 16 Medium 16 Postmark 16 RocksDB 16 Stack Abuse 16 Yegor Bugayenko 16 Zach Holman 16 Amit Merchant 15 Bigcommerce 15 Blender 15 Edward Faulkner 15 High Scalability 15 Housing.com 15 Hypriot 15 Jacopo Tarantino 15 John Wittenauer 15 Lambda the Ultimate 15 Localytics 15 Microsoft Python 15 Robin Wilson 15 Slack 15 Advanced Web Machinery 14 Grofers 14 Helpshift 14 HubSpot 14 OLX 14 REA Group 14 Rob Allen 14 Vlad Mihalcea 14 Bootstrap.com 13 Feedzai 13 Grafana 13 Indeed 13 Lyft 13 Michael Crump 13 Nextdoor 13 Scott Hanselman 13 Strava 13 Bazaarvoice 12 Canva 12 Henrik Warne 12 Jon Skeet 12 Mary Rose Cook 12 Nicolas Liochon 12 Novoda 12 Steve Bellovin 12 Abu Ashraf Masnun 11 Badoo 11 Deliveroo 11 Eric Lippert 11 Haptik 11 Hashrocket 11 JobTeaser 11 Kevin Burke 11 Marco Pivetta 11 New York Times 11 OpenDNS 11 Paypal 11 Ramon Fried 11 RisingStack 11 Small Improvements 11 VNGRS 11 Vinted 11 Zendesk 11 Alan Storm 10 Appnexus 10 Artsy 10 BBC 10 Benchling 10 Bill the Lizard 10 Bohops 10 Brendan Eich 10 Brendan Gregg 10 Brujo Benavides 10 Clever 10 Curalate 10 Daily JS 10 Daily Tech Video 10 Daniel Schmidt 10 Dot Dev (.dev) 10 Dragan Djuric 10 Eddie Smith 10 Eric Elliot 10 Erik Runyon 10 Evan Jones 10 Federico Cargnelutti 10 Findmypast 10 Flickr 10 Freeletics 10 GoSquared 10 Groupon 10 Harry's 10 Henrik Lau Eriksson 10 High Scalability 10 Hootsuite 10 Idontgetoutmuch's Weblog 10 Itamar Turner-Trauring 10 Jamis Buck 10 Jesal Gadhia 10 Joel Spolsky 10 Juan Treminio 10 Junior Grossi 10 Kirill Shevchenko 10 Larry Land 10 Matt Cutts 10 Matt Might 10 Mesosphere 10 Miro Cupak 10 Miro 10 NSHipster 10 Nick Craver 10 Ofer Zelig 10 Panorama Education 10 Pat Shaughnessy 10 Piotr Pasich 10 Pony Foo 10 Postman 10 ReactJS News 10 Regular Geek 10 Remind 10 RetailMeNot 10 Riot Games 10 Schakko 10 Skyscanner 10 Stitch Fix 10 Teamwork 10 Tikhon Jelvis 10 Tinder 10 Transferwise 10 TrueCar 10 Undocumented Matlab 10 Universe 10 UpGrad 10 VTS 10 Wojtek Gawroński 10 XING 10 Yammer 10 Yifan Lu 10 Zolmeister 10 eFounders 10 Josh Haberman 9 Nate Berkopec 9 Wemake.services 9 Mike Fogus 8 Ian Hummel 7 Ilya Grigorik 6 K. Harrison 6 Sensible 6 James Long 5 Thomas Young 5 Edgar Aroutiounian 4 Avenue Code 3 Bandcamp 3 James Hague 3 Raymond Hettinger 3 Algolia Anders Aarvik Ariejan de Vroom Asana Atlassian Bjørn Johansen Blake Erickson Bryan Cantrill Capgemini Chen Hui Jing Chien Tran Cloudera Cloudsmith CockroachDB Code with style! CodeName One Codelitt Codeship Commercetools Credit Karma Crowdfire Deezer DoorDash Dragan Gaic Engine Yard Entelo Envato Envoy Eventbrite Federico Tomassetti Figma GIPHY Galois Go GoDaddy Guilherme Rodrigues Hashnode Heroku Honeybadger Honeycomb IMVU Ievgen Kuzminov Instagram Jobandtalent John Resig Jonathan Dekhtiar Just Eat Kinvolk Kolosek Kyle Kingsbury LINE Linear LiveRamp Liveblocks Made Tech Marc Plano-Lesay Microsoft Edge Moove-it Mozilla Automation Team NPR Apps Nicolai Parlog (CodeFX) Oursky Oxide Computer Paul Lewis Peter Norvig Peter Steinberger Peteris Krumins PicCollage PlanetScale Prezi PullReview Rachel Kroll Radim Řehůřek Ray Wenderlich React Native Render Retool Schibsted Tech Polska Sharethis Sketch Sky Betting & Gaming Soshace Speedledger Sqreen Square Stackshare Swift Swiggy Takipi Temporal Turso Vena Solutions VersionEye Wayfair William Kennedy Zed Zendesk(old) theScore
36 articles Visit blog →

1. Good Morning, Dave: the 1998 INET Conference Kiosk Launcher (code.dblock.org)

In July 1998, the Internet Society held INET ‘98, “The Internet Summit”, at Palexpo in Geneva. The University of Geneva provided about 250 computers for the conference, and I was a student there. I wrote much of the conference network’s website, www.inet98.ch, and the launcher that ran on the public...

2. zBalls: a 1998 Java Applet (code.dblock.org)

In January 1998, a classmate and I wrote a game. It was called “Bolongas zBalls”, and it was a Java applet. You click to start, then move the mouse, without clicking. Touch the dark ball to blow it up, and the next ball turns dark. Clear them all and the next level doubles the number of balls. Touch...

3. The Second Life of Autoconf for MS-DOS (code.dblock.org)

Before GNU Autoconf generated configure scripts, there was a DOS program called Autoconf. It let you keep one CONFIG.SYS and one AUTOEXEC.BAT, then choose among boot configurations by pressing a key. You did not have to wait for a menu. The PC BIOS kept early keystrokes in its keyboard queue, so you...

4. Porting My 1996 Pascal/Delphi Calculator to Rust (CLI + MCP) (code.dblock.org)

In his Rails World 2026 keynote DHH talks about one-shot apps built almost instantly with an agent as part of Omarchy. His canonical example is Omacalc, a dead simple calculator. It’s a good demo and not a hard problem. Let’s take it further and rewrite a more advanced calculator in Rust that we can...

5. Using AI Effectively in Technical Writing (code.dblock.org)

I write a lot, and I use AI a lot. But AI does not write my blog posts. Mostly. AI is useful for making some of my writing less tedious. Recently, I asked GitHub Copilot CLI to read a few dozen posts from this blog and derive a VOICE.md to assist my writing. The result is now checked into this repo ...

6. Serving Markdown for AI Agents, Now as a Jekyll Plugin (code.dblock.org)

Back in January I wrote Serving Markdown for AI Agents: for every page on this blog, there’s also a .md version at the same URL, discoverable via a <link rel="alternate" type="text/markdown"> tag, so AI agents can fetch clean Markdown instead of parsing HTML. It also made me $360, via referral conve...

7. In Meetings, Raise Hands Before Reading (code.dblock.org)

I spent five and a half years at AWS before moving (back) to Microsoft, where I work today. At Amazon, many meetings began with silent reading. Instead of presenting a document, the author gave everyone time to read it before the discussion started. There was a small facilitation trick that made thi...

8. Porting a Discord Bot to Microsoft Teams, Entirely With AI (code.dblock.org)

Slava (slack-strava) connects a Strava account to a chat and posts a card for every activity, complete with map, pace, and elevation, plus commands like connect, disconnect, stats, and leaderboard. In 2023 I ported Slava to Discord by hand, evening by evening over about three weeks, and it took most...

9. Standardizing Exception Message Style in Ruby (code.dblock.org)

While reviewing dozens of PRs from ericproulx optimizing Grape’s internals recently, I noticed that the bare raise ArgumentError, "..." calls scattered across the codebase were inconsistent: some messages were capitalized, some ended in a period, most were not. Longtime readers know where this is go...

10. Adventures in Daylight Saving, Norfolk Island, and Time Zone Math (in Ruby) (code.dblock.org)

distance_of_time_in_words is a small Ruby gem that turns two Time objects into a human-readable string like “3 days and 4 hours”. Two separate bug reports against it this year turned out to be variations on the same theme: computing a duration between two timestamps is not the trivial subtraction it...

11. Benchmarks Are Free Now (code.dblock.org)

My previous post walked through four bugs in ruby-enum, a gem I maintain, all stemming from the fact that class-level instance variables aren’t inherited by subclasses. The third fix, #59, made keys, key?, value?, key, value, to_h, parse and each walk up superclass and merge in a parent’s enums, so ...

12. Ruby Instance Variables Are Not Inherited (and Why That Breaks Your DSL) (code.dblock.org)

The ruby-enum gem is a small library I maintain that adds enum-like behavior to a class via include Ruby::Enum and define :KEY, value. Four pull requests landed against it recently, each fixing a different symptom, and all four turned out to be the same underlying bug: class-level instance variables...

13. Generating AI Descriptions of Automated Pull Requests (code.dblock.org)

The slack-ruby-client library, an open source Ruby gem I maintain, runs a scheduled GitHub Actions workflow that regenerates code from Slack’s API definitions and opens a pull request with the diff. The commit message and CHANGELOG entry used to be a generic “Update API (2026-08-11)”, which told a r...

14. Coding with AI Agents is Now a Baseline Expectation for Managers (code.dblock.org)

AI-first Engineering is now the operating default in many organizations, including mine. Developers have kept up. Vibe coding became agentic engineering, and the race towards truly autonomous engineering isn’t slowing. But what are we, managers, to do? A manager job continues to include recruiting a...

15. How I Made $360 by Serving Markdown to A.I. agents from My Jekyll Blog (code.dblock.org)

In April 2025 I wrote Apologizing for My Obsessiveness Over Punctuation, a post about my various organizational compulsions. Near the end, almost as an aside, I mentioned that I obsessively categorize expenses in Monarch, a personal finance app, linking it with my referral code. That post earned me ...

16. Opening Proprietary Code to Contributors Checklist (code.dblock.org)

Before AI coding assistants, a typical engineering team built expertise with the years: new team members joined, contributed small bug fixes, then were given more ambitious tasks over time as they became more comfortable in a codebase, to ultimately become experts. This process took years. In contra...

17. AI Slop: A Slack API Rate Limiting Disaster (code.dblock.org)

Yesterday I described AI-generated code as “plausible-looking, locally coherent, globally wrong.” Here’s a concrete example from my own codebase. I needed a cleanup job to close old Slack group DM conversations in my slack-sup2 app. The AI-generated solution looked perfectly reasonable: def close_ol...

18. Right-Sizing Engineering Teams for AI (code.dblock.org)

Before AI coding assistants, a typical engineering team of 8-10 people might have been lucky to have one or two “10x engineers”, or “workhorses”, the kind of engineer that both keeps project quality and feature velocity high. AI tools have solved the workhorse half of this equation, enabling massive...

19. The Golden Ratio of Manager to IC (code.dblock.org)

In today’s shocker, Meta is to “create a new applied AI engineering organization aiming for an ultra-flat structure of up to 50 employees to one manager”. Like all software engineers I, too, tend to apply a data‑driven, mathematical approach to every problem in the world. Yet I would have chosen a m...

20. Serving Markdown for AI Agents in Jekyll (code.dblock.org)

Dries Buytaert recently wrote about The Third Audience. For decades, websites have targeted two audiences: humans and search engines. AI agents are now the third audience, and most websites aren’t optimized for them yet. AI agents prefer clean, structured content over HTML. Markdown is ideal - it’s ...

21. Turning Hypermedia APIs into MCPs (code.dblock.org)

I’ve written and talked extensively about Hypermedia APIs for about a decade. The HATEOAS constraints in representing resources for a RESTful API has numerous advantages in API design, readability, discoverability, and performance over a hand-rolled REST API. Unfortunately, adoption of Hypermedia AP...

22. Using AI to Reduce the Burden of Status Reporting (code.dblock.org)

One of the negative side effects of having any top-down command structure is that every additional layer risks introducing a new level of bureaucracy, which then actively subtracts value. Consider the Politburo of the USSR with dozens of offices of skilled bureaucrats. Because most produced no actua...

23. How to Disagree and Commit like Switzerland (code.dblock.org)

The most abused principle in dysfunctional organizations is “Disagree and Commit”. In Don’t Tell Engineers What to Do I said that “telling people what to do, especially if they are in your direct reporting chain, must not be mistaken for “Disagree and Commit”. So, what is a healthy “Disagree and Com...

24. Don't Tell Engineers What to Do (code.dblock.org)

A famous example where telling Engineers what to do backfired was the Space Shuttle Challenger disaster in 1986. Engineers at Morton Thiokol, the contractor responsible for the shuttle’s solid rocket boosters, warned NASA management that the O-rings in the boosters could fail in cold weather. The ni...

25. Using Claude Code with Google Sheets (code.dblock.org)

Let’s get Claude Code to connect to Google Sheets. We’ll use this Google Sample Spreadsheet. Go to the Google Cloud Console, create a new project, and enable the Google Sheets API on it. Install the Google Cloud CLI. brew install google-cloud-sdk Choose the newly created project on the command line....

26. I Failed to Implement the Diameter of a Binary Tree in a Coding Interview (code.dblock.org)

Six months ago I failed a basic coding interview at a FAANG. Yes, I was a Principal Engineer, and yes, I was paid absurd amounts of money, yet I couldn’t implement a diameter of a binary tree as a “warm up” exercise, 10 lines of code. The interviewer was very nice about it, and was equally surprised...

27. Using Claude-Swarm to Upgrade Ruby Projects (code.dblock.org)

One of my colleagues wrote a pretty awesome tool called claude-swarm that orchestrates multiple Claude Code instances as a collaborative AI development team. At Shopify, we are attempting to use it to generate Ruby unit tests at some scale with an army of AI test agents (think a “Ruby Expert” paired...

28. Pros and Cons of Going from Individual Contributor Back to Manager (code.dblock.org)

There’s much written about becoming a first time Engineering Manager (I recommend Camille’s book), but little about the second time. To my own surprise, I am back to being a manager after almost 6 years of writing code as an individual contributor (IC). Two months ago I joined the Developer Producti...

29. Executing Structured A.I. Workflows with Shopify Roast (code.dblock.org)

Last week, my team at Shopify released a new tool called Roast, a convention-oriented framework for creating structured AI workflows. Our vision is to enable A.I. agents to solve developer productivity problems at scale. Imagine continuously improving unit tests, or optimizing test performance acros...

30. Apologizing for My Obsessiveness Over Punctuation (code.dblock.org)

You may have landed here because I had just apologized for my obsessiveness over punctuation in a GitHub comment and requested changes to your pull request, or you noticed me adding periods to a sentence in the otherwise excellent document you have authored. This is not the first time, and my condit...
Type to search HN and engineering blog articles
Press Escape to close  |  ↑↓ to navigate  |  Enter to open