The Factorio Mindset
I used to be of the opinion that the computer game Factorio was a colossal waste of talent, burning many billions of dollars of GDP every year. It seemed downright pathological that Shopify lets employees expense it. If anything, my view was that Amazon should be reimbursing Shopify employees for playing.
But since trying it out a bit more I’m starting to suspect that Factorio is the rare computer game to actually increase GDP. In Factorio, players gather resources and craft items, and then automate this process—so a player might start by manually mining coal and iron, then smelt the iron and use it to build a mining drill, the hook up some conveyor belts so the miner automatically sends the iron to a smelter, then hook up conveyor belts to that and uses them to pass these materials on to a factory that mass-produces more conveyor belts, mining drills, and so on.
This may sound boring, but how many human-hours per year are spent matching colored gems? Some games get described as meditative, and that's true of Factorio in two senses: first, there's a theme-and-variation aspect to it, where each new product built is some combination of known problems (e.g. one more thing to move on conveyor belts) and new challenges (squirting fluids through pipes, and combining their outputs with solid products to create new items). But it's also meditative in the sense that meditation is partly a way to cultivate a particular mindset, and Factorio does that, too. You can meditate in order to be in the moment; you play Factorio in order to habituate yourself to never leaving a manual process un-automated.
Over time, playing the game reveals the metagame: early factories end up poorly laid-out, with redundancies, complex hacky ways of moving products around, and dead ends from which it's impossible to scale. So the basic loop in the game is:
- Make a series of design decisions that have some internal logic at the time, but with accruing mistakes.
- As you scale, see the consequences compound and necessitate increasingly hacky solutions.
- Rip up large fractions of the setup and lay them out again with more straight lines and sensibility
- Go to 1, but making the next round of errors subtler, meaning that the complications are correspondingly hard to fix.
The traditional programming term for solving this kind of problem is “refactoring,” when you take a big messy blob of code that has evolved over time, write down what it is actually supposed to do, and rewrite something that does exactly that.1 Factorio involves a lot of this (it should probably be renamed "Refactorio"). The player is basically building a giant mesh of in-game APIs (“plug in here to get steel bars, plug in there to get green circuits”), getting those APIs to 100% reliability, and then building something on top of them and getting that to perfect reliability, all while managing scarce resources and dealing with random failures.2
This metagame also has some of the flavor of memory management, both in the directly analogous sense that there are finite resources that have to be allocated to different tasks, and in the more metaphorical sense that one of the limits to sloppy scaling is losing track of what you're working on. Building something that isn't resource-constrained is one task, and building something that doesn't overproduce anything of significance is another, more complicated task—but one that's also rewarding, because it makes the problem so easy to keep track of. Ineffective scaling in Factorio can reach a point where players can in principle keep going, but would in practice need to track an elaborate to-do list; in that case, they lose by turning a game into a chore.
There are many games that evolve into a metagame; chess has a weird dynamic where players spend the first hour or so memorizing, then spend a while strategizing, and then, later in their career, invest ever more effort in memorizing again; poker starts out being a game of calculating probabilities from limited information and turns into a game of maximizing the information gap with an opponent; player-versus-player videogames games with complicated character builds start out being about reaction time and end up being a matter of identifying the most important stats and pulling every possible lever to maximize those stats; Wordle starts out as an easy but luck-driven vocabulary test and turns into an exercise in information theory. Some games and their surrounding communities find ways to gracefully guide players from the game to the metagame, and they're both enjoyable at different levels. (Blackjack can be perfectly fun even if you're not counting cards, and it’s a judgement call in both directions: the metagame can feel like a boring grind, but ignoring the metagame can be boring in a different way; it means participating as a labor-intensive non-player character.)
This metagame ends up giving players the habit of looking at every situation by asking: what's the best way to automate this, and what dependencies of other automations are threatened if I do? This is, for developers and for the many, many people whose jobs will involve more software development over time, a very good habit indeed. I tried to crank through some emails right after playing Factorio one time, and realized—I urgently need to write some email snippets. This just can't be allowed to exist in an un-automated state! But if I'm going to use a lot of email snippets, I need a consistent way to manage them lest I end up with five different iterations on "Yes, let's talk about that; here's my Calendly."
This is a good habit. If something is worth doing, there's a good chance it's worth doing equally well at 1,000x the scale. And even if most things don't scale that way, a 1% hit rate on asking that question about equivalently valuable things produces a 10x increase in overall output. It's possible to improve through continuous gradual change, and in some domains that's the only kind of improvement available; you will probably not 50x your deadlift. But the domains where that's not true are an increasing share of overall economic activity, for the basically tautological reason that they’re the ones that end up scaling.
It's very valuable to cultivate this habit of seeking opportunities for scaling, even if the payoff is uneven; people who haggle about everything will end up getting moved to better seats on planes every so often, but if they also negotiate a 2% better raise or offer every single year, their lifetime earnings will be 55% higher, and if they fight for higher equity compensation at the right time the results can be very nice indeed. Continuous optimization is a good habit that the game loop of Factorio inculcates quite nicely; just as Tetris addicts used to talk about closing their eyes and seeing falling blocks, Factorio aficionados look up from their screen and see processes that could never need manual intervention again. And the game also encourages people to think about scale: why automate only part of your job when you could automate all of it?
The bad habits it offers are:
- Assuming that everything worth doing is worth automating (yes, there is a relevant XKCD).
- Related to this, assuming that everything can scale arbitrarily.
As it turns out, there is a flip side to the fact that some problems can be automated away: it means that, over time, a larger share of the total problems in the world stem from things that can't be automated away. Good luck stringing together some API calls to fix jealousy or hubris.
There are limitations to the Factorio mindset, which are caused by the incompatibility of a full-automation mindset with human nature and the typical behaviour within organizations. Which makes Shopify's decision to let employees expense the game a very clever one indeed: it's quirky perk, partly a way for leisure time to build better habits—and partly a way to give more people a shared vocabulary for which business problems can be solved, and how to solve them.
A Word From Our Sponsors
High-net-worth individuals have access to much better investment strategies than those available to you. If you're a serious retail investor trying to implement a rule-based investing strategy, chances are you're still managing your portfolio in Excel and manually entering trades in a brokerage account.
A lack of automated tools for strategy construction and execution has prevented retail investors from capturing hedge fund-like returns. Until now.
Composer is an automated trading platform that allows savvy investors, like readers of The Diff, to easily build a portfolio of hedge fund-like strategies.
Instead of struggling to implement strategies yourself, Composer breaks the strategy creation process into building blocks that can be infinitely combined using our no-code visual editor. Once you create a strategy and invest in it, Composer will automatically execute trades on your behalf based on the strategy's logic.
If you’re not ready to create a strategy from scratch, you can choose from our collection of vetted ready-made strategies. Composer makes the kinds of strategies that are used by top hedge funds as easy to access as individual stocks.
Find out why early beta users have called the experience "magical".
Investing in securities involves risks, including the risk of loss. Borrowing on margin can add to these risks. Composer Technologies Inc., SEC Registered RIA.
The Carbon Rally
It's a grim coincidence that low-emissions power companies' stock prices are sensitive to interest rates, because it means that recent headlines look especially bad for ESG investors: NextEra Energy, a renewables-focused utility with an enviable long-term record (23.4% compounded over the ten years through 2021, an incredible record for a utility that wasn't in financial distress at the start of that period) has dropped 17.7% so far this year. Meanwhile, Peabody Energy's quarterly earnings are at their highest levels since at least 1999 ($, FT). Both stories are short-term deviations from a bigger trend: coal companies are profitable in part because so many companies are withdrawing from the coal business, and they happen to be leaving coal production faster than coal consumption. Given the variance in demand for hydrocarbons, it's hard to manage a transition well without stories like this. And despite the recent deviations, overall market values still point to the same trend: Peabody trades at under 3x next year's earnings, while NextEra, despite the recent drawdown, is trading at 27x—a multiple exactly ten times higher.
The recent Canadian trucker protest over vaccine mandates has blocked the Ambassador Bridge, which accounts for 25% of US/Canada trade. It's an important bridge; this is the one Warren Buffett owned 25% of in the 1970s, and the bridge's subsequent owner died a billionaire. Just as US/China supply chain integration has made trade restrictions incredibly disruptive—cut off access to one essential component and the product can't get built, making the rest of the supply chain a stranded asset—trade between countries also makes physical assets more vulnerable to interference. The last year has been an interesting one for supply chain disruptions of all kinds (Ever Given was in late March of last year), and they seem to have effects that outlast the immediate cutoff of goods.
Housing and Rates
Calculated Risk argues that based on historical trends, new home sales will be at least temporarily disrupted by higher mortgage prices. Since homebuyers use leverage, and in fairly standardized ways, the price of a house is the output of a process involving down payments and monthly budgets, not an input into the search process. Higher home prices, as opposed to a higher monthly cost for housing, do have an impact: they create more demand for construction. One interesting post-Covid change is that more people at peak homebuying age have relocated from cities with constrained housing supply to suburbs with more willingness to build. While there’s not clean data on this it's likely that the correlation between housing prices and new home construction is tighter than it used to be.
Full Stack Media
Crypto exchange Binance is investing $200m in the parent company of Forbes. Crypto exchanges can be a wonderfully profitable business, but they're hard to expand; the cost of advertising on the sites where likely crypto traders tend to lurk will reflect this. Making a strategic investment in a media outlet is an expensive way to grow, except compared to all the other available options.
For an earlier Diff look at Forbes, see here ($).
Buying Out Contracts
Google recently announced plans to sunset free G Suite accounts, and Microsoft is responding by offering affected users a 60% discount for users to switch to their services. This is not completely unprecedented; Jason Lemkin, who ran a DocuSign competitor for a while, says that DocuSign would give his customers free access through the end of their contract with his company if they switched to DocuSign after, and would pay full commissions on these sales. Office software has naturally high retention, since once you've used it for some documents then you need it for backwards compatibility, which means Microsoft can be relatively indifferent to poor economics for the first few months of the deal so long as they make it up later on.
Disclosure: I'm long Microsoft.
- A startup in the education space which is helping students make choices for higher education is looking for a Senior Product Designer. (US, remote) There are also product design roles across eCommerce, FinTech and PropTech. (US, remote)
- A social commerce company which enables small to medium-sized creators to make a full-time income online is looking for people in a variety of roles, including a ML Engineer and a Senior Data Engineer (Looker experience required). (US, remote)
- An open source web3 wallet is looking for a Head of Growth to lead marketing. (US, remote)
- A company which is providing people in emerging markets with access to US equities is looking for a Snr Product Manager. The role is initially focused on Brazil, so Portuguese is preferred, but not a requirement. (Brazil, NY, US remote)
- A startup offering a new kind of product in the FinTech/InsurTech space is looking for a full-stack Node.js developer/API developer. Experience coding in an AWS serverless environment is a bonus. (Toronto, North America Remote)
Why not design it right from the beginning? For two reasons, relatable both to programmers and Factorio players. The first reason is that you don’t necessarily know what your end goal will be when you start, and it’s better to build something that makes incremental progress than to spend a bunch of time idly speculating about the end state. The second, related reason is that the resources needed to build the perfectly-designed base are not available upfront, and can be acquired inefficiently through a sort of rough-draft base. In CS terms, expanding a poorly-specced and unmaintainable Factorio base is O(log(n)) while expanding a perfectly specced one is O(n), but the coefficient on the first is massively higher. ↩
In the game, players have to build a factory and defend it from aliens. This defense, like other parts of the game, starts out with manual running-and-shooting and eventually evolves into fully automated networks of laser turrets and flamethrowers, all continuously refueled and repaired through little eddies in the broader supply chain. The biters are somewhat superfluous, since a player will either a) rapidly reach a point where they're ludicrously more powerful than the enemies, such that they're just a minor construction checklist that never requires quick executive decisions, or b) the enemies will become more powerful than the player over time, which can only really happen if that player is failing to automate enough. Since the point of the game is to cleverly automate and scale, a player who has problems with the aliens has, in a spiritual sense, already lost. ↩