Someone builds a project management tool with Claude Code over a weekend. Ships it. Tweets "just replaced Jira."
The app works. One user, happy path, localhost. Then two people edit the same record simultaneously, and the data is silently corrupted. They don't know what an optimistic lock is. They never needed to before.
The prototype is maybe 1% of what makes software actually work. The other 99% is what you find after real users show up: race conditions, failed transactions, sessions expiring at the wrong moment, a payment webhook that fires twice and charges someone double. AI didn't cover any of that. It built exactly what you asked for.
And the confidence is the worst part. "Just need to adjust a few things before we go live." The few things you need to adjust are the product. That's like laying a foundation and telling people you basically built the house.
Vibe coding works. For personal tools, throwaway scripts, and prototypes you'll never put in front of paying users, it's genuinely fast and good enough. I use it. But there's a hard ceiling, and it shows up the moment the stakes get real.
Agentic engineering is a different discipline. You're not prompting for code. You're decomposing problems, designing system boundaries, writing specs precise enough that the agent doesn't go sideways. You review everything it builds, because it will make mistakes that only look wrong if you know what correct looks like. You guide it. You catch what it misses.
If you don't know what a distributed transaction is, the agent won't save you. It'll generate something broken with complete confidence, and you won't know until production.
The hard part of software was never writing the first 200 lines.
It never was.
ASP .NET Core Best Practices 💡
#dotnet
Nice article providing guidelines from Microsoft for maximizing performance and reliability of ASP .NET Core apps.
Which of these techniques are you using in your apps right now?
Link in 2nd tweet below.
𝗕𝗼𝗼𝗸𝘀 𝗘𝘃𝗲𝗿𝘆 𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿 𝗠𝘂𝘀𝘁 𝗥𝗲𝗮𝗱 𝗶𝗻 𝟮𝟬𝟮𝟱.
You probably already noticed that I'm a big fan of reading. You can learn from knowledgeable people by working directly with them or reading what they have written. The first option is the best, yet it is often impossible. We have books written by people who were probably the best at this in the world at the time of writing.
If we look at the software engineering world, there are many gems here, but I will recommend the best books per area of work. These books will help you not only to become good at specific technology but to become a great software engineer overall.
𝟭. 𝗚𝗲𝗻𝗲𝗿𝗮𝗹:
🔹 The Pragmatic Programmer by David Thomas and Andrew Hunt (https://t.co/NCSpr3ZhGb)
🔹 Code Complete: A Practical Handbook of Software Construction (https://t.co/OXMYyabHma)
🔹 Modern Software Engineering by David Farley (https://t.co/2X5eWCHcni)
🔹 Software Engineering at Google (https://t.co/GXZxoCbrva)
𝟮. 𝗖𝗼𝗱𝗶𝗻𝗴 𝗽𝗿𝗮𝗰𝘁𝗶𝗰𝗲𝘀:
🔹 Clean Code by Uncle Bob Martin (https://t.co/4Ml52XBKKb)
🔹 Head First Design Patterns by Eric Freeman (https://t.co/4jXkPd8vcK)
🔹 Refactoring by Martin Fowler (https://t.co/8fbR93LNy0)
𝟯. 𝗗𝗮𝘁𝗮 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝘀 𝗮𝗻𝗱 𝗮𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺𝘀:
🔹 Grokking Algorithms (https://t.co/1q2hWfaONO)
𝟰. 𝗗𝗮𝘁𝗮:
🔹 Learning SQL by Alan Beaulieu (Free - https://t.co/RCcZjZr2Tl)
𝟱. 𝗧𝗲𝘀𝘁𝗶𝗻𝗴:
🔹 Growing OO Software by Tests by Steve Freeman (https://t.co/joi6Q8nm4W)
🔹 TDD by Example by Kent Beck (https://t.co/IxVGfJymQu)
🔹 Unit Testing Principles, Practices, and Patterns by Vladimir Khorikov (https://t.co/7VyFPkUpZS)
🔹 The Art of Unit Testing by Roy Osherove (https://t.co/rqNoqJH49t)
𝟲. 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲:
🔹 Fundamentals Of Software Architecture by Mark Richards and Neil Ford (https://t.co/LOnF7783bl)
🔹 A Philosophy of Software Design by John Ousterhout (https://t.co/rBeKHE0w6P)
🔹 Clean Architecture by Uncle Bob Martin (https://t.co/fojqHumHo3)
🔹 Domain-Driven Design Distilled by Vaughn Vernon (https://t.co/pT8GZQmrR5)
🔹 Software Architecture the Hard Parts (https://t.co/K7AqvDOoSN)
𝟳. 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝘀𝘆𝘀𝘁𝗲𝗺𝘀:
🔹 Understanding Distributed Systems by Roberto Vitillo (https://t.co/NmApvbFyQj)
🔹 Designing Data-Intensive Applications by Martin Kleppman (https://t.co/2Rtjfs987o)
𝟴. 𝗗𝗲𝘃𝗢𝗽𝘀:
🔹 DevOps Handbook by Gene Kim (https://t.co/EHmuVxZrKi)
🔹 Continuous Delivery by Jez Humble and David Farley (https://t.co/tePOX3hfs3)
🔹 Accelerate by Nicole Forsgren (https://t.co/HqHfEjAmB4)
𝟵. 𝗠𝗮𝗰𝗵𝗶𝗻𝗲 𝗹𝗲𝗮𝗿𝗻𝗶𝗻𝗴:
🔹 The Hundred-Page Machine Learning Book (https://t.co/31A2XuGKSR)
🔹 Designing Machine Learning Systems (https://t.co/8hXFovtTzU)
#softwareengineering #programming #learning
My Favorite 10 Books for Software Developers
General Advice
1 - The Pragmatic Programmer by Andrew Hunt and David Thomas
2 - Code Complete by Steve McConnell: Often considered a bible for software developers, this comprehensive book covers all aspects of software development, from design and coding to testing and maintenance.
Coding
1 - Clean Code by Robert C. Martin
2 - Refactoring by Martin Fowler
Software Architecture
1 - Designing Data-Intensive Applications by Martin Kleppmann
2 - System Design Interview (our own book :))
Design Patterns
1 - Design Patterns by Eric Gamma and Others
2 - Domain-Driven Design by Eric Evans
Data Structures and Algorithms
1 - Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein
2 - Cracking the Coding Interview by Gayle Laakmann McDowell
Over to you: What is your favorite book?
--
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/eVEdOFSYPY
Using .NET Keyed Services with Strategy pattern
#dotnet
I posted a strategy pattern example yesterday and someone on LinkedIn suggested using Keyed Services in .NET could simplify things.
Hadn't really considered this, but using Keyed Services seems to negate the need for the context class we see in traditional implementations of the strategy pattern.
Two examples below ⬇️
One using Enums for strong typing and the other using plain strings for simplicity.
What do you think?
Visiting Cape Town from Ireland for the Christmas/New Year holidays.
Thought my euros would go far here. They didn’t.
Cannot believe how expensive this place has gotten in less than 2yrs.
Today we got banned by GitHub. The rate of new repos and commits created by our users was putting too much strain on their infra. A single AI codegen startup generating so much code that it makes Github struggle is an early indication of how much software that AI will produce from here on out.
Want to level up as a software engineer?
My 4 predictions for 2025.
1. Become best friends with AI tools.
Not just using them but also understanding their strengths and limitations.
Spend time learning prompt engineering and when NOT to use AI.
Cursor + Claude Sonnet are my go-to AI coding tools.
GitHub Copilot is catching up quickly (keep an eye on it).
2. Master the art of learning in public.
Share your debugging journeys, document your failures, and build in the open.
The best engineers I know aren't just building - they're bringing others along through detailed technical blogs and thoughtful code reviews.
Almost no one is doing this, so it's an easy way to stand out.
3. Develop your systems thinking muscle.
Modern engineering isn't about individual services anymore.
Whether you're dealing with distributed systems or simple APIs, understanding how everything connects (and fails!) is crucial.
Observability and monitoring will be even more important.
4. Prioritize sustainable development (not what you think).
This means writing maintainable code, yes, but also maintaining YOUR sustainability.
Regular breaks, deep work sessions, and knowing when to step back are crucial engineering skills.
What would you add to this list?
P.S. Stay awesome!
𝗦𝘂𝗰𝗰𝗲𝘀𝘀 𝗶𝘀 𝘄𝗼𝗿𝗸𝗲𝗱 𝗼𝗻!
Which quote resonates for you?
In any case, to succeed is to want, try, fail, and try again to succeed finally!
You need a winning mindset!
I wish you a great week ahead 👋!
#leadership#personaldevelopment#success#careers #techworldwithmilan