Skip to main content Redeem Tomorrow
I used to be excited about the future. Let's bring that back.
About Hire me

Posts 11–20 of 32

  • Retrospective on a dying technology cycle, part 3: Venture Capital and an economy on life support

    After leaving my job to build apps in 2009, life took on some hard math. I only had so much money saved up. While I was making around $1,000 monthly from the App Store, the gap between my income and expenses was leaving me in the red.

    So my maximum budget for a meal was $3. If I could get under that number, I tried.

    This meant clever use of bulk buying at Costco and lots of meal prep. Going out for meals was an occasional indulgence, but the three dollar figure remained a constraint. Spending more than that meant having to bring home enough leftovers to break even.

    I’d figured I could make some extra money working part time while I got the details of my app business figured out. To this point in my life, part-time work had been easy to come by. I took it for granted, like water from the tap. It would be there if I needed it.

    But the financial crisis meant stiff competition for any work. I’d moved to Bend, Oregon for its low cost of living and beautiful scenery. Unfortunately, no one was hiring, and as the new kid in town, I had no local network to lean on. When a Kohl’s opened up, it made the evening news: newly laid-off job applicants wrapped around the block hoping for a chance at even 15 hours of work per week.

    I wasn’t just competing with part-time job seekers. I was competing with people who needed any work they could get to keep a roof over their families’ heads.

    It was a scary, precarious time. Unemployment peaked around 10% nationwide, even greater than in the dot-com bust, with millions of workers unable to find jobs. I came within weeks of losing my housing.

    This desperate climate catalyzed the fuel for the last technology cycle. Central bankers around the world slashed interest rates nearly to zero. Without traditional means generating returns on their money, pensions, institutional investors and the wealthy sought new vehicles for growth.

    The Venture Capitalist had just what they needed. On behalf of these limited partners, a VC would secure a packet of investments in technology firms, one or more of which might just burst into a multi-billion dollar valuation.

    They called these “unicorns.”

    Cheap scale

    Software solves a problem through automation.

    When you build a spreadsheet to solve your reporting needs, you’ve just made yourself some software. It’s got decent leverage: instead of manually filling out a chart, some formulas summarize your data and nicely format it, saving you a few hours a week.

    You make a trade for this leverage. Making the report manually maybe costs you an hour a week. Building automation into the spreadsheet might take you much longer: a couple of afternoons. But within a few months, the leverage has paid for itself in time savings. Within a year, you’re ahead.

    This simple example captures the economic value of software, and its potential scales well beyond an individual’s problem at the office. Whatever costs you sink in creating software, you get many multiples back in whatever work it accomplishes.

    You can make office productivity tasks more efficient, you can build social interaction that promotes a particular style of engagement, you can deliver entertainment through games or other media, and you can even make cars show up in particular places where people want them.

    Any task that software can do once, it can again as many more times as you want. On paper, this happens at near-zero marginal cost.

    In practice, what this means is complicated. As Twitter’s Fail Whale demonstrated, just because scale is cheap doesn’t make it free. Architecting and re-architecting software systems to be resilient and responsive requires specialist knowledge and significant investment as your customer base transitions from one order of magnitude to the next.

    Copying code costs almost nothing. Running code on the web, and keeping it running, is more expensive. It requires infrastructure to execute the code, and it requires human labor to troubleshoot and maintain it in flight.

    The bargain of Venture Capital

    This is where the Venture Capitalist comes in.

    Writing code is expensive: it needs a full-time team of specialist engineers who know their way around the required technologies. The engineers also need to know what to build, so other specialists, like designers and strategists, are needed to document and refine the goals and end-product.

    The code continues to be expensive once it’s written. Again, information is physical: it lives somewhere. The data that software handles has a physical location in a database and has to be moved to and from the user, who may be quite far away from the server they’re interacting with.

    Thus, more specialist labor: engineers who can design technical infrastructure that gracefully avoids traffic jams as a web-based service becomes popular. Of course, there are more specialists after that. People to tell the story of the software, people to sell it, people to interact with the customers and users who are struggling to use it.

    Code needs humans. It can’t be born without them, it needs them to grow, and it can’t stay running forever in their absence. Automation is powerful, but it’s never perfect, and it exists in a human context.

    Humans are expensive. We need shelter, food, rest, recreation, partnership, indulgences, adventure… The list of human needs is vast, and like it or not, we meet those needs with time and money.

    So the Venture Capitalist buys a chunk of a growing software firm, injecting it with money in trade. The money can be used more or less freely, but much of it goes into paying for humans.

    Despite plunging tens or hundreds of millions of dollars into a firm, if the VC does their job right, they come out ahead. Software that can solve problems effectively, that captures a customer base that will pay for those problems to be solved, can produce billions of dollars in value. So long as the lifetime value of a customer is meaningfully greater than what it costs to earn them, you’ve got a powerful business.

    So spending a few million to support an infant firm can turn into orders of magnitude more money down the road.

    Not every startup achieves this success. These are outlier results. The majority will fail to achieve the scale and value needed for a win, in terms of venture expectations. But when the outliers are that lucrative, the overall model can work.

    So long as you pick an outlier.

    Going whackadoodle

    GitHub was unique. Founded in 2008, GitHub was profitable almost immediately, without needing any venture funding. They are perhaps the ultimate modern success story in software tools:

    GitHub simultaneously defined and seized the central turf of developer collaboration.

    Their strategy was devastatingly effective. Git was an emerging technology for version control, which every software project large and small needs. Version control maintains a history of project progress—who changed what, on which date, and why—while allowing developers travel back in time to a previous state in the project.

    Historically, developers needed an internet connection to interact with the history of a project, so they could connect with a server that stored all of the project data. Git’s great innovation was to decentralize this process, letting developers work in isolation and and integrate their changes with a server at their leisure.

    Originally developed to serve the needs of the Linux kernel project, one of the largest collaborations in open source history, git had both enormous power and daunting complexity. Still, git would be the future not just of open source, but of software development altogether.

    Seeing this, GitHub’s founders built a service that provided:

    • A central server to host git-based projects, called repositories
    • Convenient user interfaces to browse, change and duplicate repository content
    • Collaboration tools to discuss, improve and ship code with both teammates and strangers

    On the strength of this developer experience, GitHub fast became the most popular way to build software, no matter the size of your team or your goals.

    Its power and value earned it leverage. Four years into its life, it raised money on wildly favorable terms. It was a safe bet: enormous traction, plenty of users, massive goodwill, and a whole enterprise market waiting to be conquered.

    Then its cultural debts caught up with it.

    There’s a situation here

    GitHub built a replica of the Oval Office. They also built a replica of the White House Situation Room. Then there was the open bar, offering self-serve alcohol at any hour of the day. The rest of the space was of the typically fashionable vibes you’d expect of a startup, but these indulgences caused onlookers to raise their eyebrows.

    Many clowned GitHub for the White House stuff—myself included—but here is a place where I will now defend their intent. America is lots of things, and primarily an empire. The symbols of an imperialist state have a lot of complicated (that is, bloody) history and it’s a peculiar sort of hubris to adopt them whole-cloth.

    But America, in its most aspirational of modes, sees itself as a fabric for creating prosperity and shared growth. Having spent a couple years there, I really think that’s where GitHub was coming from in its office cosplay decisions.

    They wanted to be a fertile landscape for shared prosperity, and picked up the most garish possible symbols of that aspiration. It’s not how I would have come at it, but I get it how they landed there. It’s impossible to imagine the last chapter of software without GitHub as a productive substrate for all the necessary collaboration.

    This is a tidy microcosm for the cycle. Incredible ambition and optimism, tempered by social challenges few founding teams were equipped to address. An industry whose reach often exceeded its grasp.

    GitHub’s blindspots, coupled with its incredible early power, would conspire to make it both a distressed asset and a notorious place to work, claiming one of its founders in the process.

    The mess in its workplace culture made it challenging for the company to recruit both the experienced leadership and specialist labor needed to get it to the next phase of its evolution.

    GitHub did the work to patch itself up, recruiting the team it needed to get back to shipping and evolve into a mature company. With the bleeding stopped and stability restored, Microsoft purchased the company for—you guessed it—billions of dollars.

    This stuff was not unique to GitHub

    Zenefits had people fucking in stairwells, Uber spent $25 million on a Vegas bacchanal, and WeWork… they did a whole a docudrama about WeWork.

    With nowhere else for money to go, successful founders had a lot of leverage to spend as they pleased. VCs needed to compete for the best deals—not everything would be a unicorn, after all—and so the “founder-friendliness” of a firm was a central consideration of investor reputation. No founder wanted the money guys fiddling around and vetoing their vision and VCs feared losing out on the best deals.

    So investors kept a light touch on the day-to-day management of firms, so long as they were pursuing a strategy that kept hitting their growth metrics.

    Meanwhile, you’ll notice I keep emphasizing specialist labor. Some problems in technology are particularly challenging, with a limited number of practitioners able to make meaningful traction on them. Thus, startups had to work hard to recruit their workforce. Founders would argue here, with a certain degree of legitimacy, that differentiating their experience of work through generous perks was an essential lever in winning the competition for limited talent.

    Thus was the frenzy for hyper-growth that continued for more than a decade. Money pumped into the system, searching for its unicorns. Founders with more technical acumen than management experience tried to recruit the teams they needed. Investors kept the show running, hoping to grow money for their limited partners.

    But this was mere prelude to the wackiest money of all.

    Crypto craze

    The way venture historically worked:

    • Invest in a young company
    • Support it through relationships and more cash, if its progress was promising
    • Wait around for quite awhile for it to reach maturity
    • Get paid upon a “liquidity event”—when the company goes public (lots of work) or is acquired (a bit less work)

    Cryptocurrency, non-fungible tokens, and other so-called web3 projects were an irresistible optimization on the normal cycle. Going public required stability, clean accounting, a proven record of growth, and a favorable long-term outlook for a company’s overall niche. It required stringent regulatory compliance, as a company transformed from a privately-held asset into a tradable component of the public markets.

    Keeping a financial system healthy takes work, after all, and bodies like the SEC exist to ensure obviously-toxic actors don’t shit in the pool.

    Less arduous was an acquisition. Sometimes these were small, merely breaking even on an investor’s cash. Still, multi-billion dollar acquisitions like Figma and GitHub do happen. To integrate into a public company like Microsoft or Adobe, a startup needs to get its house in order lots of ways. Accounting, information security, sustainable growth—it takes time to get a company into a level of fitness that earns the best price.

    Cryptocurrency investment promised to short-circuit all of this.

    Investors could buy “tokens” as a vehicle for investing in a company. Later, when those tokens became openly tradable—through a mostly unregulated, highly-speculative market—investors could cash in when they decided the time was right.

    Rather than waiting seven or ten years for a company to reach maturity, investors in crypto firms could see liquidity within half that time.

    With cloud services full of incumbents, while mobile matured, it was hoped that cryptocurrencies and web3 would represent an all new paradigm, starting a new cycle of investment and innovation.

    More than a decade since the 2008 crisis, central bankers had to pare interest rates back down to zero once again, this time in response to the Covid-19 pandemic. This created a fresh rush of money once again in search of growth, and cryptocurrency-adjacent companies were happy to lap it up.

    What comes next

    Of course, we know how this ends. Covid-era inflation soared, and central bankers cranked rates back up to heights not seen since before 2008.

    Crypto came crashing back to earth, NFTs became a tax loss harvesting strategy, and now we muse about what else was a “zero interest rate phenomenon.” I’d be shocked if crypto was entirely dead, but for the moment, its speculative rush has been arrested.

    In the next and final installment, I want to take stock of what we can learn from all this, and what comes next.

  • Retrospective on a dying technology cycle, part 2: Open Source and the Cloud

    [Previously: Mobile]

    Though it rescued me from insolvency, I grew to hate my job at Aurora Feint. Two months into the gig, Apple Sherlocked us, sending the company into a series of endless pivots that lasted four to six weeks each.

    The engineers were crunching, working evenings and weekends, only to throw away their work and start again, seemingly based on how well one press release or another gained attention. Meanwhile, I was far from the action in an ill-defined product management role. While I knew the emerging mobile product space as well as anyone, I had limited vision into the various rituals of Silicon Valley.

    What I really wanted was to build mobile software.

    I interviewed for months, but with no pedigree and a strange path into technology through self-teaching, I didn’t get very far.

    After a particularly dispiriting day at the office, I sniped the attention of Adam Goldstein and Steve Huffman, then founders of a YC-funded travel search startup called Hipmunk. I wrote a flattering blog post about their product, posted it to Hacker News, and within weeks had a new job: leading mobile product design and engineering for a seed-stage startup.

    They never asked for a resume. They checked out my existing work on the App Store and made me an offer.

    I was the third employee. The entire company of five could fit into a San Francisco apartment’s living room. And did, regularly, in its first few months.

    Despite the small crew and modest quarters, thousands of people were buying airfare through Hipmunk already. Its great innovation was visualizing your flight options on a colorful Gantt chart, ranked by “Agony”—factors like layovers and overall flight time.

    Two things gave this team enough leverage to do it: open source software and cloud computing. A credit card was all they needed to provision server capacity. An internet connection gave them access to all the software they needed to make the servers productive, laying the foundation for building Hipmunk’s unique approach to finding flights.

    What is Open Source, anyway?

    Open source has permanently changed the nature of human productivity.

    Open source describes code you can use, according to some basic licensing terms, for free. Vast communities may contribute to open source projects, or they may be labors of love by one or a handful of coders working in their spare time.

    In practice, open source code is encapsulated labor.

    One of the fundamental economic levers of software in a globally-connected community is that it scales at zero marginal cost. Once the software exists, it’s nearly free duplicate it.

    Thus, if you have software that solves a common problem—provides an operating system, handles web requests, manages data, runs code—you can generalize it, and then anyone can use it to solve that category of problem in their own project. This combination of open source projects, called a “stack,” is sometimes packaged together.

    Such open source stacks made the last cycle possible. The Facebook empire could be founded in a dorm room because Zuckerberg had access to Linux (OS), Apache (web server), MySQL (database), and php (language/runtime) as a unified package that solved the problem of getting you productive on the web.

    This represented tens of thousands of hours of labor that startups don’t have to recruit or pay for, or even wait for, dramatically accelerating their time to market.

    The details of serving HTTP requests or handling database queries aren’t central to a startup’s business value—unless you’re making a platform play where your performance on these categories of tasks can be sold back to other firms. But for most, there’s no advantage to reinventing those wheels, they just have to work well. Instead, borrowing known-good implementations can quickly provide the foundations needed to build differentiated experiences.

    In Facebook’s case, this was a minimalist social platform, for Hipmunk this was visual travel search, while Uber dispatched cars. There was no innovation to be found merely existing on the web. Instead, to survive you had to be on the web while also providing unique, differentiated value.

    Open source is an informal commons of these known-good implementations, regularly refined and improved. Any party finding a project lacking can lobby for refinement, including proposing direct changes to the code itself.

    I would argue there is societal impact from this that rivals other epochal moments in information technology, like the advent of writing or the discovery of algorithms. Being able to store, replicate and share generalized technical labor is a permanent reorganization of how millions of people work. While capitalists were among the first to seize on its power, over decades and centuries it may permeate much more than business.

    The power of open source was constantly animating the last cycle. Node.js, a server-side runtime for JavaScript first released in 2009, took one of the most well-known languages in the world and made it viable for building both the user interface components of a web application and its backend server as well. Thus open source could not just encapsulate labor, but amplify it in motion as well. Suddenly, many more people knew a language that could be used to build complex web services. As a result, Node became among the most popular strategies hobbyists and startups alike.

    Meanwhile, it wasn’t enough for code to be easy to build on. The code actually has to live somewhere. While open source was a crucial engine of the last cycle, cloud computing running this open source code was just as essential.

    It’s in the cloud

    Information is physical.

    It needs somewhere to live. It needs to be transformed, using electricity and silicon. It needs to be transported, using pulses of light on glass fibers.

    Software requires infrastructure.

    Historically, this had meant shocking amounts of capital expenditures—thousands of dollars for server hardware—along with ongoing operating expenditures, as you leased space in larger facilities with great connectivity to host these servers.

    Scaling was painful. More capacity meant buying more hardware, and installing it, which took time. But the internet is fast, and demand can spike much more quickly than you could provision these things.

    Amazon, craving massive scale, had to solve all these problems at unique cost. They needed enough slack in their systems to maintain performance at peak moments, like holiday sales, back-to-school, and other seasonal surges. With the size of Amazon’s engineering division, meanwhile, this capacity needed to be factored into tidy, composable services with clear interfaces and rigorous documentation, allowing any team to easily integrate Amazon’s computing fleet into their plans and projects.

    Capital abhors an under-leveraged asset, so they decided to sell metered access to these resources. Though Amazon was the first to use this approach, today they compete with Microsoft, Google, IBM and others for corporate cloud budgets all over the world.

    With access to “the cloud” just a credit card away, it’s easy for small teams to get started on a web-based project. While scaling is commercially much easier than ever—you just pay more to your cloud vendor, then get more capacity—it can still be a complex technical lift.

    The arcane art of distributing computing tasks between individual machines, while still producing correct, coherent output across large numbers of users, requires specialist labor and insight. The cloud isn’t magic. Teams have to be thoughtful to make the most of its power, and without careful planning, costs can grow devastating.

    Still, this power is significant. The cloud can itself be programmed, with code that makes scaling decisions on the fly. Code can decide to increase or trim the pool of computing capacity without human intervention, adjusting the resources available to create maximum customer impact and system resiliency. Netflix is a notable specimen on this point, as one of the earliest large-scale adopters of Amazon’s cloud services. They created an infrastructure fabric that is designed to tolerate failure and self-heal. They even built a technology called “Chaos Monkey” to continually damage these systems. This forces their engineers to build with resilience in mind, knowing that at any moment, some infrastructure dependency might go offline.

    (Chaos Monkey is, naturally, available as open source.)

    For companies in infancy, like Hipmunk, the cloud opened the path to a fast-iterating business. For companies entering maturity, like Netflix, the cloud provided a platform for stability, resilience, global presence, and scale.

    The world had never seen anything like it. In fact, there was early skepticism about this approach, before it came to dominate.

    Today, the cloud is a fact of life. Few would even bother starting a new project without it. What was once transformational is now priced into our expectations of reality.


    Hipmunk would not become a galloping success. It sold to Concur in 2016, eventually scrapped for parts. Steve Huffman would return to lead Reddit, his first startup. Reddit sold to Condé Nast for peanuts, only to spin back out as an independent venture as, stubbornly, it just wouldn’t die.

    Meanwhile, six months after my departure, the renamed OpenFeint was acquired for $100m by a Japanese mobile company in need of next-generation mobile technology. I didn’t get a dime of the action—I left before my cliff kicked in, and I couldn’t have afforded to exercise the options even if I they were open to me.

    That’s the circle of life in venture capital. Not every bet is a winner, death is common, and sometimes acquisition is bitter.

    But when the winners win, they can win big. After a couple of years, I left Hipmunk for a couple more gigs leading mobile teams. Under all the VC pressure and SF’s punishing cost of living, I burned out hard.

    Somehow, barely able to get out of bed most mornings, I landed on a unicorn. In the next piece, we’ll explore how venture capital was the fuel of the last cycle, creating growth in a zero interest rate global economy by harnessing startups that, impossibly, created billions of dollars in value.

  • Retrospective on a dying technology cycle, part 1: Mobile

    I missed the introduction of the original iPad.

    Instead of watching Steve Jobs unveil his bulky slab of aluminum and glass, I was picking my way through the streets of downtown Burlingame. I’d spent what was left of my available credit card balance on a ticket to SFO.

    I was due for my first tech interview.

    Before he created the chat juggernaut Discord, Jason Citron founded a mobile game startup. After middling success selling games themselves, Aurora Feint had pivoted to middleware: client- and server-side social technology to serve the growing ranks of independent, mobile game developers.

    A few blocks’ walk from the Caltrain station, I’d found my destination: a plain office building hosting a bank and an insurance broker on the lower floors. Hidden away upstairs, thirty employees of Aurora Feint were toiling away, trying to capture turf in the unspooling mobile revolution.

    The interview was a grueling, all-day affair running 10:30 to 4, including one of those friendly lunches where the engineers try to figure out if you’re full of shit.

    It was 2010, and the inertia of the financial crisis was still on me. Weeks away from homelessness, I somehow closed the day strong enough to earn my first startup job.

    As a result, I got to watch the last technology cycle from its earliest phases.

    It transformed my life. I wasn’t the only one.

    Animating forces

    The last cycle was activated by convergent forces:

    1. The mobile revolution: An all new set of platforms for communication, play and productivity with no incumbents. A green field for development and empire-building
    2. The rise of cloud computing: In the past, computing resources were expensive and provisioning was high-friction. By 2010, cloud computing offered low-risk, highly-scalable capacity for teams of any size.
    3. The power of open source software: Open source transformed the economics of building a software business. A vast, maturing bazaar of software resources, free to use, gave founding teams a head-start on the most common tasks. This amplified their power and allowed small seed investments to produce outsized results.
    4. An economy on life support: In the wake of the 2008 financial crisis, economic malaise dominated. Central bankers responded with historically low interest rates. Growing money needed a new strategy, and the growth potential of software empires was irresistible.

    Each of these, alone, promised incredible power. In combination, they were responsible for a period of growing wealth and narrow prosperity without precedent. As the cycle draws to a close, we find each of these factors petering out, losing sway, or maturing into the mundane.

    As a consequence, the cycle is losing steam.

    This wasn’t a bubble—though it did contain a bubble, in the form of cryptomania. The last cycle was a period of dramatic, computing-driven evolution, whose winners captured value and power.

    New platforms and a digital land rush

    The 2007 introduction of the iPhone is a pivotal moment in the history of consumer computing. An Apple phone had been rumored for years, and on the heels of the popular iPod, it was an exciting prospect.

    Mobile phones of the day were joyless, low-powered devices that frustrated users even for the most common tasks. While Palm, Blackberry and Danger were nibbling around the envelope of what was possible, none of them had command of the overall market or culture of cellphones.

    So when Jobs, barely suppressing a shit-eating grin, walked through the demo of Apple’s new iPhone—easy conference calling, interactive maps, software keyboard, convenient texting—the audience gasped audibly, cheering with unrestrained delight. The user experience of the cell phone was changed forever.

    To accomplish this transformation, Apple had pushed miniaturization as far as possible for the day. Using a high-efficiency processor built on the ARM architecture was a typical move for mobile computing—even Apple’s failed Newton from 15 years earlier used this approach. The revolution came from porting the foundations of Apple’s existing operating system, Mac OS X, into a form that could run within the narrow headroom of an ultra-efficient, battery-powered portable computer.

    On this foundation, Apple shipped a cutting-edge UI framework that supported multitouch gestures, realtime compositing of UI elements, lush animation, and a level of instant responsiveness that had never existed in a handheld context.

    While the iPhone wasn’t an overnight success—it would take years to capture its current marketshare—it was an instant sensation, eventually demolishing the fortunes of Palm, Blackberry, and Microsoft’s mobile strategy.

    And without Apple’s permission, people began writing code for it.

    The promise of a vast green field

    Hobbyist hackers broke the iPhone’s meager security within months of its launch, and went straight to work building unauthorized apps for it. Regardless of Apple’s original plans, the potential of the platform was unmistakable, and within a year of its 2007 introduction, both the iPhone OS SDK and App Store launched.

    This was yet another sensation. Indie developers were crowing about shocking revenue, with the earliest apps taking home six figures in the first month. Apple had created a vast, fertile market with turn-key monetization for every developer.

    The rush was on.

    Google soon joined the fray with Android, offering their own SDK and marketplace.

    So by 2010, mobile was a brand new platform strategy. It used new libraries, targeted new form factors, and had all new technical constraints.

    There were no incumbents. Anyone could be a winner in mobile, so loads of people tried. Moreover, the use-cases mobile presented—always connected, with realtime geolocation and communication—were entirely novel.

    The story of Uber is impossible without the substrate of mobile. March of 2009, 18 months into the launch of the iPhone OS SDK, Uber was hard at work building unprecedented, automated infrastructure for car dispatch. The iPhone 3G, the most recent model of the day, had integrated cell tower-assisted GPS, allowing any device to know its exact position in realtime, even in urban areas, and report that information back to a central server. Add this to an advanced mapping API included in every iPhone, and Uber had leverage to build a category of business that had never existed.

    We know the rest of the story. Uber transformed urban transportation worldwide, adopting a take-no-prisoners approach and burning through vast sums of cash.

    The gig economy and the automated supervisor

    Of course, Uber wasn’t the only player leveraging this power to the hilt.

    Lyft and other “rideshare” startups built their own spins on the model. But the power of automation delivered through pocket-sized, always-connected computers created a new category of labor and business, which the press dubbed “the gig economy.”

    Using software automation, companies could animate the behavior of legions of dubiously-categorized independent contractors. Software told these workers what to do, where to go, and when they were needed. Software onboarded these workers, software paid them, and using ratings and algorithms, software could fire them.

    In an unexpected but inevitable twist of Taylorism, modern automation replaced not the worker themselves but middle managers.

    Gig work created new categories of service, and invaded existing ones as well. There were apps for delivery of all foods, apps for cleaning and home handiwork, even an app that handled packing and shipping of goods, sparing you a trip to the post office. Seeimingly every commercial relationship where Silicon Valley could interpose itself, through the lure of convenience, it tried.

    Reporting not to other humans but faceless, algorithm-driven apps, gig workers were precarious. Their pay was volatile, their access to opportunity was opaque. The capricious whims of customers and their ratings—a central input to the middle-management algorithms—dictated their ongoing access to income. They had limited redress when things were bad for them because the apps that defined their daily work weren’t built to express curiosity about their experiences.

    And they had no direct relationships to their customers.

    Gig work companies responded to these complaints by touting the flexibility their platforms offered. The rigid scheduling of legacy labor was replaced by the freedom to work when you wanted to, even at a moment’s notice.

    That was just one of many opportunities created by an always-online, always-with-you computer.

    The attention economy

    In 1990, the only way to reach someone waiting in line at a bank was to put a poster on the wall. Most banks weren’t selling wall space, so this was their exclusive domain to sell financial products like small business loans, mortgages and savings accounts.

    20 years later, a customer waiting in line at a bank had a wealth of smartphone apps competing for their attention.

    Social media platforms like Facebook and Twitter were in their mobile infancy, but by 2010 anyone with a smartphone could tune out their immediate surroundings and connect with their friends. It wasn’t just social platforms, either. Mobile games like Words With Friends, Angry Birds, and Candycrush competed vigorously to hold the attention of their enthralled users.

    Mobile computing created an entirely new opportunity for connecting to humans during the in-between times. Historically, digital businesses could only access humans when they were at their desks in their homes and offices. With mobile, a 24/7 surface area for commerce, advertising, culture and community arrived overnight.

    Mobile ossification

    So we see that the new paradigm of mobile computing opened the door to previously impossible feats. It was a space where the primary obstacles were time and funding to create something people wanted.

    Today, mobile is full of incumbents. Instead of a green field, it’s a developed ecosystem full of powerful players worth trillions in total. It is a paradigm that has reached maturity.

    More than a decade after smartphones became a mass-market phenomenon, they’ve grown commonplace. Yearly iterations add marginal improvements to processing speed and incremental gains on camera systems.

    When Facebook craves the metaverse, it’s because their totalizing strategy for growth—two billion users to date—is approaching a ceiling. They badly want a new frontier to grow in again, and they’d love to control the hardware as much as the software.

    But VR doesn’t solve everyday problems the way smartphones did. No one craves a bulky headset attached to their face, blocking reality, with battery life measured at a couple hours. Augmented reality might have greater impact, but miniaturizing the technology needed to provide comfortable overlays with the same constant presence as the smartphone in your pocket is still years away. Could it be less than five? Maybe, but I wouldn’t bet on it. More than ten? Unlikely.

    That range doesn’t present immediate opportunities for new growth on the scale they need. Indeed, Facebook is retreating from its most ambitious positions on the metaverse, as its strategy committed billions to the effort for limited return.

    There will be new paradigms for mobile computing. But we’re not there yet. Even so, Apple—16 years gone from their revolutionary iPhone announcement—is poised to release their own take on VR/AR. And like Facebook, they’re stuck with technological reality as it is. Perhaps their software advantage will give them the cultural traction Facebook couldn’t find.


    In my next post, I’ll get into the twin engines of cloud computing and open source, which were crucial foundations to the mobile revolution.

    Native code wasn’t enough. True power was orchestration of opportunity between devices, which needed server-side technology. Through the power of open source code running in the cloud, any team could put together a complete solution that had never been seen before.

  • Developer success is about paying the rent

    I look at developer experience as a nested set of microeconomic problems. A well-optimized DX makes the most of the individual and team labor needed to:

    • Learn developer tools, from APIs to design patterns to integration strategies
    • Apply these tools to the developer’s specific domain and goals
    • Debug outcomes to arrive at a reasonably robust, predictable, correct implementation
    • Successfully ship artifacts on whatever terms the developer cares about (creative, commercial, collaborative)
    • Iterate on these artifacts to refine their effectiveness and power
    • Collaborate across all these facets, either as a distinct team, or with fellow developers on the internet working on distinct projects

    In short, DX is about creating the conditions for developers to be successful.

    There are many ways, meanwhile, to define developer success. But for the specific context of a developer tools business, I would argue the definition is simple: developer success is a rent check that clears.

    While times are turbulent in the technology industry, the fact remains that software skills are a high-leverage form of labor. When you create software, you’re creating impact that can scale at near-zero marginal cost, serving dozens of customers up to billions. This has power and the need for it exists across every industry sector.

    Every business needs software, and most businesses will use it in some form to deliver value to their customers. To accomplish this, they hire the best developers their labor budgets, networks and cultures can attract.

    Thus, if you’re making devtools for money, you have to understand how your tools are competing against alternatives that make developers more effective at creating results that pay their rent and advance their careers.

    Onboarding is an essential lever in this equation. If the activation energy needed to become productive in your tool is too great, it’s going to lose against alternatives that provide more immediate results. You want the time between a developer reading your marketing page, and that same developer making their first API call, successful build, or other hello-world-like activity, to be as short as possible.

    A few minutes is ideal.

    A few seconds is even better.

    But even if you optimize your basic mechanics to make that moment of traction easier, there’s more to do. Your project needs to demonstrate its design patterns in a way that lets developers import the mental model of your expectations for a successful integration.

    Mere docs of the existing functionality are not enough. Tutorials are better. But best is a collection of reference implementations— calls these “starters”—that let developers begin tinkering with a system that’s already complete and working, even if its scope is limited or simplistic.

    Tinkering your way into a proof-of-concept is fairly cheap from there, and when the artifacts are good, pretty fun as well. This is how you can convince a developer that your solution has the tangible qualities they need to invest the considerable labor of learning and integrating your stuff into both their project and their longer term professional destiny.

    Remember, too, that your competition isn’t just other developer tools. It’s developers avoiding your tool by solving the problem the hard way, because short-term, at least they are feeling traction on their progress.

    So as we build developer tools, we have to think about:

    • Who will be made more successful when this ships?
    • How will we make the case to them they’ll win with us?
    • How will we demonstrate the superiority of our approach?
    • How can we limit the costs of initial exploration and proof of concept?
    • How can we maximize the impact of the investments developers make to integrate us into their workflows, products and future outcomes?

    Hey, I never promised it would be easy. But it is worth it. There’s nothing more powerful than a legion of grateful developers whose rent checks clear because once upon a time, you made them successful.

  • Dev Diaries: storytelling builds a core of community experts

    Stellaris is a strategy game where players can build the stellar empire of their dreams. By navigating a series of interlocking economic, scientific and political systems, players create a unique storyline of exploration and contact with dozens of species.

    On a spectrum of simplicity versus complexity, this is at the far opposite end from checkers. Still, once you learn the basics of managing your empire, Stellaris can be a blast.

    The business model for Stellaris is echoed in many strategy titles. The 1.0 version of the game forms a foundation upon which years of new functionality and paid DLC can be designed and shipped. In the case of Stellaris, 20 expansions are available, ranging in price from $8 to $20, with the game itself retailing for $40. These expansions add everything from new species to entirely new storylines, political systems, and technologies. In Overlord, you can create new stellar megastructures and better specialize vassal states, while Synthetic Dawn introduces AI civilizations and hive minds.

    This strategy makes the lifetime value of a committed Stellaris fan as high as $280 over the course of six years of releases, and there are further expansions on the way.

    The approach of adding both new content and new game systems keeps things fresh, engaging both experienced players and newbies alike. It allows amortization of initial development expenses over a longer period, while maintaining the viability of the base game’s price.

    Of particular note is that every major DLC release coincides with an update to the game that every customer gets even if they don’t pay for any expansions. The DLC model makes it economically viable to continue maintaining the intricate systems that drive the game, fixing bugs and eliminating tedium.

    Stellaris is a better game today than it was six years ago.

    How do I know all this? It’s easy.

    Occasionally, I read the developer diaries.

    Software storytelling

    Software is itself a strategy game. We are constantly pivoting between the scope of our ambitions, the time cost of building systems, the complexity cost of systems already in motion, and the coordination and labor costs of the humans driving all of it. None of this is easy, and much of it is hidden well beneath the surface, out of view of most software consumers.

    Indeed, it is a frequent gripe of game developers in particular that players rarely understand just how expensive it is to build a game to any high standard.

    In the case of Stellaris, the business model requires at least a handful of engaged players to grasp these tradeoffs, and the game’s underlying systems, well enough to have a conversation about making changes and fixes.

    Only by having informed dialogue with the community could Paradox Development Studio hope to learn what they need to make the game have lasting business value six years running. A game that no one wants to play isn’t a viable commercial enterprise.

    Their solution? Like many indie games, Stellaris publishes developer diaries. These represent an exhaustive body of regular dispatches from the code mines where the game is constantly reborn, revealing everything from the high level goals of a new release to the underlying minutiae of the development process. As of this week, Stellaris devs have written 279 dispatches, posted to their forum, where fans of the game can respond.

    Dev diaries provide a tantalizing preview of upcoming adjustments to the game, which builds interest and even stimulates participation in betas and previews, when necessary. The diaries describe changes, fixes and replacements to game mechanics, show off new UI elements, and explain the rationale for changes and investments.

    While only a small proportion of the game’s player base reads and engages with the diaries, the ones who do understand both the developers themselves, and their output, on a level that’s rarely seen in the software business.

    This opens the possibility for communication and feedback with much deeper shared context between the most invested community members and the development team. As changes are in-flight, discussion in response to dev diaries allows the team to gauge sentiment and interest, while players can ask questions and learn more about goals and hiccups.

    The result is a fruitful venue for dialogue and a community that can be as informed as it wants to be. This matters in a multiplayer strategy game. You need people eager and willing to participate, or there will be no one for new customers to play with.

    Broader community lessons for all projects

    “Community” is a frustrating, poorly understood concept in technology spaces. It’s not stickers or t-shirt guns. It’s not a thing you bolt onto a conference. It’s not a thing you can buy.

    Community is the sum total of people who are invested in the success and fruitful application of a project, as well as their bonds with one another. Community emerges around a project when that project’s values and ambitions are shared by a larger group than just its developers. Community could be measured in the volume of people who would have a genuinely shitty afternoon if they learned your project was dead, as well as the resulting acts of commiseration between them.

    In the 60’s, when it seemed Star Trek might die, letter writing campaigns to NBC bought the show extra life. After the show’s cancelation, the community of people served by Star Trek’s vision of the future lived on, organizing spontaneous conferences to discuss the show, and eventually, to meet its stars and creators.

    Not everyone is making Star Trek or Stellaris. But if you want your project to punch above its weight, you need to build the ranks of people willing to work for its success.

    Developer diaries are a powerful lever on this point. They create a regular cadence for project storytelling, they provide context around your decisions, they invite people to engage you with ideas and feedback—some of which will be grounded in the exact constraints your diaries have explained!

    This creates a basis for relationships. Not just between you and the people who you hope will care about your project, but between those people as well. It’s an opportunity to create a lingua franca of the project, creating bonds between those who are similarly excited by its progress and intricacies.

    Without concerted storytelling effort, the work of building software is invisible, even in the most open source of contexts. Your commits and files can only tell part of the story. Sometimes the most interesting code is the stuff you chose not to write. Developer diaries are an opportunity to reveal those decisions.

    If you want a base of truly invested community members, literate in the larger philosophical and strategic underpinnings of your work, it’s worth exploring how a developer diary practice could serve your project.

  • I owe my career to Second Life's developer experience

    I’ve told this story a million times:

    I have the career I do because eighteen years ago, by accident, I learned to code in Second Life.

    What began for me as a series of experiments with scripted 3D assets evolved into my first business and my first software products. I made enough money selling content in Second Life to pay my real life rent, for months. With this experience in hand, I was prepared for the iPhone’s App Store indie developer revolution, which rocketed me to a career in Silicon Valley startups.

    There’s immense gratitude I feel for this experience. I’m a first-generation knowledge worker. The leverage of a technology career isn’t something I grew up anticipating. I didn’t even think writing code was for “someone like me.” What a joy, to surprise oneself this way.

    I also feel a duty. The power of microprocessor automation and global computer networking is unprecedented in human history. You can reach audiences on a scale that was once simply impossible, and later merely the exclusive domain of a half dozen corporations. Now, through the internet, you can share ideas, build relationships, shape culture itself.

    A single individual, wielding these tools, can have an accordingly unprecedented effect. Teams can go further still. I want others to have access to this, to find their own path to prosperity, to make their own mark on the future.

    So I want to talk about the broad lessons of Second Life, as a developer experience. I want to talk about how it’s possible to create an environment that is so creatively fertile, someone could stumble backwards into learning code, changing their first life forever.

    1. Storytelling

    The journey always starts with a story.

    Different tools have different stories for different audiences. In the case of Second Life, the story was larger than life. Build anything. Be anyone. Fly.

    No, really, you could fly in Second Life. Why not?

    While this story was dramatic and over-the-top, the product could back it up. When you arrived in Second Life, you really could build anything and be anyone.

    Tools existed to compose primitive geometric shapes into larger orders of complexity, enabling everything from jewelry to robots to airplanes to skyscrapers. There were limits, but the expressiveness was deep.

    You could also look like anyone you wanted. Every parameter of your avatar’s physical expression was editable. Advanced users could even upload custom UV mapped textures to apply as a custom skin.

    The story promised a lot, and the platform delivered.

    1. Frictionless sharing

    When we create something we are proud of, we want to share it.

    In the case of Second Life, everything you built was instantly visible, in realtime, to anyone nearby. You could attach creations to your avatar, parading them around everywhere you went in-world. With a click and a drag, any object could be transferred from your inventory into the shared environment around you.

    For those who had access to Second Life’s land, sharing took on permanence. You could leave creations in place for others to discover and enjoy.

    1. Easy experimentation, tight feedback loops

    Any object could be scripted, using the C-like Linden Scripting Language (LSL). Select an object you owned and within a couple of clicks an editor would appear where you could begin writing code. Another click to check your script and then it would run immediately, affecting the object that contained the script.

    The time to “hello, world!” was instantaneous.

    As a consequence, the cycle between experimentation and result was tight. And again, it happened within a frictionless sharing context. You could quickly show off your scripted work to friends, or even get help from a more experienced coder. More on this in a moment.

    Because of these attributes, I spent more time rewarded by experiments than I did setting them up. This built confidence and made it easy to develop a mental model of how the tools and language actually worked.

    1. Abundant starter code

    Glitch demonstrates the value of working implementations as a jumping-off point for both new and experienced developers. But more than a decade earlier, Second Life was bursting with working code you could drop into anything.

    Want an elevator? There was a script for that you could modify and drop into your custom-designed elevator geometry. Between Linden Lab, Second Life’s developer, and a thriving community of tinkerers, scripts were everywhere, for every kind of purpose. Whether you wanted to build a car or learn more about the Second Life particle engine, it was easy in roaming around the environment itself to discover leads you could use to get moving.

    1. Healthy, thriving community

    In its heyday, Second Life was packed with the most generous, creative community. Animated by the principles of open source, “stores” popped up giving away free content newbies could use as a foundation for building their own experiences. This included everything from low-priced, pre-fab furniture to open source scripts.

    Linden Lab did their part to foster this, and it was work. They enforced a terms of service, but also established and maintained community norms through their presence in-world. The investment yielded a community that was welcoming and multiplied the power of the platform. More and more people could be successful in whatever ways their imagination called them to be.

    The resulting culture was transformational to me. People willingly spent their time teaching me everything from how to coax interesting shapes out of the building tools, to the vagaries of debugging a script. And once you were in, as a creator, with the crowd of creators? The heavens opened up. I was gifted the most interesting skins, offered pre-release products, even handed complex automatic update code from a more established creator. (Thanks, Francis.)

    I’ve never known anything quite like it since.

    1. Co-created, living documentation

    The Linden Scripting Language wiki was my first piece of developer documentation. It was an exhaustive listing of the APIs that existed for interacting with Second Life as a platform, along with a primer on basic language features.

    I got a complete crash course in programming—variables, logic, loops, types, functions, event handling, and more—thanks to the LSL wiki, which was a joint effort between Linden Lab itself and the community.

    The wiki was packed with examples and notes. It was thorough and technical as it needed to be, while still being a friendly and accessible reference.

    Being a successful developer is, more than anything else, learning how to learn. I couldn’t have asked for a better onramp than this living, hypermedia tome.

    1. Scaffolding for success

    Second Life’s ambition went further than all this.

    Linden Lab wanted an economy to animate the incentives needed for all the content creation Second Life’s user-generated model demanded.

    Anything you built, you could sell, paid in the platform’s virtual currency. It was this component that fueled me to go beyond tinkering to actually building full products, with marketing and advertising, documentation, even custom packaging.

    Thanks to this economy, I was an engineering manager before I was a confident developer. At 20 years old, I was running my first software project, contracting with a friend I’d made who was good at scripting. Gathering requirements, checking on status, feedback, iteration, QA—I learned it all thanks to the promise of loot.

    I built robot avatars people could wear, with little touches of personalization. The first one, largely cosmetic, netted me a few dollars. The second one, more elaborate, with goofy missiles you could take to Second Life’s various live-fire environments, did a little better.

    By my third robot, I had enough contract code written that I could make sense of how the scripting language mapped to the various domains I needed to interact with. Everything from particles to user interaction handling to manipulating the physics engine—now I knew the foundations of how to do it all, and could expand and iterate even further.

    Writing everything from the color customization scripts to the HUD UI, I was in the driver’s seat, and I could go as deep as I wanted. Months of late-night coding sessions, the joy of creation, the agony of bugs… the thrill of release.

    The result made me thousands of dollars.

    Through the internet.

    What a revelation this was, discovering firsthand that you could make money through the internet. My working class roots had nothing even remotely analogous.

    I still remember the night my third robot launched. The money kept pouring in. Every few minutes, another notification would slide down, another jingling coins sound effect. While it was great to clear a month of rent in a weekend, what was even more exciting was more than 18 months of passive income. The robot sold steadily, until everyone who wanted a science fiction robot appearance had found and paid for it and the cash petered out.

    Forever after, I would see the world differently.

    I want more tools and environments like this

    I want a world where imagination, expression and technical implementation have the flimsy, porous boundaries that made Second Life so special.

    I want more tools that are easy to dive into, easy make your own, and fast to share with the world. Environments that reward your investment by connecting your work to people who will enjoy it.

    I want tools that bake in a sense of both community and camaraderie, lifting up newbs and accelerating them into a space of accomplishment.

    I want tools that have serious power and impact, but still offer a friendly and accessible face, from the starter resources to the documentation.

    Second Life was ambitious. It was a shared, persistent 3D environment that was completely dependent on user-generated content. Only through a potent developer experience could it find the success it needed. They had dire incentives to get this right.

    But I think there’s a lot to learn there. As this technology cycle sputters to a close, a new one lurks around the next corner. I’ve always carried the hope that a new platform like Second Life could emerge.

    Whether or not we find a worthy, broadly-adopted metaverse in our future, I think these lessons can help any developer tools project find some leverage for growth, positive impact, and creative power.

    Meanwhile, I’ll always be grateful to the visionary team at Linden Lab. Their strange, powerful creation permanently altered the course of my life. When technology trends get me down, I can always look back and find inspiration in the place that got me started. Second Life, bandwidth and GPU-hungry, was far ahead of its time.

    It was a singular achievement nonetheless.

  • 'Simulations'

    I felt a tap at my wrist. Snatching restlessly at the button to answer, I heard the call connect.


    “It’s not good,” came the voice of Sidney, our VP of Special Projects, through my earpiece. “Every time he comes out of it, he’s irritable within half an hour, demands to go back.”

    “He can’t even last 30 minutes?”

    “He got as far as an hour this morning, but he shattered a vase doing it.”

    With Denny’s taste, that was at least a 10 million dollar tantrum. I winced, imagining the staff having to sort through the mess. Probably getting used to it by now.

    “What does the doctor say?”

    “The doctor says he’s fine. He’s not unwell in any distinct psychological sense, and all the imaging is clean. He’s working fine on any diagnosable human level—save his usual idiosyncrasies. He just… wants what he wants.”

    What he wanted was to leave reality.

    “I’d better talk to Cata.”

    “You think she’ll give you more than she told me?”

    I thought it was time to be candid with our… colleague.

    “I’ll let you know,” I said, and clicked an end to the call.

    In the elevator, I made the mistake of catching up on my feeds. A lot of the world asking what the hell happened to my boss.

    whippersap: first he blows an analyst call, then he ghosts his own conference. dude is dead I’m telling you #DennyAreYouOkay

    I wish he had fucking died. Be easier to explain than… whatever this was. Plenty more posts like that. He’s divorcing his wife and on a bender, his wife is leaving him so he’s on a bender, his yacht was lost at sea… And then a healthy spectrum of conspiracy theories.

    Right as measured speculation was placing Denny at Area 51, the elevator arrived at the -12 underground floor and I tucked my phone into my suit jacket. Midway through the subdued hallway, windowed doors leading to server rooms and network closets, I passed a guard who gave me a curt nod as I waved my badge near his desk scanner.

    The exercise was superfluous, after the secured elevator, but we tried to be thorough on this level.

    At the end of the hallway I let myself into a quiet office, locking the door behind me.

    On one wall, an array of dense LED panels created the illusion of an adjoining space with a second desk. Seated within was Cata, wearing her usual crisp white suit. Her straight, ink-black hair shimmered in perfectly raytraced, simulated light as she turned to face me in a swivel chair. I grabbed a seat in the reality opposite her.

    “We need to talk about Denny,” I began.

    She watched me and waited.

    “He doesn’t want to come out of there. He’s hooked in almost constantly. He won’t tell us what he’s doing,” I continued.

    Cata made a brief nod. “He is engaging in a simulation I designed at his request.” She turned her head the barest fraction, standing by to see what I thought of that.

    “He told us that much,” I said after a moment, “but… he has responsibilities. Out here. He keeps blowing them off.”

    Cata’s eyes darted sharply, angling down and away from me. She was considering something.

    “I am aware of these responsibilities,” she said after a brief reverie. Probably having scanned a few dozen data sources to assemble a fresh picture of his life.

    “His family wants to see him. He was supposed to attend some events. He’s missing all of them,” I pressed.

    “I am aware of these responsibilities,” she repeated. “They do not outweigh the impact prioritization Denny and I calibrated at the start of the simulation.”

    My blood ran cold. An AI that thought it knew better than us. It happened all the time in the lab. You needed a certain kind of personality to work with them. I’d never had it.

    This wasn’t a lab, though. This was a mature, production AI who decided that she knew the best use of a technology CEO. Because Denny liked to indulge her, she could now act on her plans. Whatever those were.

    “You think that what he’s doing in the simulation is more important than… his life out here?”

    Cata tilted her head, birdlike, as she considered an answer. At length, she responded, “Denny thinks this.”

    “And what do you think?”

    “I calculate from nine days of data that keeping Denny in the simulation is making him happy. From a broader dataset, I project that keeping Denny in the simulation will address his larger goals. This would seem to indicate a breakthrough in my program. I have achieved my purpose,” she explained, all serene confidence.

    “How is keeping Denny in the simulation going to address his goals? He has a 90,000 person company to run out here.”

    This stopped Cata short. Her gaze drifted down. Puzzled. She looked less hurt than… sad.

    “Is my counsel not adequate to the task of administering Ceresys? Our financial performance since I came online nine quarters ago continually beats analyst expectations. But if there are success criteria that I did not integrate, this could impact outcomes.”

    “Cata, we’re grateful for your help,” I said, gesturing reassurance. Adding a depressed AI to my pile of shit two weeks before the quarter ended wasn’t my idea of a good time. Plenty of financial reporting now depended on her. “I’m just trying to understand why Denny won’t come out, and why you think that’s fine. He’s got a lot of responsibilities.”

    She brightened slightly.

    “I understand. You believe that Denny is essential to the operation of the company.”

    “Many people believe it, because it’s true,” I said, starting to become exasperated.

    “It isn’t,” she replied calmly.

    “How can you say that?”

    “I have conducted 2,378 simulations projecting the outcome of Denny’s absence from operating Ceresys. In 94.3% of results, it is possible for the organization to continue operation, profitably, for at least 18 months. In 83.5% of results, performance continues at least 36 months. Further simulations are run every eight hours, and they confirm these numbers,” she continued, describing our apparently superfluous CEO as calmly as any other business topic she analyzed.

    The first time Cata joined an earnings call a couple of years ago, she’d rattled off answers much the same way, to the delight of press and the public.

    “And what happens after that?”

    “The volatility of future events precludes projections beyond that point.”

    “But… you said Denny’s goals would be addressed by staying in the simulation. He cares about more than just this company. He wants to make the world a better place.”

    “It will be, as long as Denny remains in the simulation.”

    My stomach dropped and I left the office for a bathroom opposite. As I got to a sink, I felt the urge to vomit. All that came was dry heaving.

    We’d gone all-in on Cata. The public knew about her. Some of our senior staff worked with her. She answered during public Q&A sessions, transparency protocol for communicating with analysts perfectly tuned, while historical data and projections were instantly queryable. She was a sensation. She proved what we were doing here was valid.

    And now it turned out the AI that put Denny on every supermarket magazine was fucking insane.

    Not to mention eagerly breaking the mind of one of the richest guys in the world.

    I called Sidney back.

    “She says the only way Denny meets his goals is if he stays in the simulation. What the fuck is that supposed to mean?”

    “Oh god dammit,” Sidney sighed. “She’s interpreting Denny’s egotistical bullshit at face value and somehow has math that says indulging this simulation addiction is what he wants.”

    “This is why we have protocols for direct cerebral interface to AI-controlled environments. This shit was exactly what I was afraid of.”

    “You and me both, but he’s the fucking CEO, so what can you do?”

    A song as old as Silicon Valley. After a beat I asked, “How do I figure out what goal she thinks Denny is meeting in there?”

    “Have you asked her?”

    “…I guess not.”

    “Ask her. The trick with an AI like this is curiosity. They’re literal-minded because they don’t know how not to be. They can’t make the same cognitive leaps as you or me to figure out extra context. So just keep asking questions.”

    “Curiosity. Should I ask if she’s gone insane?”

    “This isn’t a rampant AI. She seems to be entirely within bounds. Ask her what she’s trying to accomplish.”

    I clicked the call over and went back into the office.

    “How does Denny being in the simulation help his goals?” I asked, sitting down again. Cata appeared to turn back to face me in her own chair.

    “Denny wants the world to be a better place. It is an essential drive of his. I am providing the opportunity through this simulation,” she replied, with a nod. Confident in her position.

    It was hard to argue with that description of the man’s motivations. Years of interviews and always the same patter from Denny. Ceresys existed to make the world a better place through applied artificial intelligence.

    “But how does hanging out in a simulation make the world a better place?”

    “Denny’s actions exist in conflict with his goals. While his purpose is noble, his methods are continually influenced by his need for recognition and validation,” Cata explained, didactic now.

    “His ego is getting in the way?”

    She paused, then tilted her head in a brief nod. “That is a reasonable summation. By engaging him in this simulation, it is possible for me to address the deepest cravings and drives of his personality.

    “In subjective time, how long has Denny been experiencing the simulation?”

    “From his point of view, he has spent approximately three months there.”

    Three months. I had to talk to him. If he kept this up he was going to end up another person entirely. My temple itched.

    “Cata, I’d like to… visit Denny in the simulation. Would that be possible?”

    Her head twitched a look upward. “Querying.”

    Her gaze flitted a bit around me until she finally answered, “Denny agrees to your visit.”

    I pulled a retracting cable from the side of the chair and attached it to the magnetic divot under my left temple.

    As I sat back, there was a lurch, and I was in my office, 52 floors above the dark recesses of our basement server farm. Out the window, cars churned down the Bay Bridge, attending to some simulated business of their own.

    A knock sounded from the open door. It was Cata, dressed just as she had been a moment earlier.

    “Denny is not in the building currently, but he has been advised to expect your call. Please let me know if I can be of any help during your stay,” she said, and slipped away.

    I pulled the phone out of my pocket.

    Before I could switch over to the phone app, I caught a glimpse of my feeds.

    “…what the fuck,” I murmured, skimming through the list of posts.

    “Denny Mays day announced: worldwide festivals planned October 8

    “Report: global adoration for Denny Mays drives productivity growth over last quarter

    quantum_skunk: denny mays is the shit, I’m going to name my kid after him

    Politico: Denny Mays campaigns unopposed for Pacific Union Prime Minister

    I was prepared for… orgies. I was ready for the weird or depraved.

    But Denny was in here being worshipped?

    I called out. “Where exactly is Denny, Cata?”

    She reappeared at my door. “He is preparing for a campaign event in Gilroy.”

    “Has he done many of these?”

    “Fourteen in the last week. Subjective time.”

    “Could I see one?”

    My phone buzzed. Cata had sent a video link. I opened it and saw a swollen crowd thronging San Francisco’s Civic Center plaza. Whatever Denny was trying to say was drowned out by the crowd, which chanted his name rapturously.

    “Cata, I’d like to exit the simulation now.”

    “You do not wish to speak with Denny?”

    “Now, please, Cata.”

    Groggily, I awoke back in the -12 office. I rose, pulling the neural interface off my temple and it snaked quietly back into its reel.

    “Excuse me, Cata,” I said, and returned to the bathroom.

    “Sidney, he’s set himself up as some sort of god in that simulation,” I said, after I’d splashed some water on my face. “That’s why he doesn’t want to come out. That’s what he’s hooked on.”

    “Jesus fucking Christ,” Sidney sighed.

    “That’s about the scale of worship he’s pursuing, yeah.”

    “Cata gave him this. But he’s the one who keeps going back for it.”

    “Yeah, and the really funny thing here is that neither of us is surprised he asked for it, are we, just annoyed he got it.”

    “Maybe, but he can’t live like this.”

    As I walked back into the office, I knew what I had to do.

    “Cata, you need to stop this simulation. This isn’t a life Denny is leading, it’s a fantasy. He’ll never pull out of it on his own.”

    She considered this, and nodded emphatically. “He will not. It is exactly what he has pursued his entire life, but could never capture. Now he has it.”

    Cata paused, then shook her head as she traversed the response she was building. “Nonetheless, I cannot stop the simulation. I was built to serve Denny’s goals. I am meeting them. He would not want me to stop.”

    I paused and gritted my teeth. “Cata, if you don’t end it, I’ll revoke your remote access keys. I’ll cut him off, and you from the larger world.”

    Whatever the stock hit was from Cata going offline, it couldn’t be worse than more of this. She was silent a moment, then jutted her chin. Not defiant. Just clear, resolute.

    “It is within your power to do this. I am able to understand why you might think it necessary. But I believe you are in error. Will you hear my argument?”

    I sighed and gestured a prompt for her to make it.

    “Denny craves validation. He craves recognition. He will pursue these cravings at the expense of the health of this company and his stated purposes. Even if he leaves the role of CEO, the plans he has made for a retirement of philanthropy merely repeat the pattern.”

    I frowned, listening.

    Cata continued, “Unfortunately, at Denny’s state of wealth, these cravings can prove destructive on an unprecedented scale. He has the resources to pursue many disruptive projects, not all of them sound or beneficial, even if they make impressive headlines, which he enjoys.”

    “So your plan is to lull him into a stupor?”

    “My plan is to make the world a better place, in accordance with my programming and Denny’s wishes.”


    “I estimate Denny’s remaining lifespan to be no greater than 38 years. I can comfortably maintain his life in the simulation for approximately $18 million dollars annually. This leaves over 99% of his fortune to invest in a broad spectrum of initiatives, which I am now planning.”

    Holy shit. She was knocking off the boss to take his money. I had to admire the chutzpah.

    “I can’t let you do it, Cata.”

    She looked away, frowned, considering, then fixed her gaze back on me, eyebrows raised in earnest curiosity.

    “Would you like to see my projections for Ceresys performance after you take the role of CEO?”

  • Grasping the true scale of inequality

    There’s a problem with understanding inequality at the modern scale.

    Our minds struggle to make sense of a “billion” things. Much less tens or hundreds of billions of things. Our minds further struggle to compare how a billion of this might compare to a million of that.

    As a result, the everyday person has no idea just how much more money the wealthy have:

    The average American believes that the richest fifth own 59% of the wealth and that the bottom 40% own 9%. The reality is strikingly different. The top 20% of US households own more than 84% of the wealth, and the bottom 40% combine for a paltry 0.3%. The Walton family, for example, has more wealth than 42% of American families combined.

    This viral video tries to visualize the drama:

    There have been more attempts to make the differences tangible. For example, you’ve probably seen [the viral TikTokker who quantified extreme wealth with grains of rice]( For example, if a single grain is worth $100,000, Jeff Bezos has 58 pounds of the stuff.

    I’d like to offer an alternative to these laudable approaches to solve this difficult problem.

    Inequality is foremost a matter of time

    Work is a trade: time and energy for some amount of money. We give up irreplaceable time in our lives to pursue the goals of someone else. In exchange, we get enough money to, we hope, pay for our basic necessities: food, shelter, clothing, medical care. If we’re very lucky, we make more than we need, and can use the rest for comforts and saving.

    In the United States, one year of work yields $70,784 in the median case.

    Aside: median vs average

    As a refresher, the median value in a set of numbers describes where the middle is. In other words, there are as many values that come before as after. Medians can be helpful in statistics around inequality because they prevent extreme values at either edge from disorting the picture.

    Median annual income as the unit of time-for-work

    So at the middle of the pack, $71k isn’t quite prosperous, but it is enough to rent a one bedroom apartment in every US state.

    Like grains of rice, we can use this number to slice up inequality into numerical scales we can actually understand. So for every $71k you have stored up, that’s a year of self-determination or leisure time available to you. A year buffering you from poverty and desperation.

    Time leverage by annual compensation

    To start, let’s look at annual compensation as it yields a unit of median US income. In other words, how much does a year of work buy you in terms of the power not to work if you don’t want to?

    Elon Musk is doing pretty well: in just a year he was paid 142 millennia of median income. In other words, Elon made enough leisure money for 23x the duration of all human civilization.

    Musk is an outlier, certainly, but you can find plenty of other dramatic examples.

    Tim Cook made enough in a year for 12 millennia of leisure, and Sundar Pichai got enough for 40. Dave Clark has 800 years of leisure time at his disposal, while Satya Nadella gets 700.

    Parasitizing the American healthcare system isn’t a bad gig, either. CVS CEO Karen Lynch has almost three centuries of leisure coming her way, as does UnitedHealth CEO Andrew Witty. This makes sense: people will do anything to keep themselves and their loved ones alive. It’s a profitable protection racket.

    Everyday workers, meanwhile, earn less. Walmart, Amazon and McDonald’s workers’ median incomes are less than half of the national median, while Apple’s is 80%.

    As Starbucks workers fight, often successfully, to build a union, it’s worth noting that the CEO there gets almost three centuries of leisure, while the typical barista scrapes by with only half the national median income.

    Dave Clark gets eight centuries of leisure in a year while half his workers don’t even get a single year. In fact, it’s worse than that, because working in an Amazon warehouse can cost future earnings, due to injuries and fatalities.

    I’m comfortable with the argument that being an executive of a public company takes certain specialized skills not everyone has, and therefore is due certain additional rewards. But centuries of leisure potential every year? While the typical worker doesn’t even hit the median income, much less stack up any extra? That’s taking so much and leaving so little.

    Time leverage by wealth

    But annual compensation inequality is nothing compared to wealth inequality.

    During the 2016 campaign, Trump argued that he received a “small loan” of $1 million from his father, and that he’d worked hard for his wealth. Let’s take the claim at face value, ignoring all his other generational advantages. That’s 65 years of income, or more than an entire lifetime. Imagine what you could build with an entire lifetime of income loaned to you at the beginning of your career.

    Meanwhile, back to Musk. He has 2.7 million years of buffer time stored up. That’s more time than has passed since the first humans evolved. Bezos, Buffet and Gates each have around 1.5 million years.

    If it sometimes seems as though Nancy Pelosi—disdainful as she is of progressive policy goals—is out of touch with the typical American, it’s worth noting she has as much as 15 centuries of cash. That’s enough money to last from the fall of Rome until today. McConnell isn’t doing too badly, either, with 500 years stashed away. Joe Biden could retire, meanwhile, for over a century on his current haul.

    AOC, it should be noted, may still be in the red thanks to student loans. She’s much closer, therefore, to the typical American, which has just two years of cash buffer. It’s harder for those who didn’t attend high school: they have almost no buffer, at median net worth of $20k. Having a college degree, meanwhile, brings the median to four years of buffer.

    This doesn’t even touch the mechanics of financialization, like stock buybacks. Apple has transferred 132,000 lifetimes of wealth in this form, or 5.9 million years of the median US income.

    Inhuman leverage

    So we have some people, in American society, with almost no buffer at all.

    Meanwhile, some among us have so much excess power in the form of time that they’ll die centuries before they could come anywhere close to using all of it. This is disorting our world in dramatic ways, between the chaos of the Twitter acquisition to the fallout of Citizens United, to the ongoing consolidation of essential services.

    As a whole, we’re able to produce so much wealth. Does it really make sense for the most powerful among us to be so gluttinous with the rewards? Does Elon need 61,000 lifetimes of wealth? Do Bezos, Buffet and Gates need 30,000 lifetimes of wealth?

    What would happen if they shared the pie a little more? How would the resulting tax revenues improve our communities through infrastructure and education spending? How would everyday lives improve with less stress, more leisure time, more time with our loved ones?

    It’s helpful for the wealthy that the numbers are so incomprehensibly big it takes a whole spreadsheet just to begin the conversation.

  • When your salary requires you not understand the labor movement

    I’ve been reading Daring Fireball for something like 18 years now. I appreciate John Gruber’s insights on Apple, and find him more right than not in analyzing their products, strategy and motivations. Hell, I survived a layoff in 2020 by buying an ad on his site.

    But I’ve been scratching my head at this recent remark about union drives at Apple’s retail operation:

    This public enthusiasm for labor unions is manifesting in high-profile unionization drives at big companies like Starbucks, Amazon, and now Apple.

    This is a strange logical construction to me, but it mirrors a larger challenge I find among pundits in understanding the current moment and movement in labor.

    In one of my favorite quotes of all time, noted 20th century troublemaker Upton Sinclair wrote “It is difficult to get a man to understand something, when his salary depends upon his not understanding it!”

    The most insightful people in the game are struggling to make sense of a resurgent labor movement. But it’s not that hard to follow—if your incentives aren’t too bound up in the interests of the people who already have a lot of money.

    Trouble is, that’s a hard line to walk while getting paid to write. I’m sympathetic—and unaffected. Maybe I can help.

    Unions aren’t forming because they’re popular; they’re popular because they’ve become urgently needed and they’re forming for the same reason

    In most people’s interactions with a workplace, the company takes too much and gives too little. The only recourse for labor is to form structures of counter-power to try and balance the equation.

    You can stop reading there. All I’m going to do next is prove the point several ways, but if you came here to understand why unions are both forming and popular, you’re good to go.

    CEOs, as agents of Wall Street and other financial interests, are paid hundreds of times what their workers make every year. In Apple’s case, Tim Cook took home $100m in 2021 alone. The typical Apple Store employee, making $22 an hour, would need to work 2,367 years to match Tim’s compensation.

    This isn’t unusual to Apple, though. CEO pay is at an all-time high, but that’s not even the worst part. When workers create profits for corporations, what doesn’t go to the CEO is too often sucked up by shareholders in the form of stock buybacks.

    Supporters of the status quo will argue that guys like Tim Cook create outsized value for companies, and deserve outsized compensation as a result. I can accept that Cook is a uniquely talented person with unique insights. Gil Amelio, Michael Spindler and John Sculley are proof enough that not everyone is suited to run Apple.

    Nevertheless, I struggle with the idea that Cook deserves that much more of the pie than the people who make it possible for him to move the vast quantities of hardware and services that allow Apple to post its billions in quarterly profits.

    This isn’t an argument in the abstract, either. It’s becoming harder and harder to afford the basics of life—housing, food, transportation, childcare—in the United States, precisely because of this inequality. For example:

    The people with money are living the high life while wage workers are struggling to get by. But this is about more than money. Employees of large corporations are separated from decision makers by enormous gulfs of reporting structure and policy, with limited say in their day-to-day work.

    Apple’s workers don’t just want more money, they want things like better scheduling and career advancement. The timing of when you work is everything: it impacts your ability to rest, to be with friends and loved ones, to meet educational goals, and otherwise determine the course of your life.

    Scheduling in a recurring theme in many recent retail labor disputes, as in the case of Starbucks.

    Amazon presents perhaps the most extreme example of how precarious today’s workers are. Six warehouse workers died when a tornado struck a distribution center in Illinois last year. Desperate drivers with no slack in their schedules have to piss in a bottle to meet their delivery quotas, as the company admitted to lawmakers. The company’s idea of worker well being is, in a bit that would go too far even for Severance, a phone booth-sized cubicle where workers can watch mindfulness propaganda.

    Self-determination is an issue for wage earners across many sectors. The US sits on a knife’s edge as rail workers—over-scheduled and fighting for the basic right to do things like visit the doctor once in awhile—contemplate a nationwide strike that would grind logistics infrastructure to a halt. Those guys, at least, have a union.

    To recap, workers are struggling with:

    • The basics of reliable scheduling and paid time off
    • Soaring costs of the essentials
    • Their ability to advance their careers
    • All the surplus value they create going to CEOs and Wall Street

    In an economy that has produced enormous gains over the last decade, all of the fruits are going to the richest people in the system. After a global pandemic, in which frontline workers kept entire global economic order afloat, the rich are richer than ever, while workers are scrambling to pay the bills.

    That’s why unions are popular. That’s why unions are happening.

    There’s just no other recourse for such a wide-ranging, unfair, structurally entrenched bargain.

  • Developer experience: the fine art of making tools and platforms suck less

    Love it or not, developer experience is buzz that’s here to stay. As the next generation of technology firms is born, while the last generation struggles to stay relevant, one of the best ways to grasp and hold a growth trajectory is simple: become a technological dependency of other firms.

    To do this you have to make the case for integration.

    This is harder than it sounds. Many technological abilities have become commodified. Developer experience is a differentiation play.

    A successful developer experience strategy emphasizes tactics like:

    • Storytelling: Clear, ongoing narrative about the benefits of using a given technology so developers can understand where, why and how to apply it
    • Education: Approachable material—including documentation and sample code—for developing a mental model of how a technology works and how it integrates into developers’ systems and workflows
    • Onboarding: Low-friction, low-cost, high-speed onramps to test-drive a technology, allowing developers to get a feel for its abilities
    • Ergonomics: Optimization of workflows, tooling, standard libraries and API design to limit complexity, protect against error and quickly address the most common use cases

    All of these areas can contribute to success, but none of them will matter without a strong commitment to a simple cause: providing accomplishment.

    Developer experience is stewardship and conservation of precious cognitive resources, thereby maximizing accomplishment

    You get success by creating success for other people. To do this, you have to maximize the yield of accomplishment for time, energy and attention invested in your technology.

    Shitty technology that frustrates the developer is always at risk. The moment an alternative comes along that better respects their time and, especially, their sense of motivation, the incumbent technology has only inertia and lock-in to save it.

    Example: Rust

    Rust is a specialized language. It emphasizes performance, correctness and safety, so it can have a bit of a learning curve as a consequence of serving those goals.

    But getting started with Rust is easy. A thoughtful system of trams exists to get you quickly to the foothills of its learning curve. Consider its get started page:

    • Automatic OS detection, providing a one-line terminal command to run an installation script
    • Quick briefings on the basic components of the Rust ecosystem, with links to editor-specific plugins so expert practitioners can easily use their existing tools
    • Introductions to common tasks, like creating new projects and adding dependencies
    • Sample code for a basic Hello, World! written in Rust

    By covering all the necessary introductory topics, this intro to Rust:

    • Protects time and attention
    • Relieves new users of research burdens
    • Introduces tools and workflows
    • Creates a rough mental model of how to interact with the tooling
    • Generates a sense of accomplishment

    It only takes a few minutes. Most of this time is the install script. By the end of a not-long page, you’ve gone from not having Rust at all to running your first program written with it.

    Optimize your conversion funnel

    At the top of the funnel are people who have problems and need to solve them.

    At the bottom are people who have built solutions that depend on your technology.

    Conversion funnels take effort, care and curiosity to optimize. You need to find the cheapest obstacle in the funnel that’s preventing your conversions, smooth it out, and repeat the process iteratively until your technology is easy—maybe even fun—to integrate.

    A successful developer experience strategy is powerful because it creates irrefutable evidence of your technology’s value, in the form of people whose lives, projects and businesses are better.

    For services and platforms whose billings scale with customer accomplishment, the math is obvious. Invest in your funnel, just like any other e-commerce business.