Hi friends đź‘‹ Guess whose birthday is tomorrow? That's right, NBA legend and Space Jam star Michael Jordan turns 62 this Monday. How good was that movie, huh? I must have watched it a million times as a kid. Oh, and it's also my birthday!
You've already given me my birthday present, by the way—last week Frontend at Scale crossed 5,000 wonderful subscribers, so I have plenty of reasons to celebrate this year. Thank you so much to each and every one of you for reading this newsletter month after month without getting tired of my ramblings (yet.) Your support truly means the world to me 🧡
There's one more thing I'm really excited about. I'll share all the details in the next issue of the newsletter, but here's a small teaser if you're curious about it :) I can't wait to share it with you all soon!
Today we have a short essay about architecture astronauts, a list of 100 amazing conference talks, a framework for building your own programming language using JavaScript, and much more.
Let's dive in.
MAXI'S RAMBLINGS
Architecture Astronauts
A few years ago, I came across an article by Joel Spolsky that completely changed my perspective of the software architect’s role. Joel wrote Don’t Let Architecture Astronauts Scare You twenty-four (!!) years ago, but his essay is as relevant today as it was back then.
Here’s what he had to say:
When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don’t know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don’t actually mean anything at all.​These are the people I call Architecture Astronauts. It’s very hard to get them to write code or design programs, because they won’t stop thinking about Architecture. They’re astronauts because they are above the oxygen level, I don’t know how they’re breathing. They tend to work for really big companies that can afford to have lots of unproductive people with really advanced degrees that don’t contribute to the bottom line.
Ouch.
Joel wrote these words the same year the Agile Manifesto was created, so I’m pretty sure the astronauts he was talking about were the type of ivory tower architects that were popular in the waterfall days.
But that doesn’t mean we’re off the hook here. Even if we consider ourselves the kind of hip and modern architects of the TikTok era—or even if we don’t think of ourselves as architects at all—we’re all at risk of falling into the astronaut’s trap.
The thing is, when we put our software designer hats on, it’s easy to get caught up in seeing abstractions everywhere. We see two screens that look alike, or two features that behave more or less the same, and our first impulse is to create a reusable, all-encompassing abstraction in an effort to keep things clean, and DRY, and nicely modularized.
There’s nothing necessarily wrong with that, of course. Abstractions are a good thing. The problem is that sometimes, as Joel says, we don’t know when to stop. If we’re not careful, we’ll find ourselves creating abstractions on top of other abstractions, jumping to higher and higher levels until things stop making sense.
Over the years, I found that the key to avoiding this trap is to work in the open as much as possible. Make it a habit to share your designs with your fellow engineers early and often, and always ask for feedback.
If your team looks at what you built and comes back with lots of questions and suggestions, that’s a good sign. It means they understand your solution and can imagine how it could be better.
If you hear nothing at all, that’s a red flag. You might think the lack of feedback means that your work is perfect, but it’s far more likely that people don’t fully understand your design and don’t even know what questions to ask.
Lack of feedback could also lead to a dangerous vicious cycle. Thinking that our non-sensical designs are flawless will reinforce the belief that acting like an Architecture Astronaut is a good thing. After all, if there were something wrong with our design, people would have surely said something, right?
And, I mean, I kinda get it. How cool would it be to introduce ourselves as an “Architecture Astronaut” next time someone asks us what we do for work? But as impressive as the title sounds, acting like one is not something we should wear like a badge of honor.
So next time you sit down to design a solution to a problem, be mindful of how high, abstraction-wise, you're going.
If you find yourself using names that don't make too much sense, or wrapping your business logic in too many layers of indirection, or creating premature generalizations that look further and further into the future, it might be an indication that you've gone too far up. So take a step back. Your design will be much better off if you come back to Earth for fresh air.
ARCHITECTURE SNACKS
Links Worth Checking Out
- Simon Brown is one of the clearest thinkers in software architecture out there, and this talk on Modular Monoliths at the goto conference is a prime example of that. Simon gave this talk in 2018, back when the word "monolith" was still a bit of a bad word. But modular monoliths are making a bit of a comeback these days, so if you want to learn more about what they're all about, his talk is a great place to start.
- Is one talk not enough? How about 100? Here's a list with the 100 most watched software engineering talks of 2024, perfect for those days when you feel like binge-watching something but there's nothing good on Netflix (which is, like, most days.)
- Adam Nyberg wrote a short and beginner-friendly intro to sync-engines—the technology behind the magical UX of apps like Figma and Linear, and one of the coolest new trends in web development these days.
- Tim O'Reilly joined the "AI will take our jobs" conversation with his thoughts on how programming is changing, and what can we do adopt to our new reality.
- The Interop team, the people we have to thank to for having features that work the same across all browsers, announced their focus areas for 2025, including some long-awaited APIs like Anchor positioning, View Transition, and Navigation.
- If you're in the mood for some classic literature, Matheus Lima put together a list of the seven most influential papers in computer science history.
- And if all of that computer science talk ends up inspiring you to write your own programming language, you might want to check out Ohm—a JavaScript library for building parsers, interpreters, compilers, and more.
- Imagine growing so frustrated by the fact that we still can't observe CSS property changes in JavaScript that you end up building your own style observer from scratch. Well, that's exactly what Lea Verou did.
- Last week, the React team announced that they're deprecating Create React App for bootstrapping a new app in favor of a modern framework like Remix or Next. In a surprising turn of events, the team recommends using vanilla Vite as well... but only if you're building your own framework.
- "We're destroying software trying to produce code as fast as possible, not as well designed as possible."
That’s all for today, friends! Thank you for making it all the way to the end. If you enjoyed the newsletter, it would mean the world to me if you’d share it with your friends and coworkers. (And if you didn't enjoy it, why not share it with an enemy?)
Did someone forward this to you? First of all, tell them how awesome they are, and then consider subscribing to the newsletter to get the next issue right in your inbox.
I read and reply to all of your comments. Feel free to reach out on Twitter, LinkedIn, or reply to this email directly with any feedback or questions.
Have a great week đź‘‹
– Maxi