Software Ate the World, Now It's Your Turn

9 months ago, I wrote an essay detailing my angst about what AI would do to the career that I love - software engineering.

This month, the Writer's Guild of America ended their X month strike by signing a deal with Hollywood. As a result, 60 to 80 percent of contracts will not be renewed.

In his newsletter Platformer, journalist Casey Newton urged his colleages to branch out from established media outlets, noting that BuzzFeed News, Protocol, and Vice's Motherboard are spinning down or shuttered altogether.

Is the squeeze journalists and writers are feeling a premonition of things to come for software engineers?

We used to have a limited supply of media, and so power rested in the hands of suppliers (Hollywood). We now live in a world of media abundance, and power has shifted towards those who control demand: Netflix, Google (via Youtube, and Android), and Apple (via Apple TV, and iOS). Making a movie isn't enough anymore. You also have to stand out so much that people drive to the theatre to watch it.

The old non-digital economy is a world of scarcity where being in control of supply made you valuable. But in a world of abundance the control reverses.

Today, a good software engineer can control her fraction of the supply of a scarce resource that is in high demand (engineering talent). And so she can extract a significant fraction of its value from her employer via a high salary.

I believe Generative AI is shifting us from a world of white-collar talent scarcity to abundance. LLMs already dramatically enhance my productivity. And they will get better quickly. The big players are throwing as much data and compute at them as they can.

What can a software engineer, journalist, or other white-collar worker do in the face of the coming tsunami? You have two axes on which you can reach for higher ground: Supply and Demand.

Controlling Supply

How can you control supply? I see two methods: Specialize and Go Up Market. Software Engineering covers a broad skillset that is applicable to a variety of domains. Differentiating across both will increase your control over supply and diminish competition.

For now, AI models seem to be tightly constrained by their data. I previously outlined my plan to specialize as a frontend focused engineer in biotech. The amount of good data about frontend software for biotechs is strictly less than for frontend software generically, which is less than all software generally.

This is a good idea even if AI advancements stall. In applying to a generic software engineer job I am essentially competing against every other software engineer. But if I apply for a frontend role at a biotech company, my competition is small.

Going Up Market means you go after clients/companies with more money. You have to build a reputation and social proof to distinguish yourself from a commodity. Your customers give you more money in exchange for more reliability and legibility. This is what gives you control over supply.

Various technical, psychological, and societal reasons make it hard to trust the output of generative AI. While the supply of software engineering output may increase quickly, the supply of trusted/de-risked software engineering will grow slower, giving you more control.

Controlling Demand

The above tactics will buy you time, but they don't attack the fundamental issue. Ultimately, abundant competition means controlling supply is a losing strategy. You need to control demand.

What does demand look like for a software engineer? If demand is readers for a journalist, users would be a close analogy. This is bad news for me, and probably you. It is very hard to make a new piece of software that gets users. It also takes a long time, which is why people raise VC money. And it usually doesn't work after all that time, which is why VC investors make 100 investments with the expectation that 1 of them will succeed. The other 99 lost bets are the cost of doing business.

Not only is it structurally difficult, I, perhaps like you, have no special advantages relative to a software engineer off the street. I have a pretty good network in my domain (the life sciences), but not one that would give me easy access to capital, financial or human.

If I can't credibly command the attention of users directly, I have to go a layer up - aggregating the demand of companies via freelancing. You may be raising your eyebrows at this. How is this fundamentally different from being a full time employee? Aren't you still pumping out code for pay?

It's true - this isn't as good as having direct relationships to paying users, but it is meaningfully better than being an employee. Not only do I have to integrate into a team and produce high quality code, I also have to learn how to find/attract leads and close them. I have to build, maintain, and get value from direct relationships to companies.

But what should you do concretely?

This approach has the significant advantage of simplicity - there's a straightforward playbook that you can follow to get quite good odds of success.

First, create a landing page that crisply describes your offering. Make sure to write the copy from the perspective of the customer and their problem, not your own. See for my implementation of this idea.

Second, produce artifacts that substantially help people immediately and raise your credibility as an authority. Then link to your landing page. For me, this involved building an open source UI kit for life science, a landing page for a community in my domain of expertise, and building a survey results site for that community. All of these are freely accessible and provide value to my target client. It is important to call out that you shouldn't produce these artifacts cynically - You should earnestly try to address a customer need.

Third, find 10 potential customers and message them. In this message you can now credibly link to an artifact that helps people like them. Point them towards your landing page. Directly ask them if they have work for you.

This process is called "Scratching and Clawing", because it takes effort to get started and feels unpleasant when you're starting out. But it works.

How did it go for me?

To preserve leverage in negotiations with clients , I won't (initially) add concrete numbers here. At the end of 2024, I'll add in my revenue and time tracking numbers for 2023. But I can say that running the business wasn't a hardship financially.

And yet, I don't feel as though I can rest on my laurels. I have gotten some traction as a contractor, and gained slightly higher ground than when I was an employee, but I am not sure it's safe from the rising tide of AI capabilities. Serving users directly is still a ways away.

I love my job - building software for life scientists to make their work easier, faster, and more impactful. If you also have a job you love that you think will go away, I hope this essay gives you some ideas. Good luck.

Stay up to date

Get notified when I publish something new, and unsubscribe at any time.