We were always told that good architecture and testing enable experimentation and quick progress. The difference now is simple: experimentation is finally affordable, and letting go of code is easy.
AI is quietly changing one of the most human aspects of programming: our emotional attachment to code.
For years, we wrote code by hand. Solving a complex problem felt rewarding, and it was easy to become attached to the solution we built.
For the first time, software is starting to feel truly SOFT. With solid architecture and good tests, we can iterate, replace, and rethink solutions multiple times per day without fear.
Postman works worse with every update, trying to migrate somewhere. Yaak - no scripting at all, insomnia - scripting docs are awful, hoppscotch - failed to even login with desktop app. 🤬
Microservices is the software industry’s most successful confidence scam. It convinces small teams that they are “thinking big” while systematically destroying their ability to move at all. It flatters ambition by weaponizing insecurity: if you’re not running a constellation of services, are you even a real company? Never mind that this architecture was invented to cope with organizational dysfunction at planetary scale. Now it’s being prescribed to teams that still share a Slack channel and a lunch table.
Small teams run on shared context. That is their superpower. Everyone can reason end-to-end. Everyone can change anything. Microservices vaporize that advantage on contact. They replace shared understanding with distributed ignorance. No one owns the whole anymore. Everyone owns a shard. The system becomes something that merely happens to the team, rather than something the team actively understands. This isn’t sophistication. It’s abdication.
Then comes the operational farce. Each service demands its own pipeline, secrets, alerts, metrics, dashboards, permissions, backups, and rituals of appeasement. You don’t “deploy” anymore—you synchronize a fleet. One bug now requires a multi-service autopsy. A feature release becomes a coordination exercise across artificial borders you invented for no reason. You didn’t simplify your system. You shattered it and called the debris “architecture.”
Microservices also lock incompetence in amber. You are forced to define APIs before you understand your own business. Guesses become contracts. Bad ideas become permanent dependencies. Every early mistake metastasizes through the network. In a monolith, wrong thinking is corrected with a refactor. In microservices, wrong thinking becomes infrastructure. You don’t just regret it—you host it, version it, and monitor it.
The claim that monoliths don’t scale is one of the dumbest lies in modern engineering folklore. What doesn’t scale is chaos. What doesn’t scale is process cosplay. What doesn’t scale is pretending you’re Netflix while shipping a glorified CRUD app. Monoliths scale just fine when teams have discipline, tests, and restraint. But restraint isn’t fashionable, and boring doesn’t make conference talks.
Microservices for small teams is not a technical mistake—it is a philosophical failure. It announces, loudly, that the team does not trust itself to understand its own system. It replaces accountability with protocol and momentum with middleware. You don’t get “future proofing.” You get permanent drag. And by the time you finally earn the scale that might justify this circus, your speed, your clarity, and your product instincts will already be gone.
🚀 Patrol 4.0 is HERE - our biggest release yet! You need to see what just dropped! → https://t.co/cIWxk5vz0j
Today, we take the biggest leap yet: Patrol 4.0 GOES BEYOND MOBILE - one framework for iOS, Android & Web! 🔥+Patrol VS Code Extension.
Flutter used to have a massive gap: No true Flutter-first E2E testing. So we built Patrol 1.0 in 2022. Now: 200k+ monthly downloads, 1100+ GitHub ⭐, and teams worldwide rely on it daily. So it was time to make it even better.
See our 🧵
@patrol_leancode #FlutterDev #FlutterWeb #FlutterTesting #Patrol
The session includes a live coding demo showing how to build a Flutter/Dart client for a Connect-enabled backend.
If you’re exploring type-safe RPC in Flutter or Dart, this might be useful.
The recording of my Fluttercon talk “Connect: gRPC that works everywhere” is now online: https://t.co/yS9Fx2IA9p
I talked about how the Connect protocol reimagines gRPC to work seamlessly across mobile, web, and server environments – no proxies, no hacks.
I’m a bit skeptical about the idea and its chances of mass adoption, but given who’s in charge, it’ll be interesting to see the outcome. https://t.co/wDrc5rEsdH
The best use of AI agents in coding so far: classic pair programming, where I’m the navigator and AI is the driver. The only differences? We never switch roles, and productivity is 10x higher.