The backend iceberg

There is a depth to software that you don't appreciate until it stares you in the face. We focus on our tiny little part and see a vast sea of complexity, but in the grand scheme of things ...

The backend iceberg

We're like the PhD student laboring at the edge of knowledge. Our world looks like this:

Your area of expertise

Red is your focus. The world of frontend or backend or JavaScript or React or whatever it is that you do. The bump is your contribution. New knowledge you created. Wow 🤩

Here's what everyone else sees:

Your area of expertise in context

My thing is hard

I see this a lot when talking with engineers of all sorts. We think our thing is hard and complex and full of nuance, but that other thing? Oh that's easy, you just ...

You understand the broad strokes and think "How hard can it be?". It's just a bit of HTML and JavaScript right? Or it's just a few Docker containers, just a few 1's and 0's, just a network call or two, just API calls glued together, just a few database tables, just a CRUD app, just some rectangles on a screen, just a ...

This is the illusion of explanatory depth. You don't understand the problem until you try to solve it. At least explain in great detail. Step by step. With no handwavey motions.

Those times when you want to say "And then you just ...", that's your clue that you've reached the limit of your understanding. A rhetorical trick that makes you look smart at the pub, but flops in an interview.

Think About It GIF by Identity

A good interviewer will follow that up with an "Okay, but how do you do that? What do I do first?". At this point it's paramount that you say "I don't know", if you don't.

The backend iceberg

Why am I telling you this? Because I've had a picture in my head for a while.

The backend iceberg

The backend iceberg comes to mind when people say NextJS and friends are full-stack frameworks. Just because it runs on the server, doesn't make it backend.

And it comes to mind when someone goes "Wait what?" after I mention that our React app has about 30,000 lines of code. But it's powered by about 1,000,000 lines of backend code.

A lot happens in the backend.

NextJS et al can make a decent Backend for Frontend – focused on finding data for the UI of a specific app. Not quite "full-stack", if you ask me.

Here's what the full backend needs to do:

It takes an ecosystem my friend.

Cheers,
~Swizec

PS: I'm probably forgetting a bunch of things, hit reply

PPS: that's not how icebergs float, I know