199: Constellation Q3, Cloudflare's Expanded Horizon, Diminishing Returns, Microsoft vs Notion, the Brain's Binary Language, and Death toll of WWII in Europe

"If anyone at Lay's is reading this, please"

In theory, theory and practice are the same. In practice, they are not.

Benjamin Brewster

Life is so unlike theory.

—Anthony Trollope

🤔 I recently made a note to research buying a CO2 detector for my home.

I already have a couple carbon monoxide (CO) detectors because we have a gas furnace, but this would be more about air quality than safety...

After a quick look, I found a few on Amazon that aren’t too expensive, but I wonder if consumer-grade models are sensitive enough to be used to optimize/modulate airflow somewhere (like my office), or if they’re more about warning you of very abnormal situations, but are otherwise not really useful purely to tweak things at the margin.

Another rabbit hole for another time… ¯\_(ツ)_/¯

🧠 This is follow-up to what I wrote in edition #197 about how our brains perceive 3D space visually and are able to mesh complex data and compress all that info into just a “feeling” that we have that something is close or far, big or small.

Thinking about this some more, another aspect of the brain that I find fascinating is the low-level language used to transmit and store data.

With digital computers, we’re used to thinking of hardware and software separately.

It’s the most useful way to abstract things.

With the human brain, hardware and software are a lot closer to being the same thing in many ways, with physical structures that hard-encode a lot of the ‘software’ that our brains run, which is why we’re all a lot more similar than we’re different — we’re not blank slates that could go in any direction in the vast expanse of possible minds, our brains are evolved organs with a certain shape and architecture that constrains possibilities heavily…

Anyway, this makes our brains more similar to early arcade machines than general purpose computers in some ways. As far as I know, these used to be hard-coded at the hardware level to play a certain game, and couldn’t do anything else. Thankfully our minds are more malleable than that, but we’re also not like a Linux server that can download and run anything and access and modify its own low-level kernel to debug things and make changes.

Though if you want to be really precise about it, our digital computers are also united on the hardware-software level.

If you were to scan a computer with enough precision, you’re going to find a physical manifestation (physical, electro-magnetic…) to every “1” and “0” inside of the SSD cells, and whatever it is that we think of as purely non-physical “software” still somehow leaves a physical trace everywhere it goes.

Back to my original point: I’m fascinated by the “binary code” of the brain.

How the signals that cary all this sensory and thought information are sent across nerves, how memories are stored for short periods, and then consolidated for longer storage…

All this has to be written in a certain language. I’m sure it’s pretty weird and convoluted because evolution tends to not be able to undo mistakes that aren’t bad enough to cause everything to stop working (hence the blind spot in our eyes where our optical nerve is mounted backwards on our retina), but there are also selective pressures for economy and simplicity.

But still, this language is understandable, and someday, likely with the help of a lot of machine learning, we’ll be able to decode a lot more of it, eventually all of it… And write new stuff in it too.

You may literally need different languages or variants for different parts of the brain, because nothing says it has all to run on the exact same thing, but with enough time and data and science, nothing prevents us from eventually being able to read & write everything to every part of the brain.

*That* is pretty cool to think about…

🥨 There are two kinds of people in the world:

1) Those who buy the plain versions of chips and nachos.

2) And those like me who wish that there was twice as much chemical-cheese-dust on Doritos and that there were 50 extra flavors to pick from.

What can I say, when I feel like eating crap, salty snacks are my weakness…

Lay’s made one of my favorite flavors in recent years, but they did it as a limited run thing and now they’re gone… ugh

If anyone at Lay’s is reading this, please make the Guacamole/Habanero “collision” SKU part of the permanent lineup please. Thx.

💚 🥃 The price of a couple coffees or one alcoholic drink isn't a bad trade for 12 emails per month (plus 𝕤𝕡𝕖𝕔𝕚𝕒𝕝 𝕖𝕕𝕚𝕥𝕚𝕠𝕟𝕤) full of eclectic ideas and investing/tech analysis. That’s 77¢ per edition.

If you make just one good investment decision per year because of something you learn here (or avoid one bad decision — don’t forget preventing negatives!), it'll pay for multiple years of subscriptions (or multiple lifetimes).

As Bezos would say of Prime, you’d be downright irresponsible not to be a member, it takes 19 seconds (3 secs on mobile with Apple/Google Pay — if you don’t see paid options, it’s because you’re not logged into your Substack account):

💙 Subscribe now 💙


Investing & Business

The Value of TAM expansion & ‘How we build software at Cloudflare’

After IPO’ing just ˜2 years ago, Cloudflare has now passed $60bn in market cap, from a starting point around $5bn.

Friend-of-the-show Peter Offringa (💿) wrote some interesting stuff about the market’s realization that Cloudflare’s TAM may be bigger than it used to think, which may explain some of the rerating (though maybe not all of it..?).

I like how Peter put it in his newsletter from November 2:

Looking at the stock's chart, the catalyst for the rapid price ascent appears to have been triggered by Cloudflare's Birthday Week that started in late September. From a low of $112 on September 30th, NET has appreciated about 70% over the subsequent month, far outpacing peers. This price movement pushed NET's P/S ratio over 100. Yet our most recent checkpoint of revenue growth stands at 53% y/y, coming out of the Q2 report. Something clearly changed in market sentiment separate from reported financials.

Given this behavior outside of an earnings release, I wanted to better understand what changed and how that could have impacted NET's relative valuation. The only conclusion that I can draw is that Cloudflare has convinced the market that its addressable market is much larger than previously expected and that their accelerating product release velocity will ensure that they can capture a large portion of that. All things being equal, that is the primary headline coming out of the last month. Based on this, I decided to dive deeply into Birthday Week and look for the signals that might explain Cloudflare's narrative shift.

I think it’s the only explanation that makes any sense. I mean, it could be purely speculative in nature, the market just suddenly fell in love with the name, pushing valuation up for no reason…

But if we’re giving Mr. Market some credit, it has probably updated its view on the duration of growth and eventual size of the business based on what its been seeing. It probably also took a while for many to understand the business, because it’s complex and not everybody’s a digital infrastructure geek ¯\_(ツ)_/¯

What this elicited is an even greater appreciation for Cloudflare's pace of innovation. Collectively, they announced a set of product releases during Birthday Week that dwarfs anything done previously. The potential impact of these is many times larger than what was released during Birthday Week 2020. This underscores the CEO's contention that the pace of product delivery is not only fast, but continuing to accelerate. It also helps that he repositioned Cloudflare's competitive set to be the three hyperscalers. His vision is that Cloudflare will become "the fourth major public cloud."

In other words, if you expected a business to be playing in a market about X big, and to be executing well enough to grab about Y% of that over 10 years, but now you realize that the opportunity is actually much bigger than X, and that they’re executing so well that they have a real shot at grabbing much more than Y% because they’re out-competing others, that makes the company much more valuable (at least the probabilities of it being much more valuable are higher than they were — time will tell how things actually turn out). So maybe it won’t accelerate like crazy right away, but maybe growth will decelerate more slowly than expected and terminal value will be much higher…

In more concrete terms, let’s say a few years ago the market expected Fastly and Cloudflare to split the edge computing market fairly equally. Today, maybe it thinks that market is much bigger than before, and that cloudflare will get a much bigger share of it too (and that they’re similarly becoming more competitive in the security market, etc). That’s a pretty big difference.

Peter wrote about it in more detail in this blog post, including a lot of what the company announced recently that may have made the market do a double-take and re-evaluate things. Check it out.

To add more context to this, there’s an interesting post by Nick Wood at Cloudflare that describes a bit how & why they can build software with a velocity and ambition that few other companies can match:

Cloudflare comprises dozens of globally distributed engineering teams each with their own unique challenges and contexts. A team usually has an Engineering Manager, a Product Manager and less than 10 engineers, who all focus on a singular product or mission. [...]

we take a more nuanced approach where we allow teams to decide which methodology they wish to follow within the team, whilst also defining a number of high-level concepts and language that are common to all teams. In other words, we are more concerned with macro-management than micro-management.

“SHIP”s and “Epic”s

At the highest level, our unit of work is called a “SHIP” — this is a change to a service or product which we intend to ship to customers, hence the name. All live SHIPs are published on our internal roadmap, called our “SHIP-board”. Transparency and collaboration are part of our DNA at Cloudflare, so for us, it’s important that anyone in Cloudflare can view the SHIP-board.

Individual SHIPs are sized such that they can be comfortably delivered within a month or two, though we have a strong preference towards shorter timescales. We’d much rather deliver three small feature sets monthly than one big launch every quarter. [...]

You might think that letting teams set their own process might lead to chaos, but in my experience the opposite is true. By allowing teams to define their own methods we are empowering them to make better decisions and understand their own context within Cloudflare. We explicitly define the interfaces we use between teams, and that allows teams the flexibility to do what works best for them.

This heavy decentralization and level of team autonomy reminds me a lot of Amazon’s two-pizza teams (though I don’t know how much of that is still as true today, and how much is folklore from an earlier era) — the whole organization is nimble, working on bite-sized objectives, and everything is built on a flexible platform that is the same one that customers can build on (dogfooding), and the various “lego blocks” that make up the product are structured in ways to avoid too many dependencies on other teams (which is often how things end up taking much longer than expected, I think).

Basically, in John Boyd parlance, they seem to have a very fast OODA loop.

Teams are orienting themselves without needing to wait for high command to pass down orders and micro-manage projects, they can move quickly, and they’re not waiting around on too many other parts of the organization to be able to achieve their objectives.

A lean, mean, killing machine…

When is a dollar not a dollar? 💸

Everybody’s heard about “diminishing returns”, but I don’t think many people integrate it enough into their general worldview.

I don’t think it’s a tool that you take out once in a while when a very specific situation demands it. I think it should be part of how almost every decision is weighted, at least as a background process.

When is a dollar not a dollar? When it’s on top of another dollar.

I often talk about the importance of really figuring out what you want to do, what makes you happy, because if you don’t, there’s plenty of people and forces out there that will steer you, often to places where you don’t really want to go (doing jobs you hate for “prestige” or keeping up with the Jones, who you don’t even like anyway, doing what you think your parents want you to do, etc)…

It’s important to know that stuff, because only then can you know what “enough” is.

Otherwise, you risk feeling like nothing is ever enough, and just keep going forever without stopping and thinking, it’s not just how fast I’m going, but am I driving in the direction of where I want to go?

It’s too easy to miss out on all this other stuff that would’ve been more fulfilling for you (because life is trade offs, whatever you do takes the place of something else you don’t do).

If you have enough money, you should make decisions based on other more scarce things, like time, relationships, personal growth, removing things that make you unhappy and adding things that make you happy.

Anyway, I don’t mean to turn into some advice column on you, but I’ve had this stuff on my mind lately, and figured I’d share.

Constellation Software Q3

*drumroll*

  • Revenue grew 30% (7% organic growth, 5% after adjusting for FX)

Higher organic growth than Topicus (though the same after the FX adjustment). Probably not something we’ll see too often going forward…

  • Free cash flow available to shareholders +25%

  • Maintenance and recurring +6% organic ex-FX (that’s where most of the value is created. Not bad at all. -13% on hardware sales, but that’s a lot of non-recurring revenue with small margins… Not every dollar of revenue is made equally).

  • During Q3: “A number of acquisitions were completed for aggregate cash consideration of $126 million (which includes acquired cash). Deferred payments associated with these acquisitions have an estimated value of $47 million resulting in total consideration of $173 million.”

  • John Billowits becoming chairman, Mark Leonard staying president.

Here’s what impressed me most:

Subsequent to September 30, 2021, the Company completed or entered into agreements to acquire a number of businesses for aggregate cash consideration of $329 million. Deferred payments associated with these acquisitions have an estimated value of $41 million resulting in total consideration of $370 million.

Wow. They’re going to end the year with the biggest capital deployment in their history by far. Even if they didn’t do a single acquisition starting today until new year’s it would still be a strong year.

Interview: Kyler Hasson

Speaking of Constellation, I met Kyler a few years ago in Toronto at their AGM. I really enjoyed our conversation and thought he was a great guy, very smart, very funny. So we’ve stayed in touch on Twitter since (where else?).

I was very glad to see in my podcast app the release of a conversation with friend-of-the-show and supporter (💚 🥃) Bill Brewster:

I like the discussion of past mistakes and how they’ve evolved as investors.

It all feels very familiar to me — I think anyone who does this for a while has some scars and has paid some tuition to the market gods. Can’t be avoided ¯\_(ツ)_/¯

I also enjoyed the quick overview of Constellation Software (I call it “quick” because if I did it, it would be 4-hour long).

💙 Subscribe now 💙


Science & Technology

Microsoft Trying to do to Notion what it did to Slack?

When Microsoft first announced Teams, Slack famously took a full-page ad in the NYT (which is kind of a very 20th century thing to do, but the idea of doing it is eternal) welcoming the competition.

Slack didn’t exactly do badly after that, but Teams definitely sucked a lot of oxygen out of the room and grabbed a big part of the pie through Microsoft’s incredible distribution and execution engine.

Looking at the latest demos of the MS Fluid stuff, now rebranded as Loop (that’s actually pretty good name, IMO), I have to say that it looks like Notion is now in the crosshairs.

Fair’s fair I guess, Notion went after the Office jewel, so Microsoft was always going to respond.

Obviously, Microsoft has some advantages over Notion in this fight, and I don’t mean just cross-promotion/distribution. For example, they can integrate natively with Word and Powerpoint and Teams in ways that Notion can’t, and that can make for some pretty useful features:

Loop components are live pieces of content that can exist across multiple apps, updated in real time and free for anyone to jump into. That could be a list shared in a Teams channel and also editable in a Loop page, or notes in a calendar entry that are also available to be pasted into Outlook and edited in real time within an email. [...]

Loop pages are the individual canvases where people can share and collaborate on Loop components. It’s like a modern version of a whiteboard but far more powerful because you can insert and share components that people have created outside of Loop. Not everyone even needs to be part of the entire Loop page, as the individual components could be edited in real time from other apps. (Source)

So while it looks like Notion, it’s actually a lot more than that.

"Microsoft Loop components will now arrive in Teams, Outlook, and OneNote this month, and the main Microsoft Loop app will be released at a later date.”

I’ll be curious to see how well it works in the real-world.

Peter Attia’s Podcasting Setup

That’s probably the cleanest let’s-record-a-podcast-over-Zoom setup I’ve seen.

I like it.

I haven’t had a chance to listen to his latest episode yet, but it sounds interesting:

💙 Subscribe now 💙


The Arts & History

‘Death toll of WWII in Europe’ (as percentage of population at the time)

Source of the map.

Some of the stats don’t match this source of ‘World War II casualties’, but it still gives an idea of the horrific carnage…

World War II was the deadliest military conflict in history. An estimated total of 70–85 million people perished, or about 3% of the 1940 world population (est. 2.3 billion).

Deaths directly caused by the war (including military and civilian fatalities) are estimated at 50–56 million, with an additional estimated 19–28 million deaths from war-related disease and famine. Civilian deaths totaled 50–55 million. Military deaths from all causes totaled 21–25 million, including deaths in captivity of about 5 million prisoners of war.