Hey there,
Welcome to the last issue of the year.
I know you’re getting ready to sign off for the year (if you haven’t done so already), so we’ll keep it nice and short this week.
Well, maybe not that short because I do want to share with you some of my plans for the newsletter in the new year. I'm super excited about these, and if they also sound excting to you, I would love you to help me choose which ones I should focus on. But we’ll come back to that in a bit.
My overarching goal with Frontend at Scale is to help you build better software that lasts longer. This newsletter was the first step in that direction, and while I truly couldn’t be happier with the response so far, I’ve found that I’m always itching to create deeper, longer-form content that stands better the test of time.
Now, don’t get me wrong. The newsletter is a fantastic avenue to share resources, short essays, and just generally keep in touch with you all, but it’s clear that email doesn’t scale very well to other types of content (maybe it should subscribe to Newsletters at Scale, am I right?)
So what can we do about this? There is only one logical solution—we have to break through the walls of the newsletter and expand into a multiverse of different platforms.
Ok, that sounds way more dramatic than it really is. All this means is that I have a few projects in progress that I plan to start shipping next year and will serve as a perfect companion to the newsletter you all know and (hopefully) love. I’m excited to give you a sneak peek at some of these projects today:
🛠️ FREE Frontend Architecture Workshop
For the past couple of years, every time I learned about a new concept or principle of software architecture, I’d take some notes and ask myself “how does this apply to the frontend?” I have hundreds of these notes at this point (some of which have become newsletter issues already), and I’m putting them all together into a comprehensive frontend architecture workshop that I plan to share with you all soon.
I’m really excited about this one. It’s everything I know about frontend architecture in a box, and I want it to be accessible to as many people as possible—which is why it’s going to be a free resource. I also plan to build chunks of this project in public, so if you’re interested in seeing rough first versions of some of the content, come join me on Twitter and Twitch.
📚 The Frontend Library
An open-source library of software design resources for frontend engineers. This will include the best books, articles, conference talks, courses, workshops, and academic papers that will help you take your software design skills to the next level. All the resources will be nicely categorized not just by topic and technology, but also by the types of problems they’re trying to solve—so the library will be a reference resource that will be there for you when you need it the most.
☕️ Day in the Life of a Senior+ Frontend Engineer (more concise name TBD)
One of the best ways to learn about software design and architecture in the real world is to talk to the people actually doing the work. “Day in the Life…” will be a series of interviews with Senior, Staff, and Principal Frontend Engineers working at companies of all sizes and sharing their perspective on frontend architecture and career growth. This is the most “undefined” of the three projects, and will probably be the last one to launch, but I’m super excited about it. Will it be a podcast? Maybe. I’ll share more details soon.
In addition to those big projects, I have a few goals around the usual content, like writing more blog posts, creating more video content, and maybe even weekly newsletters—but this last one is more of a stretch goal, so don’t quote me on that just yet.
Are these super ambitious goals? Yes. But are they also realistically doable? Well, I’m not sure actually. I guess we’ll find out!
One thing is for sure: the only way these projects can be successful is if they’re actually helpful to you, and that’s where you come in, dear reader. Here’s my ask:
- If any of these projects sound interesting to you, please get in touch! Reply to this email and let me know which one are you most excited about and what types of things you’d like to see in them. It’d help me prioritize them in case I find out time isn’t as plentiful as I like to think it is.
- If there are any specific problems you’re running into with your own work, I’d love to hear about them. It could be related to communication challenges, dealing with tech debt, dealing with legacy code, and so on. I want these projects to be based on real-world problems, and I know that my own experiences are not the experiences of everyone else. Getting as many perspectives as possible on the challenges of frontends as scale will make these resources much more useful.
- And as always, if there’s anything you’d like to see more of in the newsletter (or less of, like my terrible dad jokes), I always welcome and appreciate all feedback.
Thank you so much for hanging out with me during this first year of the newsletter. It has truly been an amazing experience, and I can’t wait to keep building amazing frontends with all of you.
I hope you all have a fantastic holiday season and a great start to the new year. See you in 2024! 🎊
— Maxi
SOFTWARE DESIGN
The Best of 2023
The newsletter is only six months old, so it feels a bit weird to do a “best of 2023” post (am I even allowed to do that?), but let’s just go with it and hope nothing bad happens.
I also know that a bunch of you weren’t around when I first published these, so there’s a big chance at least one of these is new content.
These are my favorite Frontend at Scale issues of 2023 (and some of the most popular as well!):
#1 — It’s All About Complexity
The very first issue of the newsletter set the tone for most of what we talked about in subsequent issues, and it holds up really well. As software engineers, we’re in a never-ending battle against complexity—we can never defeat it, but we can keep it in check with good software design practices.
I strongly believe that the key to leveling up as a frontend engineer is to develop your technical breadth. This issue explains in detail why going broad is so important for frontend engineers, especially as you grow in seniority.
A brief introduction to frontend architecture, borrowing the definition of software architecture from the fantastic “Fundamentals” book. If you're curious about the upcoming workshop, this essay is a good overview of the topics we'll cover.
WATCH LIST
The Messy Middle — Navigating Complexity in Large React Applications
I know what you’re thinking — “Who’s that mysterious-looking speaker with the Astro hat? He looks so cool and smart!”
Ok, you’re probably not thinking that, but at least I hope that messy code snippet grabbed your attention! My latest talk at React Summit US was published on GitNation last week, and I’m super excited to share it with you all.
It’s a short talk (~10 minutes), and it’s about something we talk about in the newsletter pretty much all the time: managing the growing complexity of large applications. More specifically, I talk about three strategies for making your codebase easier to change and easier to understand as it grows over time:
- Component Composition — taking full advantage of the component model to make your UIs as flexible as possible.
- Using Deep Modules — favoring abstractions that encapsulate powerful functionality and expose a simple interface.
- Reducing Cognitive Load — how you can make your codebase easier to understand by reducing the amount of logic you need to fit in your head at a given time.
You might recognize some of the examples in the talk from previous issues of the newsletter. Hopefully, they still resonate with you in talk format.
I’m also preparing a longer version of this talk that covers the principle of “optimizing for change” in more detail, with lots of examples of the most common ways in which large frontend applications tend to change over time. I’m hoping to give this new talk at some point in the next year, so keep an eye out if that sounds interesting!
Watch on GitNation |
ARCHITECTURE SNACKS
Links Worth Checking Out
Next time you have to release a feature that breaks your database or API schema, you could try to apply Expand/Contract—a strategy for rolling out breaking changes without a “big bang”. |
I always enjoy learning new concepts from other design disciplines and thinking about how they translate to software design. Eigensolutions were not the exception—a super interesting approach to exposing connections between your (seemingly unrelated) use cases. |
Ben must be one of the few people who actually understand React Server Components. Don't believe me? Watch him implement a working version from scratch in just 20 minutes. |
HTML Web Components certainly seem to be having a moment. But are they ready for prime time? Miriam wrote a great explainer covering both its strengths and weaknesses. |
Micro-optimizations are the root of all evil… unless you actually need them, in which case they're pretty cool. This article covers a few of these tricky but fun optimizations in React. |
BOOKSHELF
Top 10 Books for Frontend Engineers
Over the past few months, I’ve reviewed and recommended ten of my favorite books for frontend engineers right here in the Bookshelf section. Ten seemed like a nice round number for a standalone list, and I just couldn't resist putting together one.
I strongly believe that the key to leveling up your skills as a frontend engineer is to develop your technical breadth, and the best way I know how to do that is by reading books that sit right in your “stretch zone”—like these ones.
The list includes my favorite books on software design, architecture, design patterns, web performance, system design, programming, and more. You can read my mini-reviews to learn what they’re all about and decide if they’re the right fit for you.
Now, I’m aware not everyone likes learning from books. I’m a very slow reader myself and I often find other formats like workshops or video courses much easier to consume. But the concepts these books cover are really hard to find anywhere else—at least with such a level of detail—so they remain the best source I know to learn about the fundamentals of software development. I promise you they’re well worth your time.
If you want to start reading more but haven’t developed the habit yet, my number one recommendation is to start small. Pick just one book from the list (there are some very short ones as well) and spend as long as you need with it. You really can’t go wrong with any of them.
Read on the blog |
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 or reply to this email directly with any feedback or questions.
Have a great week 👋
– Maxi