Posts like this advocate a mentality that leads to people using Django or Rails for apps where these tools are not long-term good fits. It’s better, I think, if people spent a bit of their lives learning how to build architectures beyond tools like Django and Rails, because these tools are actually really limiting, not just in terms of theoretical things like scaling but practically in terms of what they can express. There’s a very common ethos that if people just focused on shipping they would somehow magically ship but that’s not how software works. You can’t just will shipping. You need to know what you’re doing. And we advocate every job be a rush job, for the sake of what? Shipping something that likely has no chance anyway?
This blog also talks about CQRS and ES like they’re more complicated than “traditional” approaches. But that’s only true if you don’t know how to work them. Once you learn how to have a database that’s inside out, you never want to go back. Once you use kubernetes, you never want to go back. CQRS/ES/kubernetes are the things I intuitively wanted since I was a kid learning how to build things. I couldn’t have explained then what made it hard, but it was the absense of these tools and approaches which make managing complexity much easier.
This blog describes a number of the infrastructure teams at companies I've worked for in the past decade. These teams have Lead Engineers and Architects with lots of education and experience. They aren't dumb. They just also aren't really engineers. It's not their fault, really; it's the practice of the industry in general.
The reality is many/majority of developers are actually beginners! It's simple logic once you think about it..
Consider the huge range of skills required (language, libraries, os, networking, patterns & techniques, industry advancements, then general professional skills such as organisation and communication and time management, then economic understanding to apply these to the business domain etc, the list goes on and on). It basically takes most people 5-10 years to actually grasp the skillset, and then double that again to master it.
Combine this with the growth of the IT industry which means greater numbers joined recently and fewer numbers of more experienced people started decades ago, even if they are still working. Oh and chasing the latest cool thing, ageism, and NIH ..
Overall the ratios are terrible with the majority of people not having the level of mastery and perspective to deliver at a high level on all of these skills simultaneously .. so their 'architectures' are actually controlled A/B tests if they have an engineering mindset, or just fashion driven development and cargo culting if they don't..