Hello, I'm Wojciech 👋

Picking the right abstraction layer

Published 2 months ago • 1 min read

Some time ago on a programming podcast I’ve heard something that shocked me. Hosts were discussing how ludicrous, dangerous, and wrong it would be to build your own authentication system on the backend. Obviously you need to pick an off-the-shelf solution like Auth0 to take this responsibility off your shoulders, otherwise you’re just shooting yourself in the foot.

I remember my gut reaction - kids these days. For me it was equally obvious that if you’re not able to put together a safe authentication system, you can’t be trusted with managing an off-the-shelf one neither. The same way when I started my career I remember people saying that you don’t deserve an IDE if you can’t write good code in Notepad, or that Ruby is not real programming, because you need to be close to the metal.

Nowadays, we don’t even have metal, just clouds. And I’m just going the way of the generations before me. My beliefs (you should roll your own auth system until you shouldn’t, AWS is not a good default deployment target, and static websites don’t need JS) would be equally shocking to earlier programmers who’d say that information was meant to be free, so why’d you even need user accounts, server is just more furniture in your living room, and websites are about substance, not style, so nobody needs CSS. And the future programmers would marvel why’d we even write code ourselves instead of polishing the prompt to use to AI-generate the whole program.

So, what’s my point here? Is it just another old man shaking their fist at a cloud? Maybe. But it’s also a good remainder to revisit your levels of abstraction from time to time to see if there’s something new to learn. Maybe it’s time to embrace the progress and new tools and jump up a level, or jump down to simplify your tech stack with tried and true solutions of the past instead of reinventing the wheel.

Have a good one,


PS. I have lovingly crafted this email using only the best artisanal keystrokes. If you find come across any typos, feel free to fix them yourself and enjoy this new, unique, kintsugi version.

Hello, I'm Wojciech 👋

and that's my daily list

Subscribe to read my programming experiences, ideas, mistakes and tips I wish I'd known myself earlier. Learn how to enable high-performing teams, make an impact, grow as a software engineer and level up your career.

Share this page