← Back to Learn

The Waiter and the Meal Kit: What APIs and SDKs Actually Are

I spent years nodding along when people said 'API' and 'SDK.' Then a restaurant made it click.

Victor··5 min

I spent years in rooms where people said "API" and "SDK" with the confidence of someone ordering coffee. I nodded. Everyone nodded. I assumed I was the only one who didn't fully get it, and that at some point I'd missed the class where they taught this.

There was no class. Nobody teaches this stuff clearly. The official definitions are jokes. An API is an "Application Programming Interface." An SDK is a "Software Development Kit." If those phrases mean something to you, congratulations — you didn't need this article. For the rest of us, they're just words explaining words.

So here's how I actually came to understand them, and it started with a restaurant.


The Waiter (API)

You're sitting at a table. You're hungry. Somewhere behind a wall, there's a kitchen — ovens, walk-in fridges, a guy who knows how to break down a whole fish. You want what that kitchen can produce, but you can't just walk back there and start opening drawers. That would be insane. You'd burn yourself. You'd mess up their system. They'd call the police.

Instead, there's a menu and a waiter.

The menu tells you what's available. The waiter carries your request to the kitchen and brings back the result. You never see what happens behind the wall. You don't need to. You just need to know what to ask for and how to ask for it.

That's an API. That's literally all it is.

When two pieces of software need to talk to each other, the API is the menu and the waiter between them. One system says "give me the weather in Barcelona," and the other system sends back "22°C, sunny." The first system never sees the satellites or the data centers or the algorithms that produced that answer. It just reads the menu, places the order, and gets the plate.

Your phone does this hundreds of times a day. Every time an app pulls in a map, checks a stock price, processes a payment, or shows you a flight status — that's one piece of software ordering from another piece of software's kitchen. The API is the interface that makes it work. Not the kitchen. Not the food. Just the waiter and the menu.

I think the reason this concept feels more complicated than it is, is because people use "API" to mean slightly different things depending on context. Sometimes they mean the menu itself — the documentation that describes what you can ask for. Sometimes they mean the waiter — the actual mechanism that carries requests back and forth. Sometimes they mean the whole arrangement. It doesn't matter. The point is always the same: it's a controlled way to use someone else's capabilities without needing to understand how they work.


The Meal Kit (SDK)

The restaurant metaphor still works, but the scenario changes. You're not eating out anymore. You want to cook at home. You want to build something yourself — your own app, your own product, your own thing.

But you don't want to start completely from scratch. You don't want to grow your own tomatoes, forge your own knives, and figure out from first principles what temperature to roast garlic at.

So you get a meal kit. One of those boxes that arrives at your door with the ingredients pre-portioned, a recipe card, a little packet of spice blend someone already figured out, and sometimes a tool — a piping bag, a thermometer, whatever.

That's an SDK.

It stands for Software Development Kit, and the word "kit" is doing all the work. It's a box. Inside the box: tools, building blocks, sample code, documentation, maybe some pre-built components that would have taken you weeks to make from scratch. A company puts together an SDK when they want other people to build things on top of their platform, and they want to make it as easy as possible.

Here's the part that confused me for a long time: the meal kit might also include a phone number to call the chef with questions. That phone number? That's an API. It's inside the kit. SDKs usually contain one or more APIs, because at some point your homemade creation is still going to need to talk to someone else's kitchen. But the SDK gives you everything around that — the prep work, the shortcuts, the pieces that save you from solving problems that someone already solved.

An API is a line of communication. An SDK is a care package.


Why This Matters

Why does any of this matter if you're not writing code?

Because these words come up in decisions about money, timelines, and strategy. And if you understand even roughly what they mean, you can follow the conversation instead of waiting for someone to translate.

When someone in a meeting says "they have a great API," they're saying: it's easy to connect to that company's service. Our software can order from their kitchen without a lot of hassle. Clean menu, reliable waiter.

When someone says "they have a great SDK," they're saying something slightly different: they've made it easy to build on top of them. They've handed our developers a well-packed meal kit instead of pointing them at an empty kitchen and wishing them luck. That means faster development, less reinventing the wheel, fewer things that can go wrong.

And when someone says "we need to integrate with their API," they're saying: our software needs to start ordering from their kitchen. The follow-up questions — about security, data formats, rate limits — are just the details of how the ordering works. The plumbing.


I think the real reason these terms feel intimidating is that engineers use them the way finance people use "EBITDA" or lawyers use "indemnification" — as compressed shorthand that everyone in the room is supposed to already know. It's not gatekeeping, usually. It's just professional habit. Every field does it.

But the concepts themselves aren't hard. A waiter and a meal kit. One lets you use someone else's capabilities. The other gives you tools to build your own.

That's it. That was the class.