On shipping on time, side projects, and collecting web data 💡
Monday Ideas — Edition #147
1) 🤖 Large codebases are the #1 problem of AI coding
This idea is brought to you by today’s sponsor, Augment Code!
Last week we published a full article about how engineering teams are using AI for coding. It turns out today’s models are already performing like top software engineers in pure algorithmic problems. Already last October, Claude 3.5 was able to autonomously solve 86% of all LeetCode problems, from all ranges of difficulty.
However, faced with real freelancing tasks, this percentage drops to 26%. This different is all about context. As a senior engineer from OpenAI noted:
"AI can generate code snippets well, but when it comes to fitting them into an existing project, it often fails due to a lack of context."
I am a big fan of what the guys at Augment are building, because it addresses exactly this problem. Augment is the first AI coding assistant built for professional engineering teams and large codebases.
You can learn more below 👇
2) 🗺️ Ship projects through divergence + convergence
How do you ship stuff on time? The #1 advice from Agile is 1) break down work in small pieces, and 2) get frequent feedback.
In my experience, though, this isn’t enough.
For any non-trivial project, there is additional work that spawns over the course of it. Most comes from feedback: other features you find out you need, tweaks, bugs, etc.
This is healthy — in fact, you should get suspicious when it doesn’t happen: chances are you are not getting enough feedback.
However, scope creep can easily derail deadlines and create friction on prioritization. To avoid this, you can break down the project timeline into timeboxed stages. For example:
🥇 50% → Core features
🥈 30% → Learnings + secondary features
🥉 20% → More testing + bug fixing + final tweaks
So, let’s say you have a 6-month project for which you are working on scope and requirements. Identify a sub-scope of core features, on which to spend the first three months. After three months, look at the project status: are you on track? Are you late? How much new stuff has emerged?
You have now a backlog with:
🧀 Leftovers — a few core items still to complete.
🥈 Secondaries — all the minor features.
🔍 Learnings — tweaks and additional features that came from the learning and feedback over these first months.
Together with stakeholders, re-prioritize these and figure out what to fit in the next two months. Finally, in the last month, focus on convergence: do the final tweaks, more QA, and bug fixing.
Some FAQs:
🌊 Isn’t this waterfall-ish? — Nope, you are still demoing stuff every week, testing, getting feedback, etc. It’s just that you do the most important items first, and timebox the various stages.
⚖️ What if my core features take more than 50%? — go for it, but be aware of what you are leaving on the table. In my experience you can’t really avoid the final tweaks, so, if you want to stay in time, you are likely penalizing tasks that come from learning. Which is usually not a good deal.
I wrote a massive guide on how to plan and execute software projects last year, which is one of the most popular Refactoring articles ever 👇
3) 🔨 Building is a muscle
These days we see more and more people throwing themselves at improbable side projects thanks to AI — like Pieter Levels and his flight sim (which makes $70K/mo 🫠).
If you are thinking to do the same but don’t know where to start, the best advice is probably to… just start. With whatever.
Because building is a muscle: the more you build, the better you get at building, in many ways:
🔨 Skills — you get more skilled. You learn more tools, languages, and you get faster overall.
🧠 Mindset — you get used to spending time building ideas on the side. You develop discipline, and it just becomes a habit. Like going to the gym.
👓 Sensitivity — you start looking at things with new lenses, through which every problem is an opportunity to build something. The more you build, the more you find things to build.
So, if you are just getting started, here is my bottom line advice:
🩹 Scratch your own itch — find a problem you personally have and you think you can solve with tech. You may eventually find others who have the same problems, but even if you don’t, hey, it’s one less problem anyway!
🌶️ Use the tech you know + some interesting new bits — use 80% of stuff you are familiar with, but spice things a bit by adding some pieces you want to learn. This will work as an extra motivation, while not putting the whole project at risk.
☀️ Enjoy the journey — find ways to work on your project that don’t disrupt your life, and always pay attention to how you feel. It should feel good. Optimize for enjoying the process, rather than getting to a specific destination (e.g. I’ll make a ton of money!).
I wrote more about side projects in a previous article which takes from my chat with Vic Vijayakumar — principal engineer at Twilio and… side-project master 👇
4) 🕷️ Should you collect web data?
Because of AI, scraping and web data extraction are having an incredible reinassance.
AI lets companies make sense of a lot of data that was already available but not easy to take advantage from — and much of this data comes from the web.
Can such data be useful for you as well? Let’s see.
In my experience, use cases for web data can be split into two categories:
➡️ Direct — specific usage that is directly connected to the value prop of your product.
⬅️ Indirect — second-order benefits, more generic and widely applicable.
Direct uses cases are about products that create value by aggregating, summarizing, reviewing, and generally transforming web data. There is plenty of them — think of:
Search engines in the travel space, like Skyscanner or Kayak.
E-commerce aggregators, similar to Google Shopping
SEO tools, like Ahrefs or Semrush
These are all ad-hoc use cases. You can find similar strategies by reflecting on your product and whether it can deliver more value by using web data directly.
There are also other, more general use cases, that work well for many companies:
1) Security 🔒
You can intercept emerging security risks by tapping into threat intelligence feeds (e.g. here is a great list), government alerts, and industry news on the web.
Based on your business, there is a lot you can anticipate, prevent, or mitigate this way: tech vulnerabilities, phishing attempts, data breaches, and more.
For example, financial institutions monitor dark web forums for mentions of stolen credit card numbers, allowing them to proactively alert customers and prevent fraud.
2) Market & competition insights 📈
Web data is a treasure trove of information about your market and competitors. For some businesses, this doesn’t really move the needle, while for others it’s crucial.
Think of e-commerce stores:
🏷️ Dynamic pricing — you can harness data from competitors' websites, product pages, and deal sites to inform your pricing decisions.
🚀 Track product launches — keep tabs on new product announcements that are relevant to you (e.g. new products you can sell).
😊 Analyze customer sentiment — gather and analyze customer reviews and ratings across various platforms to understand market trends.
3) Brand health & customer support 🩺
You can monitor your brand’s health through social media analysis, online reviews and ratings, gaining insights into brand perception.
The same approach can be adopted to intercept issues and provide proactive customer support. For example, that’s what many telcos do to spot issues in their network.
4) Building AI models 🤖
Finally, AI stands out as a meta use case. You can use web data to fine-tune base models or create RAG systems for a variety of use cases, including the ones above. We also discussed it in this previous article.
We wrote a full piece about web scraping fundamentals last year 👇
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
Great list, thanks!
Let me add an idea I tacked onto my personal side project which is going for ~3 months now: I built this slightly cynical, borderline _rude_ persona in Claude and I use it as a sparring partner when ideating/blogging about progress on the project.
It's been more fun than expected!