1) It’s the age of AI Code Reviews 🔍
This idea is brought to you by today’s sponsor, CodeRabbit!
I am wrapping up an article about code reviews that will go out next week. I am very bullish about the AI potential on this, and can’t wait to get your thoughts on it!
So, this week I am happy to promote CodeRabbit, whose team I have been in touch with for a long time now. CodeRabbit is the world’s most used AI code review platform — purpose built to speed up reviews and improve quality.
It integrates seamlessly into Git workflows and existing toolchains, it delivers codebase-aware reviews and supports all languages.
Now they are also delivering reviews directly in your IDE (VS Code, Cursor, Windsurf) letting you and your team (vibe) code with confidence and review while staying in the flow. For free!
2) 🧠 Confidence vs experience
The Dunning-Kruger effect is a well-known paradox in which experts in some domain are somewhat less confident than amateurs.
We all know this happens — but why?
It seems that, by drawing your skill progression on a time scale, there is a valley in which, although you have acquired decent expertise already, you can be more insecure than when you started.
In other words, there is a significant period of time in which the more expert you become, the less confident you are.
How can this happen? I believe our confidence largely comes from the relationship between two elements:
How much we know — in general, about a given subject.
How much we should know — based on our work and our responsibilities.
I can make this even more formal:
confidence = what we know – what we should know
The problem is that both elements are hard to assess objectively, so we may fall into the trap of our own perceptions about what we think we know, vs what we think we should know.
So, back to the Dunning-Kruger: if our confidence decreases while our knowledge increases, if we trust the equation, it means that our expectations about what we should know are increasing faster than our knowledge.
This is possible because of how learning works. For any given subject, we can bucket knowable things into three categories:
Known knowns — our actual knowledge.
Known unknowns — things we don’t know and we are aware of it.
Unknown unknowns — things we don’t know that we don’t know.
We can only expect from ourselves things whose existence we are aware of, that is, (1) and (2). But when we are learning some domain, for a good while we may discover new unknowns faster than how we turn them into knowns.
As long as this happens, our confidence may go backwards, while we see what we need to learn growing faster than our knowledge.
So, we may not be able to prevent impostor syndrome entirely, but we can at least rationally understand where it comes from, and make it a bit less scary.
You can find our full article on dealing with impostor syndrome below 👇
3) 🍀 The Four Agile Values
Although technology moves fast — today possibly faster than ever with AI — I often go back to older works and books about software engineering, and find their teachings still as relevant as ever.
As bloated and overloaded the word “Agile” may seem today, it is hard to look at core Agile practices and think they are obsolete. Simply put: they are not.
So, if we take the 12 principles from the original Agile manifesto, I believe we can extract 4 major themes — all still paramount today:
Work closely with stakeholders 👥
Good communication with stakeholders is a primary factor in any project's success. Agile has long preached about keeping customers in the loop and welcoming requirements' changes, over clunky long term plans.
Work in small batches & deliver incremental value 🚚
Splitting work into small deliverables is key to the health of your development process. Small batches lead to frequent releases, which in turn make the feedback loop faster and reduce risk.
This virtuous cycle means that, counterintuitively, there is no trade-off between speed and stability in software. Higher speed brings higher stability, because it also brings faster recovery from failures.
Give teams agency 🏅
The best results I have witnessed in software have always been delivered by diverse, cross-functional teams who had the skills and trust to independently iterate over a product.
Promote simplicity and good design 🎨
Good design means minimizing the work to be done, both right now and in the future, and this mostly comes from good communication.
I wrote a full reflection on core Agile values in this previous article:
4) 💡 Picking good project ideas
One of the questions I get asked the most often by readers is: what do you think about <this> idea?
And the scale of these ideas is on a wild spectrum: from weekend side-projects from folks who are just tinkering with AI, to full-blown pre-seed / seed startups.
Whatever your stage, if the goal is to make something that makes sense as a business, or a side-hustle, you should ask yourself whether 1) this idea is good, and whether 2) it is good for you.
There isn’t wide consensus on how to answer this question. So, my personal litmus test is simple, and is based on two things:
You are expert in the problem
You know how to build it
Let’s look at both.
You are expert in the problem 🔍
Startups, and products in general, are solutions to problems, and you should pick a problem you are an expert in.
The easiest way to do so is, of course, to pick one you personally have. You take something that really bothers you, whose solution you would pay for, and create it yourself.
But that’s not the only way. You may have worked in some space for years and found a gap — something that can be done better. You may not be the one who feels the pain, but you know well the people who do, and why.
You know how to build it 🧱
You bring something to the table that helps to create the solution. This is usually about one of two things:
🔨 Tech — you know how to build the actual product, or a big part of it. You know your way around tech and design.
📣 Distribution — you have some advantage at finding your ideal customers, vs the average Joe. Maybe you have worked with them, or you have an audience, or you are a big SEO expert and that problem is perfect for SEO.
Market vs execution risk ⚖️
So, the two factors above have different weights based on the kind of risk you face the most. All startups face two kinds of risks:
Market risk — you build something that nobody wants.
Execution risk — you are not able to build the solution.
Typically, the more an idea, or a problem, is obvious, the lower the market risk, and the higher the execution risk that you face. If your idea is to create AGI (OpenAI), or to summon cabs in 2 minutes from your phone (Uber), the question is not whether people will want it or not. The question is: are you able to build it?
In fact we have to assume that all obvious—but unsolved—ideas are hard, otherwise somebody would have solved them already.
Conversely, there exist plenty of niche or weird ideas, for which execution is kind of trivial, but it is unclear whether you are looking at real problems, or simply nobody cares about it.
Market risk is defused by your expertise about the problem, while execution risk by your build skills.
So, all of this sums up in having a strong answer to the why me question. Why am I the right person to do this?
The best answer should be something like: I am an expert in this problem and I know how to create something that solves it.
I wrote a full piece about whether you should start a startup or not, which you can find below:
And that’s it for today! If you are finding this newsletter valuable, consider doing any of these:
1) 🔒 Subscribe to the full version — if you aren’t already, consider becoming a paid subscriber. 1700+ engineers and managers have joined already! Learn more about the benefits of the paid plan here.
2) 📣 Advertise with us — we are always looking for great products that we can recommend to our readers. If you are interested in reaching an audience of tech executives, decision-makers, and engineers, you may want to advertise with us 👇
If you have any comments or feedback, just respond to this email!
I wish you a great week! ☀️
Luca