Software and its Discontents, Part 3: Rising Cost and Elusive Success
This is part 3 in my “Software and its Discontents” series. This series is the product of speaking with a range of folks in the industry over several months about the sense that something about the current state of tech, startups and software has gone quite wrong.
In part 1, I wrote about how the macro-economic environment is driving the timing of this conversation, and in particular the impact that a decade of cheap money had on how we build software, and what the end of that decade means. In part 2, I explored how building software is counter-intuitively harder today than ever, because the complexity of building software has exploded. This post will build on part 1 and part 2 to talk about how the economics of employing a team of software engineers has changed.
An aside: layoffs suck
Layoffs suck. I’ve written about them a bit in Building Layoffs on a Healthy Foundation. If you were recently laid off, especially if you’re vulnerable to our capricious immigration system, you have my sympathy, and please don’t hesitate to ask on the off chance there is something I can do to help.
It is awkward to write about reducing working in tech just to its economic mechanics at the exact moment when many of the most successful and profitable companies in our industry are doing layoffs. My hope for this series is to help people understand this system and how it’s changing, in order to have better tools for shaping the outcomes. Especially for the estimated 50% of the industry who joined in the last 10 years and have known only boom conditions.
Getting paid
As the boss in the recent McSweeney’s article said, “I wish I wanted to pay you, but I don’t.” As a sometimes boss myself, I might say it with more nuance. Let’s assume we all agree that everyone deserves food, shelter, education, health, and meaningful dignified work. (though that is very much not the case in our society). As a boss I can either pay you out of the sustainable profits our company generates or I can compensate you with the money the market has lent me in the form of our company’s valuation. In tech companies, in general, we’re compensated inline with our company’s valuation, which is often many multiples larger than our profits (assuming we have any). Those multiples are driven by Silicon Valley’s (and the SV-adjacent ecosystem’s) special relationship with software.
Asymptotic return to scale is the key math behind tech salaries
The Silicon Valley model, at its most basic, is that we spend a relatively small fixed cost upfront to develop software, and then each new customer has near zero marginal cost – they’re just another row in the database after all. In this model once you’ve acquired enough customers to pay back your initial investment all the subsequent customers are pure profit (and that profit can be reinvested into further improving your product and protecting your base). At scale this becomes a machine for printing money. Contrast this to selling a physical product. In that model you have to pay for materials and labor for each and every widget you manufacture.
The equation of low fixed cost and scaling with near zero marginal cost is why “scale” is such a power word in our industry, and justifies ongoing investments in tech that otherwise boggle the mind.
However, as the decade of cheap money recedes, we see that the equation changed while no one was looking.
Tech talent is more expensive than ever.
As anyone who has spent any time hiring engineers in the last decade knows: competition, always intense, is now fierce. If you haven’t spent any time hiring engineers, I’ll try to set the scene. The perks at a Google or a Facebook are legend, but perks are only a small fraction of the resources tech companies dedicate to hiring. Speaking with leaders at software companies, many will tell you their number one job is hiring. In fact hiring is one of the most important jobs a tech company has, often spending upwards of 20% of their employee’s working hours on nothing but hiring. This time spent includes:
- dedicated sourcing and recruiting staff
- employees working interview loops
- campus and job fair visits
- hiring committees
- content marketing
- conferences
- and so much more.
An entire industry has emerged helping candidates prepare for interviews, and another industry in evaluating candidates. Employees can make a serious side income of hundreds of thousands of dollars referring candidates to their firms. A $10k bonus for successfully referring a single candidate isn’t uncommon. Mind-blowing when you consider that average tenure for a tech employee in San Francisco before the pandemic was 18 months.
The competition justified by the potential for asymptotic returns, and the competition driven by structural changes like increased team sizes (as we touched on in part 1, “what were we spending the cheap money on“), and the simple inflationary pressures of too much money chasing too few potential employees have all, unsurprisingly, driven up salaries.
From 2010 to 2020 software salaries went up roughly 35% – prior to the pandemic and the current wave of inflation. Stock-based compensation practices also became more generous. Practices like annual refreshes, accelerated vesting, and widespread usage of RSUs all became more common in the last decade. As an engineering leader, a key new challenge in the last few years has been ensuring long-tenured employees aren’t unfairly under-compensated compared to new hires, a challenge that has driven change and innovation in equity approaches. The most dramatic percent raises in compensation have gone to early career folks and new grads, with interns regularly making 200% of the US median income. We’ve also started to see management and IC tracks diverge in compensation, heresy among the startups of the previous decade. These costs aren’t just rising in traditional high-cost locations like San Francisco and New York, but globally. Globally we’ve also see rapidly expanding domestic technology ecosystems competing for talent with companies looking to offshore out of high-cost locations, driving demand in markets where employers historically had the leverage. Average compensation in traditionally high talent density, low- and medium-cost locations like India, Poland, and Israel has more than doubled, and during the pandemic, when salaries shot up again, salaries for some specialties were inline with San Francisco. The number of companies shifting to remote-first or hybrid, which had been accelerating before the pandemic, exploded during the pandemic, driving increases in what had been, from a cost perspective, second- and third-tier talent markets. Some companies have gone as far as embracing one pay band globally.
Larger teams with rapidly rising median salaries and narrower compensation windows have put significant pressure on the “relatively low fixed cost” side of the equation.
Success is more elusive.
For the decade between 2000-2010, the most important trend to understand what was happening in tech was broadband adoption doubling annually. This was followed rapidly by an even more extreme curve for smartphone adoption. These trends created the opportunity to build thousands of new businesses largely without competition, and with a guaranteed pipeline of new customers. Building a successful technology business in this period was mostly about getting the damn code to run and being there waiting at the end of the conveyor belt as new customers were continuously minted. Those new customers made the theoretical returns to scale a reality, and made them seem like an inevitability.
Twenty years later, things have changed. Broadband and smartphone adoption have largely saturated. There are no new customers moving from snail mail to email, the video store to streaming, classifieds to web advertising, or the filing cabinet to online banking waiting to be snapped up. People have largely already adopted computers and the Internet to assist in their personal and work lives. A company starting today isn’t competing against an incumbent from an earlier technology regime, but a savvy technology native competitor. And the current generation of tech giant monopolists have consistently proven themselves extremely effective at avoiding being disrupted by upstarts. (The effectiveness of the current tech giants has also reinforced their technical and cultural practices without the blunting derision of being seen as “dinosaurs’’, a key contributor to the aesthetic of complexity we talked about in part 2, and a general cargo-culting across the industry)
That changing landscape has led the cheap money to search further afield for opportunities that can be tackled with software. Companies have pushed into industries that share very little with the return to scale model at the heart of the Silicon Valley tech salary math. We now see businesses with significant physical costs, and high costs per customer like ride sharing, delivery or hardware businesses. We see businesses with high per-customer licensing costs, like the streaming music companies. We see pushes into logistically complex businesses, e.g. health care, where regulatory oversight raises the cost to scale significantly.
Our industry’s constant search for greener fields, jonesing for the same broadband/smartphone adoption high, also drives the goldfish-like optimism characteristic of our industry. The procession of “next big thing, this will change everything” includes: AI, Web3, NFTs, blockchain, chatbots, gig economy, AR, appstores, big data, smart assistants, peer-to-peer, 3D printers, IoT, SoLoMo, feed driven virality, RIAs, virtual worlds, apps, applets, and portals. VR is probably the canonical example as it’s been the next big thing at least 4 times in my career, and I think I missed the first wave, having first shown up for VRML.
Success is more difficult and elusive than ever.
Much smarter people than I am have pointed out that all this tends to be cyclical. “Technological Revolutions and Financial Capital” by Carlota Perez is the canonical text on the topic if you wanted to dive into the deep end.
Lost that magic feeling
The 15 years following the rise of the web was a magical era for many looking to build new businesses. (Also magical for a whole bunch of other reasons that aren’t relevant to this article.)
You could lay out a relatively small amount of capital, hire a software engineering team, and build a wildly successful business that challenged existing industry titans in relatively short order. That expectation still forms the foundation for much of our industry. The decade of low interest rates and cheap money allowed us to put off critical reexamining those narratives.
Instead of re-examining those narratives, we spent. As complexity made software development harder, we hired larger teams, adding more complexity. As blockbuster businesses got harder to build, we spent even more on the talent needed to give us a shot at these increasingly elusive prize. As cost and complexity went up so did the precarity of the house of cards, and the difficulty of seeing a return.
In our current era it would be hard to point to a company more widely respected than Stripe. Now in its 14th year, it still isn’t profitable, still hasn’t gone public, and still primarily operates in a commodity market with well-established competitors. Compare that to Amazon who IPOed after 3 years, Apple after 4 years, Yahoo after 2 years, Google after 6 years, Netflix after 5 years, and Facebook after 8 years, with Microsoft being the outlier at 11 years. An IPO isn’t the definition of success, but it points to the new pressures the industry is experiencing, pressures that, among other things, have led to changing expectations in the workplace, and increased conflict between leadership and the workforce, even during a time of prosperity. Which we’ll talk about in part 4.