Greed vs Bravery Based Engineering
It is difficult to find words that accurately describe the cruelty, selfishness and outright evil on display from the White House these days. The guiding principle of Gordon Gekko: "Greed.. is GOOD", has finally reached a crescendo. As long as you are greedy - you can be above the law and the sickness of our society is refleced in the mentally deranged leaders we elect.
I think we must accept that it is possible to have a coherent world interpretation through the lens of "Might makes Right". It's the way sociopaths view others, it is the system that dictators will have you accept. In such a world view, "trust" simply does not exist - except in the short term wielding of power to create fear. In a might makes right world - every transaction is a zero sum game. To have a winner, there must be a loser.
You can choose to submit yourself to might - or you can fight back. Today, I want to talk about a few bugs in the "might is right" based world view that we can exploit as engineers. Hopefully, we can grapple together on how we can collectivity dignify our species again.
Credit - Where it is Due
The American Tech industry has cultivated an image of building companies that make the world a better place. Everything done in the name of profit is covered in a thin veneer of "this will improve humanity".
We don't have to go back far in history to see that the reality did in fact correspond with the projected image.
Some examples of what we got from the US:
- The transistor and the microchip revolution
- Cars and the assembly line
- Nuclear Power
- Great advances in genetic engineering and CRISPR techonology
- The aeroplane
- The internet (in collaboration with the Brits)
- Cancer drugs and treatments
- The Television
The US has obviously contributed positively to technology and humanity in its short history. It did so in an enviroment where hard work translated to either profits or delight of helping fellow human beings.
There is a dark side to taking great leaps forward in technology and wealth. Technology, once it reaches a certain level, has an interesting interaction with greed: It aggregates power to those who already posses it.
Power Aggregation and the End of Capitalism
Capitalism in the US, the direct correlation between hard work and flourishing, ended during the banking crisis of 2008.
Computers and algorithms had at this point put an enormous amount of monetary power into very few hands. When the rules of capitalism required the mighty (bankers) to fall - they instead had the political influence to stay standing - at the expense of the taxpayer.
With the bailout of the bankers, greed entered its next, logical phase. The world was taught an important lesson: "If you have enough monetary power - you are above the law and above the rules of capitalism". In 2008, the US transitioned from a capitalist society into a system powered by the ability to print more money on demand. Money itself, not hard work and values creation, became the goal of the system. Dollars became weaponised.
It was around this time that Bitcoin was invented. We often her crypto fans (or "cryptards" as I like to call them) talk about how Bitcoin is backed by compute, but the USD isn't backed by anything. But, this misses a crucial point: While you the US government can create more USD as they see fit, the dollar itself is backed by two things: military might and "production". And I use the term "production" in its widest sense to mean not only goods, but also services.
The US needs to keep producing stuff that people want. You support your nation by buying things. The system has to generate more demand - even when that demand is pointless. "It's the economy, stupid!".
Here, we encounter the first bug in Greed:
- Greed needs us to want new things. It needs change to fuel itself.
The End of Quality
With globalisation, most western nations moved large parts of their production chains to Asia. We could now mass produce products at a fraction of the price.
But, if you can buy things cheaper - how do we keep the engine of greed running? One way to achieve it, is to reduce quality. Make sure obsolescence is a planned part of your product lifecycle. A good example of that is your iPhone - you may have noticed how it eventually becomes obsolete, forcing you to buy a new one?
Another way to keep greed going in markets that does not "desire things" is to pretend you are innovating - when all you are doing is recycling old ideas. This process of stacking irrelevant features on top of an otherwise useful product is what we call "enshittification". A good example of enshittification is Microsoft Outlook, now an almost useless email client that is slower, less stable and harder to navigate that it ever has been. Another example is the public cloud, inferior in nearly every way to traditional servers (we will get back to this point later)
Of course, such malicious behaviours by the owners of capital are only possible if you are a monopoly and cannot be challenged by smaller, more nimble players. But capitalism had already been put out of business in 2008 - being rich meant having influence. And thus, the tech giants were born. ..
Think, for a moment, about how little Apple, Google, Meta and Microsoft has achieved the last 15 years. Consider the amount of capital they have deployed and how that capital has produced almost zero, beneficial outcomes for humanity as a whole. These companies have enormous workforces. They are full of HR processes, management theories, organisational complexity AND highly skilled people. Yet, very little civilisational value comes out of them. In fact, they are actively harming the economy by vacuuming up talent and putting it to work on pointless ideas that are inefficiently executed.
- Greed favours low quality. It takes shortcuts
- Greed favours bloated organisations with extremely low productivity per employee
- Greed is inefficient - particularly when it operates in a market dominated by large players who cannot be challenged by the regulators.
The End of Markets
The rise of Amazon was the coup the grĂ¢ce to what little remained of capitalism in the US. A simple book store was allowed to dominate nearly all of retail - unchallenged by regulation. At this point, Greed had already established the principle that "if you are big enough, you can get away with anything". Amazon, not satisfied with having destroyed traditional retailing, needed more. And that "more" was the cloud.
You may remember the initial, false analogy of the cloud as a utility: "You don't operate your own power plant, why would you operate your own data center?". Ask the Germans whether outsourcing power production to Russian gas oligarch is a good idea. Amazon could easily have made the cloud the equivalent of traditional servers, just running on someone else's server room - and we could all have had a level playing field.
But, remember: Greed favours low quality and fake innovation. This led Amazon to invent a series of services that don't really do anything good to their customer's architecture - which favours burning more compute running wildly distributed systems. For no good reason, except making more money for Amazon. We already had perfectly functional systems before the cloud. What we needed was commoditised infrastructure, not new architectures. What we got was feature bloat and moats.
To make people buy the services provided by Amazon - they needed software engineers to look up to them. Fortunately for Amazon, Social Media had at this point embedded itself into every industry. All they needed was to plant stupid cloud service ideas into the minds of useful idiots. Idiots, who would then start spreading the Web 2.0 architecture as gospel and best practise to be applied without thinking.
And thus, microservices, object stores, NoSQL, complex message queues, serverless computing and other stupid ideas spread - casting a grim shadow out the perfectly fine IT architecture that had served us so well until the collapse of capitalism. Defending the "old ways" was now delegated to grumpy, old men like myself who still remember a time when you could run your entire, large company on a small server with software that was easy to debug and maintain. Not because companies were simpler back then, but because software in the old days was made by people who didn't celebrate needless complexity as an achievement to put on their CV.
- Greed favours complexity for its own sake. It needs you to believe that simple things are hard
- Greed needs a steady supply of useful idiots to drive consumption and create enough noise to drown out reason.
With Amazon, feudalism is back and we are vassals in their ownership of the digital marketplace. Mindless fanboys of their ideas about software architecture.
More companies mimicked Amazons way of deploying "money as a weapon" to dominate industries. Uber destroyed the taxi industry and are now actively working on driver-less cars to put their "employees" out of a job. Social media first destroyed independent news media, then replaced it with an echo chamber. It then wielded its new influence to control political outcomes (no matter what side of the spectrum you are on, you will have benefited from this). And now, Elon the Clown is getting away with raiding the very institutions that are supposed to protect us against his will to dominate all life.
But greed did not stop there...
The End of Consumption
Remember, the USD is backed by two things: Military Might and Consumption. Since governments from both sides of the political spectrum have flooded the world with dollars - the predictable outcome was inflation.
Inflation, combined with Greed's need to take more from those who have the least, eventually drives us to a world where increasing consumption becomes impossible. There just isn't enough money in the hands of the many to create meaningful signals about what to produce next. Innovation grinds to a halt, people are miserable and they need someone to blame.
The only way to prop up the USD is now to exercise military might. To bully your neighbours and step on those smaller than yourself to feel bigger.
Might makes right has been established as the final outcome of greed. And we have seen no clearer display of this than the atrocious, undignified treatment of Zelensky, who has spent 3 years of his life trying to stand up to his barbaric, green driven, neighbour.
- Greed eventually eats itself and everything around it - unless stopped
The income and life style inequality has never been higher in the US. The poor have nothing left for the rich to steal. Consumption is no longer driving the economy. The economy is instead a game, played on markets fuelled by the monopoly money (pun intended) we call the USD. The 99% of the population ares now a slaves to the 1% - playing a Squid Game for the entertainment of the rich.
Professionals in the IT industry are not exempt from this game of greed.
Greed Driven Development
Our industry is riddled with inefficiency. Systems are built in clouds, with overly complex services. These clouds are owned by tech giants - who have demonstrated that they are willing to be dry humped by a narcissistic megalomaniac - as long as it serves their short term greedy, purposes.
The US handed the keys to secret data banks over to the person least qualified to look at it objectively - Elon the Clown.
How long until the cloud vendors agree to hand over the keys to your cloud systems? What happens if Amazon turns off the Dublin or Amsterdam data centers? What if Bezos took a page from Trump's Ukraine playbook - and just turned it off for a few days to put pressure on the EU? Did any responsible developers think about this risk when they made the systems we rely on to run our civilisation?
We have entered an era of greed based development where:
- Software favours short term profits with no idea how it will survive and be maintained
- Complexity is added for the sake of it and because young programmers never lived in a world that didn't have it.
- Regulation (EU is the biggest sinner here) attempts to direct development - but that regulation is not done by people qualified to write it
- The money flow invites loud charlatans and bullshit artists into our industry
- "New" concepts, which are just recycled old ideas, are routinely introduced, hyped and then killed off. This drives an endless cycle of constantly needing to rebuild, migrate or upgrade without adding any value - except to the tech giants who make money on these upgrades
- Software development teams use short sighted, error prone methods to build things that are brittle (ex: Agile)
- No new talent can enters the industry, because all the junior programmers are being replaced with LLM. This will lead us to a Japan state of affairs, where there is no one left to take over when the old people die.
- Storage and compute in the cloud is incredibly overpriced compared to just purchasing the actual hardware you need
- Newly written software relies on cloud services that not only lock you into the cloud vendor - but hands over the keys to your data to a 3rd party that we know cannot be trusted.
It does not have to be like this...
...There is another way...
Bravery based Development
Too often, I hear developers follow this line of thinking:
- This looks complicated
- I don't like to engage with complexity
- Let me do a short term hack, that does not fully satisfy the requirements - but gets me off the hook
- We can always fix it properly later (you never get there)
This is the Greed mindset operating behind the scenes.
Many developers are perfectly capable of engaging with complexity. They even embrace it when mindlessly importing libraries from the Internet and taking dependencies on cloud services. But when they need to write code that "looks hard" they shy away from it and take shortcuts. All in the name of efficiency.
This way of thinking isn't how great software is built. Great software is built by boldly walking into the problem space, properly analysing the complexity there and grinding (yes, hard work) the hours to conquer the complexity. You don't build great software by blindly applying best practices or taking a series of short term moves. Just like you don't play good chess by looking just one move ahead.
It takes hard work and putting in the hours to be brave. But it pays off - big time! And we have real examples of this happening in the world.
Consider the incredible work done by a dedicated group of hackers who made the Linux kernel. Even though the open source community is large - it is a small fraction of the Windows and MacOS teams. Yet, the Linux kernel is now competitive and even sometimes superior to the big, commercial operating systems.
Think of the success of Factorio, with its high stability, clever game loops, effective code that runs on pretty much any machine. This game was made by a tiny team in the Czech Republic funded by a 20K EUR kickstarter project. The team was only 15 people, growing to 30 with the DLC. The game sold over 3.5M copies at 30 USD each. The love poured into this game is obvious to anyone playing it.
Consider "The Witcher 3" - made in Poland for a fraction of the budget that large game studio wield. It was to become arguable the best open world game ever made - dethroning million dollar US projects that tried to compete. I still hear the soundtrack being played when the yearly sword fighting competition are held here in Estonia.
What about Spotify? A small Swedish company challenging the entire music industry and eventually winning.
Saxo bank, almost dominating world currency trading and established by a small team in Denmark with a vision.
Recently, I saw the movie "Flow" (nominated for 2 Oscars) made on a budget 20x smaller than a Disney animation - yet superior in every way. Netflix is now actively buying and dubbing foreign language movies - because the US movie industry is so out of touch with reality that they mass produce garbage. Garbage like the new Snow White movie or the tired old Star Wars and Marvel mass produced, million dollar budget, forgettable experiences.
There is a maximum size an effective team can have. I estimate this number to be less than 50 people (there is likely some evolutionary origin of the number in our distant past as hunter gatherers living in tribes). But goodness, you can get a LOT done with 50 people - much more than most large, bloated, greed driven organisations.
Greed can't do this - because greed is lazy and only thinks short term
Call to Arms!
I think the time has come to shed our complex ideas about how to build software. We need to return to the basic building blocks. Some of the greatest achievements of humanity was done with simple tools wielded by talented people. People who could work together effectively because there wasn't some asshole among them that saw everything as a zero sum game.
The talent and personality types that can pull off bravery based development is limited. But worse, it is fragmented and partitioned by "religious wars" about things that ultimately don't matter.
Examples:
How many Web frameworks do we need? Can we make meaningful interfaces with a minimal amount of Javascript if we were willing to accept simpler, but easier to learn and maintain, interface frameworks? Should we put our effort into improving the HTML/CSS standards to better support the core use cases that web frameworks are trying to solve with their needless complexity?
Do we really need yet another markup language? XML, JSON, YAML, etc... Who wins from introducing these new standards and constantly creating new frameworks?
How many Linux distros do we need? Are we better off pooling our knowledge and coming up with a Linux distro (and windows manager) that can once and for all kill off Microsoft and dominate both the server market and the laptop / gaming market.
How many goddamn layers of fancy abstraction does your CRUD application need to do what it needs to do?
How often do we actually need distributed state management? Are we better of improving databases with whatever state management feature you feel you are missing (example: tables that act like queues). On that note: Is the introduction of message queue like Kafka really a patch on top of previous, bad architectural choices instead of real innovation? How stupidly complex does your app have to be to need a message queue vs talking to a database that is highly available?
Do you really, really need to scale out your application and introduce all the complexities of distributed computing when you can buy a 128 core CPU for almost nothing. 128 cores is a stupid amount of compute - enough to run even the most complex, revenue generating applications.
Are many of the so called "large scale compute problems" even worth solving for your business or are you just employing an army of data analysts because Gartner group told you it's cool? Are you storing data in complicated, tiered services because the cloud vendor is screwing you on SSD pricing?
How many services do we actually need a cloud vendor to provide? Is it even in our interest (as a civilisation) for a cloud vendors to also be able to control what services should exist? Is it reasonable for every cloud vendor to have their own key/value store and caching services that cannot interoperate with each others? Should it even be legal to make a moat like this around your services? How hard is it really to just use an open source caching layer instead of relying on some AWS, greed developed interface?
The Chinese, with DeepSeek, have shown us that you can build LLMs at a fraction of the cost of a US based, greed development driven company. Have you seen the cars coming out of China these days? Efficiency IS possible - the Chinese are playing Factorio with the real world!
Can Europeans, Africans, South/Noth Americans not do the same?
We need to come together, those of us who still believe in bravery and a world that does not have to be driven by greed. I am not talking about socialism - I am talking about being a decent human being with dignity.
Summary
I have to stop for today - before my anger tantrum gets any worse.
Do you feel it in the air too? We, the IT industry, are at a crossroads. We are angry, we are frustrated and we are tired of the greed driven development that has taken over our profession. The bloatware and false promises being mass manufactured in Silicon Valley is beginning to resemble the rubbish coming out of Disney's movie studios.
What happened to good, old fashioned craftsmanship? What happened to the pride of building something that lasts? Artefacts that delight users - instead of just satisfying their need to consume?
I have hope - not a feeling I experience often. As the US empire crumbles in the feeble hands of a lunatic, we can take back our industry. Capitalism is over. Perhaps, with a little push in the right direction, Greed will die with it.
We have seen how small teams, bravely engaging with complexity, can build great things. We need to take a deep look at how we build software. It is time to slice right through the fake complexity that the tech giants have created to keep us in check. We might not make as much money doing it. But we will go to our grave being proud of what we did in this world - leaving it a better place for the next generation. The only way we will achieve this, is by engaging in bravery based engineering - make BETTER things than the Greed driven developers are capable of making... Because Greed has bugs that we can exploit...
To be continued...