How Meta built the infrastructure for Threads
🚀 Meta launched Threads on July 5, 2023, with over 100 million sign-ups in five days.
👥 A small team of engineers developed Threads in just five months.
🏗️ Meta's infrastructure, built over a decade for various products, supported Threads' rapid growth.
🔑 ZippyDB, a key/value datastore, and Async, a serverless function platform, were crucial in handling Threads' infrastructure needs.
📊 ZippyDB was used for scalable storage, easily handling increased load with its distributed architecture.
🔄 ZippyDB's resharding protocol allowed for quick scaling with zero downtime during the Threads launch.
📈 Async facilitated scalable workload execution, crucial for handling Threads' user onboarding and notifications.
🛠️ Meta's infrastructure allowed for automated scaling and load balancing, with minimal manual intervention.
Cognitive Distortions that Undermine Clear Thinking
🧠 Cognitive distortions are habitual, unhelpful thinking patterns, crucial to understand for better emotional and operational functioning.
📈 Leaders and high-performers often experience cognitive distortions in stressful or high-pressure situations.
🤔 Common cognitive distortions include All-or-Nothing Thinking, Overgeneralization, Mental Filtering, and others, totaling 17 distinct types.
🛠️ Strategies to counter cognitive distortions involve practices like multi-category thinking, avoiding extrapolation, and recognizing complexity.
🎯 Recognizing and interrupting these patterns is akin to physical training, improving mental conditioning and clear thinking.
📘 Thought record journals, self-compassion, and scientific thinking are among the methods to combat cognitive distortions.
🌐 Cognitive distortions arise from deeper cognitive levels and irrational beliefs, such as demandingness and frustration intolerance.
🔍 Awareness of these distortions is the first step, followed by targeted practice to replace unhelpful patterns with healthier ones.
You May Not Need That Costly, Time-Consuming Infra Re-Org
🔄 Reorganization affects role distribution and team interactions but not the actual tasks in building and running cloud systems.
🏢 Smaller companies may consolidate teams for economies of scale, while larger ones decentralize to manage complexity, yet the core work remains unchanged.
🤝 Hundreds of interviews reveal recurring organizational models and tradeoffs in infrastructure teams.
🎯 The goal of consolidation in smaller companies is to centralize duplicated efforts for efficiency.
💡 Centralized teams can optimize infrastructure resources and reduce engineering operational costs.
🔍 Larger companies reorganize to externalize non-core responsibilities and reduce cognitive load for application developers.
🌐 Four primary infrastructure organizational models are identified: embedded infra teams in product orgs, shared cloud engineering teams, infrastructure orgs, and infrastructure-platform orgs.
❌ Common failures in re-organizations include dogmatic approaches, underestimating transition costs, and misalignment between teams.
⚖️ Different models suit different organizational needs, with tradeoffs in flexibility, duplication of work, and cognitive load.
🚀 A new model suggests using cloud intelligence to reduce complexity and empower developers, indicating a shift towards more automated, intelligent infrastructure management.
Software Quality
🤔 Quality in software is subjective and hard to define. Google's team conducted interviews to understand different perspectives on code and product quality.
🔄 The four types of software quality - process, code, system, and product quality - are interconnected and influence each other.
🧑💻 Process quality, including comprehensive testing and effective planning, predicts overall software quality and sets the foundation for other quality types.
🛠️ Code quality is mainly about maintainability, influencing system quality by reducing defects and increasing reliability, and impacting developer velocity.
📈 System quality, characterized by reliability and performance, is hard to measure due to data sparsity. It relies on high code quality.
🏢 Product quality, comprising utility, usability, and reliability, is affected by code quality, which can impact engineering velocity and defect risks.
Almost everyone I’ve met would be well-served thinking more about what to focus on
🤔 The “multi-armed bandit” problem in probability theory is a metaphor for life's decision-making processes, emphasizing the balance between exploring new opportunities and exploiting known ones.
🌍 Exploring is crucial due to the complexity of the world, which often exceeds our understanding and necessitates updating our mental models.
🔍 Real-life exploration involves challenging existing beliefs and assumptions, often learned from others, and seeking out new, more accurate perspectives.
🎯 Exploiting focuses on prioritizing top personal or professional goals, which can lead to significantly greater achievements than spreading efforts thinly.
📈 Focusing on fewer priorities can lead to nonlinear returns, where concentrating efforts results in disproportionately greater achievements.
✍️ The author shares personal experiences, illustrating how narrowing focus and committing to fewer priorities enriched his life and work.
🔄 The explore/exploit trade-off is a constant balancing act, requiring adjustments based on personal tendencies and life situations.
🧠 Applying a systematic approach to life's decisions, akin to algorithms used in machine learning, can help in efficiently navigating the explore/exploit dilemma.
🌟 The author's journey highlights the importance of allowing room for exploration before committing to specific paths for greater personal and professional fulfillment.
Rebuilding Trust and Breaking Free From Trust Proxies and The Swirl
🔄 Trust issues, particularly among senior leaders, can have a profound impact on an organization.
🗣️ Teams lacking trust often avoid necessary, difficult conversations, opting instead for superficial discussions about methodologies and practices.
🛠️ Processes and systems are frequently used as quick fixes to mask underlying trust issues.
🚫 Blame is often unfairly assigned to individuals as a way to avoid addressing the real problems.
🕵️♂️ A lack of detailed information exacerbates trust issues, leading to fragile agreements and politicized stand-offs.
🌀 Organizations can become paralyzed by trust issues among a few key leaders, creating a cycle of distrust and ineffective communication.
🔍 Identifying and acknowledging proxies for deeper issues is crucial for breaking this cycle.
📉 Misattributing organizational failures to individuals rather than systemic issues can perpetuate low trust.
🤝 Openly discussing contributions to trust issues can be powerful in resolving them.
🎭 Using rituals or symbolic actions can help in moving past previous conflicts.
⚖️ Reframing 'trust' issues as 'tension' can facilitate easier resolution of conflicts.
🌟 Focusing on the frequency of successful outcomes, rather than rare failures, can help improve the perception of trust within a team.
🗨️ Public discussions of trust issues by leaders can serve as a powerful example for resolving conflicts at lower organizational levels.