Back to Blog

Tag

#SoftwareEngineering

Scaling WebSockets the Wrong Way (On Purpose): A Multi-Instance Reality Check

You don’t truly understand distributed systems until your app “works perfectly”… and then breaks the moment you scale it.

Frank Mendez
⚡ Turborepo Got 96% Faster?! Cool… But Here’s What Actually Matters

Okay… what did they sacrifice?

Frank Mendez
Event-Driven User Notifications with Supabase, Webhooks, and Next.js (No Edge Functions Needed)

Stop sending notifications for users who never confirm their email. This guide walks through a clean, event-driven architecture using Supabase, Postgres triggers, and Next.js webhooks—no edge functions required.

Frank Mendez
Partitioning (a.k.a. Sharding): How Systems Actually Scale

You don’t scale by upgrading your server forever. You scale by splitting your data across machines.

Frank Mendez
You Don’t Become a Tech Lead Overnight (And That’s the Problem)

You don’t become a tech lead overnight. One day you’re coding, the next day you’re making decisions, aligning people, and carrying responsibility no one formally gave you. This article breaks down the messy, human side of that transition—and why it’s harder than it looks.

Frank Mendez
Chapter 1: Management 101

The Manager’s Path — Camille Fournier

Frank Mendez
GitHub Is Quietly Redefining AppSec with AI — And That Should Make You Rethink Your Workflow

GitHub’s latest move into AI-powered application security isn’t just another feature drop—it’s a shift toward proactive, developer-first security. And honestly, it might change how we write code every day.

Frank Mendez
Build a Complete Profile Settings System with Supabase + Next.js (That Doesn’t Suck)

Most profile pages are either too basic or unnecessarily complex. Here’s a clean, scalable approach using Supabase and Next.js that actually feels good to build—and use.

Frank Mendez
The Truth About Distributed Systems (a.k.a. “Everything Is On Fire, Just Slowly”)

If I design things well enough, my system will behave predictably.

Frank Mendez
Designing Data-Intensive Applications Chapter 9  Consistency & Consensus: Getting Systems to Agree (Good Luck With That)

Distributed systems don’t just store data—they argue about what’s true. Chapter 9 breaks down how systems reach agreement (or fail trying), why consistency is hard, and how consensus algorithms keep everything from falling apart.

Frank Mendez
Chapter 2: Data Models and Query Languages

“The limits of my language mean the limits of my world.” — Ludwig Wittgenstein

Frank Mendez
🚀 Building a Newsletter Subscription Feature That Actually Works (No BS Edition)

No Mailchimp. No overengineering. Just a clean, event-driven newsletter system that works.

Frank Mendez
Chapter 5: Replication

Just copy the data to another server.

Frank Mendez
Chapter 4: Encoding and Evolution

Your system doesn’t break when you deploy it. It breaks when old data meets new code. That’s the uncomfortable reality of software: data outlives everything. You can rewrite your frontend. You can refactor your backend. You can even replace your database. But your data? It sticks around quietly waiting to expose every bad decision you made six months ago.

Frank Mendez
Chapter 2: API Paradigms Choosing the Right Language for Your System

Choosing the right API paradigm can make or break your system. Here’s a deep dive into REST, RPC, GraphQL, and event-driven APIs—and how to pick the right one.

Frank Mendez
Chapter 3: Storage and Retrieval

Your beautiful data model eventually turns into… bytes on disk.

Frank Mendez
Reaction: Batch Processing Isn’t Dead—It’s Just Quietly Running the World

Batch processing doesn’t sound sexy.

Frank Mendez
Designing Data-Intensive Applications Chapter 1 (Simplified for Builders)

“The Internet was done so well that most people think of it as a natural resource… rather than something that was man-made.” — Alan Kay

Frank Mendez