🍔🧠 A Deep Dive into Notion's SharedWorker Architecture for Caching
PLUS: Instagram Did What!? 🫢, Distributed Systems Learning Guide 📚, How To Get Promoted Strategically 📈
Welcome to the 928 new hungry minds who have joined us since last Monday!
If you aren’t subscribed yet, join smart, curious, and hungry folks by subscribing below.
🍔 THIS WEEK’S MENU 🥗
💸 Investing on Auto Pilot for Engineers 💸
📚 Software Engineering Articles
Notion decreased latency by 20% using caching; find out how.
Learn about the CAP Theorem and its implications for distributed systems.
Explore API architectural styles to enhance your design skills.
Master personal finance as an engineer with tips from this article.
Overcome perfectionism and boost productivity with strategies from this insightful piece.
🗞️ Tech and AI Trends
Meta launches AI studio for personalized Instagram interactions.
Intel announces major layoffs as part of a cost-cutting plan.
Synchron integrates ChatGPT into a brain-computer interface for paralyzed users.
👨🏻💻 Coding Tip
Use the
useReducerhook in React for enhanced state management flexibility.
Food for Thought 🧠
A mindset, an example, and an action item to start the week
"Learning to code is useful no matter what your career ambitions are." - Arianna Huffington
Mindset: Continuous learning is a superpower that empowers you to adapt and thrive in any field.
Example: Pixar, known for its innovative films, encourages all employees to learn coding to enhance their creative problem-solving skills.
Action: Explore a free online coding course that aligns with your interests and could complement your current skillset.
The Rabbit Hole 🐰
Deep dives, trends, and resources curated to stay ahead
How Notion Decreased Latency by 20% with Caching
Notion recently added SQLite for client-side caching on the Notion website. This resulted in a 20% improvement in page navigation speeds.
CAP Theorem Explained
Written by Ashish Pratap Singh
Unpacking the Leading API Architectural Styles
Personal Finance for Engineers 🏦
Written by Nicola Ballotta
Why perfectionism destroys your productivity, and what to do instead
Written by Jordan Cutler
From Meh to Wow: How to Answer the “Tell Me About Yourself” Interview Question
Written by Irina Stanescu
How To Get Promoted (Without Getting Lucky)
Written by Ryan Peterman
Prioritizing Health as a Software Engineer
Written by Kevin Naughton Jr.
💾 SIDE DISHES 💾
ARTICLE (llama-tastic code wizard)
Llama Coder – AI Code Generator
ARTICLE (distributed systems for dummies)
Learning about distributed systems: where to start?
ARTICLE (phone book indexing 101)
Database Indexes & Phone Books
ESSENTIAL (open-api-tional awareness)
Everything You Need to Know About OpenAPI
ARTICLE (2024 computer confessions)
How I Computer In 2024
GITHUB REPO (dice delight!)
A drop-in replacement of Redis with SQL-based realtime reactivity.
GITHUB REPO (draw me like one of your database tools)
Free, simple, and intuitive online database design tool and SQL generator.
GITHUB REPO (comfy cozy UI)
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.
The Weekly Digest 🗞️
Software, AI, and startup news worth your time
🧑💻 Meta Launches AI Studio for Personalized Instagram Interactions (3 min)
Brief: Meta's AI Studio enables US users to create AI avatars for Instagram, aiming to enhance creator-audience interaction while navigating potential ethical pitfalls.
📉 Intel Announces Major Layoffs Amidst $10 Billion Cost-Cutting Plan (3 min)
Brief: Intel's massive layoffs of over 15,000 employees come as the company faces significant financial losses and aims to implement a $10 billion cost-saving strategy.
🧠 Synchron Integrates ChatGPT into Brain-Computer Interface for Paralyzed Users (3 min)
Brief: Synchron integrates ChatGPT into its brain-computer interface, enhancing communication for users with paralysis through intuitive AI-driven interactions.
🎤 Meta Offers Millions to Use Celebrity Voices for New AI Assistant (3 min)
Brief: Meta aims to integrate Hollywood voices into its upcoming AI digital assistant, negotiating deals with stars like Judi Dench and Awkwafina amidst industry concerns over AI-generated likenesses.
💰 Google Cuts Prices on Gemini 1.5 Flash, Igniting LLM Price War (3 min)
Brief: Google slashes Gemini 1.5 Flash prices by 80%, undercutting rivals and intensifying competition for AI startups plagued by challenges in the evolving LLM market.
🤖 Microsoft Recognizes OpenAI as Competitor Amid Evolving AI Landscape (3 min)
Brief: Microsoft's annual report now lists OpenAI as a competitor despite their long-term partnership, highlighting a shift as OpenAI introduces its SearchGPT prototype.
The Quick Byte 💾
One coding tip because you’re technical after all
This week’s coding challenge (by John Crickett):
This week’s tip:
The useReducer hook in React is a powerful alternative to useState for managing complex state logic in functional components. It follows the reducer pattern, allowing you to define state transitions based on dispatched actions, making it particularly useful for managing state that involves multiple sub-values or more complex structures.
Wen?
Complex State Management: Ideal for scenarios where state changes are complex or involve multiple properties. The reducer pattern allows for better organization of state logic, particularly when dealing with intricate state updates.
Action Handling: Perfect for managing actions that contribute to state changes, enabling clear separation of concerns. Each action type in the reducer can have distinct transition logic, making it easier to reason about state changes.
Performance Optimization: Helps improve performance by minimizing re-renders. Since the reducer creates a new state object based on dispatched actions, you can effectively prevent unnecessary re-renders by ensuring components only update when their relevant state changes.
Why?
Predictable State Transitions: By centralizing state logic in one function (the reducer), it becomes easier to track how state changes through the dispatching of actions, enhancing predictability in your application.
Easier Testing: The reducer function can be tested independently. You can check various input states against expected outputs for different actions, allowing for isolated unit tests for your state management logic.
Scalability: The
useReducerpattern promotes scalability. As your component grows in complexity, you can manage its state transitions in a structured manner, allowing for easier maintenance and enhancement of functionality.
Burp-A-Laugh 🤣
The most important meal of your day
That’s it for today! ☀️
Enjoyed this issue? Send it to your friends here to sign up, or share it on Twitter!
If you want to submit a section to the newsletter or tell us what you think about today’s issue, reply to this email or DM me on Twitter! 🐦
Thanks for spending part of your Monday morning with Hungry Minds.
See you in a week — Alex.
Icons by Icons8.
*I may earn a commission if you get a subscription through the links marked with “aff.” (at no extra cost to you).














Thanks so much for including the article on perfectionism in the menu today, Alexandre!