Learning from Giants #23
Notion's data model, Architecture of Redis, Growing your strategic thinking, How does HTTPS work, and making decisions using Roofshots instead of moonshots.
👋 Hi, this is Mathias with your weekly drop of the 1% best, most actionable, and timeless resources to grow as an engineering or product leader. Handpicked from the best authors and companies.
Did a friend send this to you? Subscribe to get these weekly drops directly in your inbox. Read the archive for even more great content. Also: I share these articles daily on LinkedIn.
The data model behind Notion’s flexibility
Your data model is everything — either your largest enabler or your most painful tech debt. That's particularly true when your job is to display said data and make editing it a productivity joy.
That was Notion's initial challenge: figure out the data model that will open many doors, not close obvious ones, and enable them to scale live multiplayer editing.
Their answer: everything is a block. With parent and children relationships, a set of attributes, including a block type that signals how the block renders.
"Much like LEGO blocks in a LEGO set, Notion blocks are the singular pieces that represent all units of information inside the Notion editor."
And the corollary: your entire workspace is a tree of relationships.
"Each block defines the position and order in which its content blocks are rendered. We call this hierarchical relationship between blocks and their render children the "render tree.""
📗 Notion's The data model behind Notion's flexibility describes what was probably a very costly initial investment but also Notion's biggest asset. It feels magically simple when a data model fits the use case that well, but it probably hides hours of prototyping and experimenting, and years of experience. Especially when you consider the added difficulty of live multiplayer edition, permissions, and how deep the render tree can go.
Architecture notes on Redis
Remote Dictionary Service. Did you know that's what Redis stands for?
I didn't 🤔.
Redis is the datastore to solve all your performance problems. Or at least that's what most developers think. But why is it that fast? Software choices are always about trade-offs. Do you understand Redis' trade-offs?
"Redis is fast and all consistency guarantees come second to speed. This maybe a controversial topic, but it is true."
Consistency. Again. But Redis has many other interesting trade-offs. And over time (Redis is 13 years old), the ecosystem created answers and patches to Redis's consistency risks, including many deployment architectures and configuration knobs.
📗 Architecture notes' Redis Explained from Mahdi Yusuf first defines what Redis does before detailing its many deployment possibilities and the available options to trade-off consistency for performance.
How to be Strategic
Whether in Product Management or not, you've probably already been judged on how strategic you are or told to be more strategic. But what does Strategic mean?
"a good strategy is a set of actions that is credible, coherent and focused on overcoming the biggest hurdle(s) in achieving a particular objective." Richard Rumelt
This definition is a great start. We must strive to understand it deeply.
Want something more actionable?
"Here is the secret sauce: do more of the following three tasks.
1. Create alignment around what wild success looks like.
2. Understand which problem you're looking to solve for which group of people.
3. Prioritize. And cut."
📗 Julie Zhuo's How to be Strategic is a short reminder for all of us of what strategy is and actionable advice on how to grow this skill. And while I have tried extracting the essence of what Julie wrote, you should read the full article to understand strategy.
How does HTTPS actually work?
If you started in software not so long ago, you've probably never touched an SSL certificate. You've also browsed the Internet on HTTPS-only websites for a long time.
Still, HTTPS hasn't always been there, and it is still far from fail-proof to this day. So as with many foundational internet concepts, it's never too late to understand.
"HTTPS takes the well-known and understood HTTP protocol, and simply layers a SSL/TLS encryption layer on top of it. [...] Servers and clients still speak exactly the same HTTP to each other, but over a secure SSL connection that encrypts and decrypts their requests and responses."
That's all HTTPS is; symmetric encryption of HTTP requests and responses and a clever key-exchange protocol based on asymmetric encryption.
But for that protocol to work and be safe for all internet users, HTTPS needs another attribute: Trust. Without a way for a client to be sure that the google.com server it talks to is not some random man-in-the-middle impersonating the actual google.com server, the Internet is a terrifying place.
That's why SSL certificate signatures and Certificate Authorities exist. And that's why you'll read the article!
📗 Robert Heaton's How does HTTPS actually work explains the HTTPS protocol briefly before focusing on the trust component, which concentrates most complexity, risk, and vulnerabilities. The article ends with a series of facts and stories about HTTPS that will help debunk and understand internet myths.
Using Roofshots to make impossible decisions
When looking at the largest projects in the best tech companies, there can be a feeling of helplessness. How can you lead such a large and complex project one day?
You've learned the game, though, and have led multi-week projects. Still, you don't picture yourself designing such a vast system or making such an extended plan.
That's because it's probably not the right approach. You must re-learn many things when transitioning from mid-level or senior projects to these multi-month, multi-team projects. Some problems are impossible to solve entirely upfront.
"I built a habit of forming rough, directional plans, testing them with small bets, and using quick production feedback to reorient myself and start the cycle again."
It sounds elementary, and the Lean cult will claim that this is just being lean (they aren't wrong). But there is more to it. It's about finding the right size for these bets and not falling into hour-by-hour Jira tickets.
That's the idea of Roofshots. A series of 1.5x roofshots is the best path to 10x moonshots.
📗 Scott Triglia's Using Roofshots to make impossible decisions is a must-read for anyone involved in such large projects, especially if you're responsible for them. It'll help you develop that roofshot mentality and bypass scope paralysis when planning.