Hey, Luca here — Merry Christmas! 🎄 Welcome to the Monday Ideas 💡, exceptionally on Tuesday today! 😄
Every Monday I send you an email like this with 3 short ideas about making great software, working with humans, and personal growth.
Paid members also receive a long-form, original essay on Thursday, like the last one:
To receive all the full articles and support Refactoring, consider joining 1400+ engineers and get the paid membership!
p.s. learn more about the benefits of the paid plan here.
🖥️ Convex (Sponsor)
A few months ago I interviewed James Cowling, CTO of Convex. I love what he is building and today I am happy to promote it in the newsletter!
Convex is the TypeScript backend that handles the hard decisions. You get an opinionated realtime database with an optimized cache and elegant abstractions to express your application logic.
It is designed by UX-obsessed web devs, and architected by the team that built Dropbox. You can learn more about Convex below 👇
1) 🥇 A-players need managers
I keep hearing that top talent requires little management effort — so if you only hire A-players, you won’t need managers, or very few.
In my experience, this is false.
While it is true that great engineers may help more on planning and may stay aligned more easily, they require just as much work (if not more) on the growth side.
A-players want to grow and have an impact. They don’t settle and are generally more demanding than other engineers.
Taking care of people’s growth is a key managerial duty, and one of those you can’t “distribute” or automate with processes.
I wrote a full article about how far you can go without managers, and how to figure out when you really need them:
2) 👾 Web3 Engineering
In the past few months I have been sensing more curiosity towards web3. I get more questions via email, I see friends starting things in this space, and more.
People always ask me what my opinion is on web3, as if it could be summarized in one sentence. Of course it cannot, because… it’s complicated. But crypto has always been a polarizing space that divides people into skeptics and believers, so many feel the urge to take sides.
However, to be curious and wanting to learn more, you don’t need to be neither.
F. Scott Fitzgerald wrote:
The test of a first-rate intelligence is the ability to hold two opposing ideas in mind at the same time and still retain the ability to function.
Personally, my opposing ideas are:
I love the qualities you get with web3 and I am curious about a future where software and services are built this way...
...but the current tech is still lacking and I feel it may not stand the test of time.
So, even if you believe this is the right future to build, the tech stack might look very different from the one that exists today. If you were excited by the potential of web apps in the early 2000s, you were right! But you would have learned Java applets, just to throw them away a few years later.
There are counter examples too. HTML and JS have been mocked and considered a bad fit for web apps since forever. Not only are they still here, but they have attacked (quite successfully) desktop and mobile too. When adoption surpasses a critical threshold, it becomes more convenient to improve the current tech than replace it entirely.
I don’t know what stage we are in with crypto, and I don’t know if Bitcoin or Ethereum or Solana are here to stay or if they will be replaced by 10x better tech in a few years. But to me it feels the right time to dip your toes in the water. Or, if you feel like it, get full-wet.
I wrote a two part-series on web3 engineering principles, and how this is all different from regular engineering:
👾 Web3 Engineering • Part 1 — principles & qualities.
👾 Web3 Engineering • Part 2 — architecture & dev workflow.
3) 💡 Capturing notes
One of the most popular pieces I have written this year is about how I organize my knowledge. Out of the various ideas, I spent a lot of time describing how I capture ideas and useful stuff, which I believe is the foundation of any note taking system.
Useful things can come from literally anywhere: a website you visit, a bit of wisdom from a friend, a sign on the street — so you should have a reliable way to capture any kind of source.
This capture stage should be optimized for minimal friction. You should be able to capture anything super fast, otherwise you just won’t do it.
Also the capture step should only focus on exactly that: capturing. Don’t bother about organizing anything at this stage, or figuring out where to put things. This only makes the capture more cumbersome, and makes you do less of it.
In my experience, separating capture from organize is a key element of good note taking. Some people corner themselves into unsustainable workflows where whenever they e.g. take a picture of something they immediately have to send it to e.g. Notion, put the right tags, etc.
This doesn’t work in the long run — you only end up capturing less stuff. So, whenever you capture something, only capture it, and review it later.
To be able to capture things fast you likely need multiple methods, each optimized for a different type of source / input.
Here are mine:
🖥️ Websites — Notion Web Clipper. I use this unofficial Notion saver to send any interesting websites to my Notes database. The chrome extension allows to create various templates for different types of websites, and is able to fill database fields automatically. I also use the default share to Notion action on my iPhone and iPad.
💭 Casual thought — I create a new note on Bear, on my iPhone/Mac. Bear is super fast, is offline first, and has good sync across devices. Those are my only requirements, so Bear works fine but I would probably do just as well with Apple Notes and other similar apps.
✏️ Article passage — I highlight passages on Readwise, which automatically creates a note on Notion for that article with all the highlighted parts. I wrote a full piece about how I read online.
📗 Book passage — I usually read on a Kindle and highlight passages there. These are also sent to Notion automatically by Readwise.
🎧 Video / Audio passage — I use Bear, transcribing the passage manually — I don’t like this, it is slow and cumbersome, which is one of the reasons why I don’t listen to many podcasts.
📷 Misc life stuff — I take photos with my iPhone.
I also make a heavy use of AI-generated summaries. For articles and videos (especially videos) that I am not sure I want to consume in full, I go straight to the summary first and decide based on that. About 50% of the time, the summary is enough and I simply copy parts of it into a new note.
You can find more ideas and all the other parts of my note taking system in the full 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. 1400+ engineers and managers have joined already! 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