Single page apps, generalists, and accomplishment journals 💡
Monday Ideas — Edition #72
Hey, Luca here! Welcome to the Monday Ideas 💡
Every Monday I will send you an email like this with 3 short ideas about making great software, working with humans, and personal growth.
You will also receive a long-form, original article on Thursday, like the last one:
To receive all the full articles and support Refactoring, consider subscribing if you haven’t already!
p.s. you can learn more about the benefits of the paid plan here.
🐶 Datadog • built by engineers, for engineers
Datadog brings together end-to-end traces, metrics, and logs for full visibility into your applications, infrastructure, and third-party services.
Businesses can secure their systems, avoid downtime, and ensure customers are getting the best user experience. With Datadog, you can:
Break down inefficient silos between Dev, Ops, Security, and Business teams
Combine dashboarding, alerting, APM, infrastructure monitoring, UX monitoring, security monitoring, and log management in one platform—plus 600+ out-of-the-box integrations
Accelerate cloud migration, reduce MTTR, drive DevOps adoption, understand user behavior, and track key business metrics
Start your trial today and they’ll send you a free Datadog t-shirt!
1) 🪄 Generalists are open
I have argued many times that, especially in the early stages of your product / company, it is wise to create a small team of generalists.
Generalists have several strengths, and they all come down from a major one: they are open. If you look for an edge they may have over specialists, it isn't in their skills, but more in the way they think.
That’s because when you specialize in something, you slowly become biased.
Your toolbox fills up with some specific tech and processes, and you may become overly attached to them, because you feel your career depends on them.
You risk moving from the "choose the right tool for the job" mode, to the "when you only have a hammer, everything looks like a nail" mode.
This is not inevitable. The best specialists I know keep themselves updated and jump timely on new trends. But it's not always easy.
Generalists, instead, keep optionality by developing a wide array of skills.
They don't feel attached to a particular one and are more open to picking up new things.
Generalists get three major strengths for free 👇
📚 Learn fast — They are used to picking up new things as they don't see them as a threat to what they already know.
🏃 Get things done — They look for the best way to deliver value, instead of trying to fit a specific skill to the task.
👁️ Systems thinking — They develop a wide perspective that helps them to create strategies, find bottlenecks, and help with processes.
Of course, specialists have their place, too, and they become invaluable when you are scaling your team, need to level up quality, and narrow down individual scope.
I have written more about the various stages of engineering teams in a recent guide 👇
2) 🙅♂️ Beware SPA by default
There has been a tendency in recent years to use SPAs (single page applications) as the default architectural choice for frontend applications.
While SPAs are of course not wrong per-se, I feel many people choose them without being aware of the set of tradeoffs they are getting themselves into.
SPAs are challenging in many departments, like SEO, initial loading times, fine-grained analytics, browser history management, and more. So, based on your requirements, they may or may not be the best architectural choice for your app.
In recent years, interesting frameworks like Hotwire and Remix have come up with strategies to keep navigation and more business logic on the server, while still enabling a good user experience. You should check them out!
3) 📖 Journaling at work
An accomplishment journal (sometimes called a brag book) is a way of keeping track of the meaningful things you do at work.
There is a lot of stuff that is valuable to write down: praise you received, stories you were involved in that led to a positive outcome, and even things that didn’t go well but you learned something from.
But why should you do this? Writing is painful — I know better. If you don’t know what you are doing this for, you will never stick with it.
Accomplishment journals have four main uses:
1) Improve your career 🪴
Accomplishment journals are incredibly useful for performance reviews. You can prepare a summary of your achievements and share it with your manager in advance when it’s review time.
In some companies this is an official practice, but you should do this even if you are not supposed to. You can say something like “hey, I have just been keeping track and I know how busy you are” and I guarantee that your boss will thank you for that.
They will edit what you write and add their own things, but it’s always easier to edit than to create from scratch.
2) Find better jobs 👔
Your best accomplishments should end up on your resume when you leave your job.
On your resume, I strongly advocate highlighting your achievements for every item of your work experience. This is trivial to do if you have been keeping track.
Also, it makes it easy to pick stories to use in interviews when recruiters come up with situational questions, like: “Tell me about a time when you succeeded”, or “Tell me about a time when you learned a tough lesson”.
3) Fight imposter syndrome and be happy ❤️
Having a repository of your accomplishments and the praise you received does wonders for your happiness. It’s like your personal wall of love.
The thing is: crappy days happen — and crappy weeks, and months, too. Just reading what your boss told you or what you achieved over time is a huge pick-me-up.
4) Reflect on your journey 🔮
I am a fan of journaling for improving your awareness and self-reflection.
The accomplishment journal is the work version of this. It allows you to have a better conversation with yourself about what you like, what you don’t like, and use that information for making better career choices.
Now, you might think this requires a huge amount of writing, but that’s not true. In my experience, feelings stick for a long time. Even writing down just small bits of something that happened is enough to be able to recollect how you felt in that moment, whenever you read it back.
You can find more ideas about how to write an accomplishment journal, in this recent article 👇
And that’s it for today! If you are finding this newsletter valuable, consider doing any of these:
1) ✉️ Subscribe to the newsletter — if you aren’t already, consider becoming a paid subscriber. You can learn more about the benefits of the paid plan here.
2) 🍻 Read with your friends — Refactoring lives thanks to word of mouth. Share the article with your with someone who would like it, and get a free membership through the new referral program.
I wish you a great week! ☀️
Luca
I'm curious to learn more about how single page applications (SPAs) impact SEO. Can you share your insights on that?