Coder/DevOps/Architect/Trainer, you'll have seen me on Stackoverflow. Also an Entertainment Lighting and Lasers fan. Opinions are my own.

Joined February 2022
9 Photos and videos
#codex isn't happy today - "Window is not responding"
22
Bring it on #VibeCoding
1
2
85
SaaS Failures and Successes🧵Summary The Blueprint for Fixing These Issues If you look closely at these successes, they all followed a specific playbook to fix what they neglected: Decouple the Problem: They took the messy system (like billing or logging) out of the core application code and moved it to its own isolated micro-service. Expose it to the User: They turned a back-end engineering headache into a front-end user feature (e.g., Zap History, Slack Billing Dashboard). Automate the Gatekeeping: They used automated code or data validation layers to stop bad data or bad configurations from breaking the system ever again. Zapier (Solving: The Missing Audit Logs & Visibility Trap) The Neglect: Failing to log user and system actions, leaving customers completely blind when an automation or integration fails. How They Solved It: Zapier automates workflows between thousands of apps. In their early days, if a "Zap" failed, users had no idea why, which completely overwhelmed Zapier's customer support teams with tickets asking "Why didn't my automation run?" The Fix: Zapier invested heavily in building the Zap History engine. They decoupled their automation execution engine from their logging engine using message queues (like Apache Kafka). Every single step of an automation generates an unalterable log entry. They exposed this directly to the user in a highly scannable, clean UI. Users could suddenly debug their own failed steps, instantly cutting support ticket volumes and providing enterprise-grade audit capability natively. Slack (Solving: The Rigid Billing & Seat-Licensing Trap) The Neglect: Hardcoding pricing tiers or locking users into rigid contracts that don't reflect actual product usage, causing billing disputes. How They Solved It: Traditional B2B SaaS forces companies to buy a block of 100 user seats. If only 50 people use it, the company feels ripped off. If they need 101, the system blocks them. The Fix: Slack revolutionized SaaS billing by engineering the Fair Billing Policy. They built an internal monitoring system that constantly tracks user activity. If an employee stops logging into Slack for more than 14 days, the billing system automatically drops them from the active seat count and refunds a prorated credit to the company's account. Building the real-time tracking architecture required to calculate variable, prorated billing dynamically across millions of users was incredibly difficult, but it completely eliminated customer billing friction and drove unprecedented enterprise trust. #startups #techdebt #blitzscaling
1
85
SaaS Failures and Successes🧵10/10 Figma (Design Collaboration) The Status: Good. Built a highly complex application without sacrificing performance. The Evidence: Figma successfully disrupted Adobe by building a browser-based design tool that felt as fast as a desktop application. They documented their engineering journey, specifically how they scaled their multi-player collaboration engine. How they avoid it: WebAssembly Pioneer: Instead of building a standard web app that would slow down with large design files, Figma wrote their entire editing engine in C and compiled it to WebAssembly. Custom Data Structures: They avoided the trap of using heavy relational databases for real-time collaboration. Instead, they built a custom live-syncing system using conflict-free replicated data types (CRDTs) that prevents data conflicts before they can ever reach a database. #startups #techdebt #blitzscaling
1
62
SaaS Failures and Successes🧵9/10 Stripe (Payment Infrastructure) The Status: Good. The Pitfall Avoided: Hardcoded billing logic, data schema rigidity, and breaking API changes. The Evidence: Stripe manages transactions for millions of businesses worldwide. In a fast-moving fintech space, breaking a database schema or an API endpoint could crash thousands of digital economies. How they avoid it: The API Versioning Layer: Stripe avoids permanent API debt via an architectural masterpiece: an Abstract Transformation Layer. When Stripe updates its core database and code logic, it doesn't force users to rewrite their code. Instead, they write declarative "gateways" that dynamically translate old API requests into the new system architecture on the fly. This allows Stripe to refactor its internal architecture constantly while guaranteeing legacy code written in 2012 still functions perfectly today. #startups #techdebt #blitzscaling
38
SaaS Failures and Successes🧵8/10 HashiCorp (Infrastructure Software) The Status: Good. Maintained a strict, predictable release cycle for highly complex infrastructure tools like Terraform and Vault. The Evidence: HashiCorp’s co-founder, Mitchell Hashimoto (@mitchellh), established a culture of writing exhaustive design documents (RFCs) before a single line of code was written. This culture is heavily documented in their engineering guidelines. How they avoid it: Zero-Dependency Binaries: They chose Go as their primary language to ensure all tools compile into a single, self-contained binary file. This eliminated the dependency hell that plagues other enterprise software platforms. Extensible Plugin Architecture: Instead of hardcoding integrations into the core engine, they built a strict plugin system. If a cloud provider changes their API, it only affects an isolated plugin, ensuring the core platform remains untouched by tech debt. Success: Google GCP is rewriting their IaC based around Terraform. #startups #techdebt #blitzscaling
1
49
SaaS Failures and Successes🧵7/10 Shopify (E-commerce Platform) The Status: Medium. Allowed their core codebase to grow into an unmanageable monolith, but successfully re-architected it without tearing it down. The Evidence: Shopify’s engineering team has published extensively on how they rescued their massive Ruby on Rails codebase, which contains millions of lines of code and over a decade of historical debt. The Debt Story: As hundreds of engineers added features to Shopify, the core database became tightly coupled. A change to the shipping code would accidentally break the billing code because the boundaries between modules had completely dissolved. How they managed it: Instead of rewriting the platform from scratch - which usually kills SaaS companies - Shopify implemented a strict architectural pattern called a Componentized Monolith. They used automated code-analysis tools to draw hard boundaries around different parts of the application, physically blocking engineers from writing code that crosses those boundaries without permission. #startups #techdebt #blitzscaling
78
SaaS Failures and Successes🧵6/10 Uber (Ride-Hailing & Logistics) The Status: Medium. Accumulated catastrophic microservice debt but executed a massive, multi-year course correction. The Evidence: Uber's engineering blog famously detailed their transition from a monolith to microservices, and then their painful shift back to "Domain-Oriented Microservices" (DOMA) to fix the mess they created. The Debt Story: In their hyper-growth phase, Uber let engineering teams build whatever they wanted, using any language they chose. This resulted in over 4,000 independent microservices. The system became a chaotic web where nobody knew which service talked to what, causing frequent outages and making simple feature updates impossible. How they managed it: Uber had to halt major feature development to group those 4,000 chaotic services into clearly defined logical "domains." They instituted strict gateways and forced teams to drastically reduce the number of microservices, proving that too many microservices can create just as much debt as a messy monolith. #startups #techdebt #blitzscaling
28
SaaS Failures and Successes🧵5/10 Twitter / X (Pre-2022 Architecture) The Status: Bad. Suffered from deep, systemic architectural debt that severely restricted product development for nearly a decade. The Evidence: Following the 2022 acquisition, extensive engineering reviews and public developer debates revealed a system held together by fragile, legacy code layers. The Debt Story: In its early days, Twitter was built on a fragile Ruby on Rails setup that frequently crashed (the famous "Fail Whale"). To fix this, they rushed a migration to a complex microservices architecture. Over the years, they layered thousands of obscure internal services on top of one another. The Collapse: The tech debt became so deep that changing the character limit or adding an edit button took teams of engineers years to safely execute. Entire clusters of servers were running code that no active employee understood, requiring a brutal, chaotic teardown of the infrastructure just to make the platform nimble again. The sheer scale of the mess Elon Musk uncovered at Twitter in late 2022 was precisely why he, along with several remaining engineers, spent weeks sleeping on the office floor at Twitter HQ. The "Scream Test" Method of Paying Debt In engineering, there is a reckless concept known as the "Scream Test" - you turn off a server, and if nobody screams, you leave it off. Musk essentially applied this to Twitter's architecture at a massive scale. #startups #techdebt #blitzscaling
19
SaaS Failures and Successes🧵4/10 The 2026 "Saaspocalypse" (The Ultimate Multi-Tenant Reckoning) The Debt Type: Deliberate Code Generation & "Vibe Coding" Debt. The Current Reality: Look at what is happening to the public markets right now. In early 2026, software stocks suffered a massive $1 trillion market cap sell-off, an event Wall Street has dubbed the "Saaspocalypse." The Knowing Debt: For years, legacy B2B SaaS platforms intentionally ignored complex UX sprawl, rigid per-seat licensing models, and fragmented internal databases. They knew their products were bloated and that users hated managing hundreds of applications that didn't talk to each other. They chose not to fix it because enterprise lock-in guaranteed recurring revenue. The Flaw: Now, AI agents can bypass these massive, bloated SaaS UIs entirely. New AI-native startups are building highly consolidated platforms at a fraction of the cost, using code generation to bypass years of manual engineering. The legacy SaaS giants are trapped by their own historical architecture-they cannot pivot their codebases fast enough to inject native, low-cost AI agents because their underlying data silos are too rigid. #startups #techdebt #blitzscaling
25
SaaS Failures and Successes🧵3/10 Friendster (The SaaS Social Network That Tech Debt Erased) The Debt Type: Deliberate Scaling & Database Architecture Debt. The Story: Before MySpace or Facebook, Friendster was the dominant social network, raising millions and amassing tens of millions of users in the early 2000s. The Knowing Debt: Friendster’s core value proposition was showing how you were connected to others via "degrees of separation" (e.g., a friend of a friend). Calculating these relationships required traversing massive social graphs. As the user base exploded, the engineering team knew their database structure couldn't compute these graphs dynamically in real time. The Flaw: Instead of pausing feature growth to entirely re-architect the graph database, management pushed for more user acquisition to satisfy investors. The debt caught up with them: pages began taking 20 to 40 seconds to load. Users would click a profile, watch a blank screen, and log off. A young Mark Zuckerberg noticed this, built Facebook with a vastly simpler, cached data structure that loaded instantly, and Friendster bled its entire user base to Facebook purely because its technical debt made the platform unusable. #startups #techdebt #blitzscaling
1
27
SaaS Failures and Successes🧵2/10 Knight Capital Group (Algorithmic Trading SaaS) The Status: Bad. A textbook case of permanent tech debt resulting in total company liquidation. The Evidence: The SEC's official investigation report details how a piece of forgotten, dead code destroyed a multi-million-dollar financial firm in exactly 45 minutes. The Debt Story: Knight Capital used a legacy server configuration pattern. In 2012, they deployed new trading software but left a piece of dead, obsolete code inside the system from years prior. Crucially, they reused a specific software flag (a configuration setting) that used to activate the dead code. The Collapse: When the new software turned on, it accidentally triggered the unmaintained, unmonitored dead code. The system began buying and selling millions of shares erratically. Because they had no modern logging or documentation, engineers frantically tried to debug the system live, accidentally making it worse. The company lost $440 million in less than an hour and went bankrupt. #startups #techdebt #blitzscaling
18
SaaS Failures and Successes🧵1/10 Southwest Airlines (The 2022 Complete Operational Meltdown) The Debt Type: Deliberate Infrastructure & Process Debt. The Story: In December 2022, a winter storm grounded flights across the US. While other airlines recovered in 24-48 hours, Southwest completely collapsed for over a week, cancelling 16,700 flights and losing over $800 million in days. The Knowing Debt: This was not a surprise bug. Southwest’s pilots' and flight attendants' unions had been explicitly warning executive management for years that their scheduling software, called SkySolver, was completely obsolete. The Flaw: Management intentionally chose not to upgrade the system because it would require halting operations and massive capital expenditure. SkySolver could handle normal point-to-point operations, but when a massive disruption occurred, it had no automated capability to match displaced crews with stranded planes. Crew schedulers literally had to use paper, pens, and manual telephones to locate thousands of workers. Management actively chose the short-term savings of delaying the upgrade, resulting in a systemic failure that permanently damaged their brand. #startups #techdebt #blitzscaling
31
Hey @Adobe @AdobeSupport could you please give me a hand troubleshooting my Mum/Moms Mac? She's switched on & hasn't done anything to cause this. I believe its from an update, its a Mac Airbook a few years old. Should I recommend the Creative Cleaner Tool? CC @AppleSupport
1
123
Replying to @Twitch
@Twitch some of your APIs aren't working, the oauth work's but the helix/schedule returns a 404. What's going on? I'm doing this with postman and nothing's changed on my end. My lambda stopped working and now I can reproduce the problem I can't do much to fix it.
1
740
@TwitchSupport can you please shed some light on this? Thanks
31
#JetBrains Great company, fantastic products, excellent service and outstanding integrity.
24 Feb 2022
As JetBrains we condemn the attacks taking place. Our hearts are with the Ukrainian people, including our own colleagues and their families.
1
Jeremy Thompson retweeted
13 Feb 2022
Today marks 20 years since .NET launched and it wouldn't be where it is today without its developer community, so here's a giant THANK YOU! to everyone who helped make .NET the most loved framework for devs. 📖 .NET's Blog for info about the celebration: msft.it/6016wHDY8
24
238
595