On a lark, I created better looking welcome emails and forgot password emails with the phrase “Engineered Wealth” as part of it. Ultimately, I’m creating a platform, and my early customers are friends that I’m helping to create wealth for. The awful aspect of early retirement is that it’s lonely as a bulk of your friends are unable to spend many nights playing board games. Board games are life! The open question is whether the wealth I’m building for my friends is more broadly applicable, and this has me thinking about my ideal customer profile.
The first quality of my ideal customer is anyone that wants to enjoy their life, but this is a bad profile qualifer since that is a value judgement proposition. Ultimately, people’s individual values determine their concept of wealth as everyone is playing various games. Instead, the wealth that I care for is reliability, stability, and always making forward progress. The boot’s theory is a particular view on wealth that I subscribe to..
The reason that the rich were so rich, Vimes reasoned, was because they managed to spend less money. Take boots, for example. … A man who could afford fifty dollars had a pair of boots that’d still be keeping his feet dry in ten years’ time, while a poor man who could only afford cheap boots would have spent a hundred dollars on boots in the same time and would still have wet feet. Discworld
I’ve always liked this theory on wealth, and I’ve stuck with it. Buy good things that last, and your needs are taken care of for a long time. As an example, when I build my computer, I go all out with the “best” components with the most data available. My rigs tend to last years (my last machine lasted for seven years and is now a basement server), and I’m not chasing any upgrades nor paying attention until a game becomes worth the upgrade. Most importantly, if I can’t afford it, then I stay right where I am. This is one reason why Apple products dominate with the wealthy (beyond the status signal) because they work in the most common (and human) scenarios very well.
We can contrast Apple to the configuration-heaven (or hell) of Linux where various distributions work with a number of limits and quirks. The phrase “you get what you pay for” rings true. Things that don’t work as expected are not assets; instead broken things are liabilities. It then is no surprise that Apple is worth so much. Although, it is surprising their AirPod business is worth $200+B… geez.
Unfortunately, the engineering and developer culture is rooted in the Linux mindset of unlimited configurability, ultimate power, and the power user as king. At first, this seems reasonable, but it makes the ecosystem garbage that barely works.
The modern platforms, frameworks, and tools feel like building on sand. The targets are ever changing. The free tools break on upgrade. There is no shortage of complaints around npm. We invent more complexity to handle accidental complexity. Engineering teams only grow until some layoff event, and managers are more than happy to empire build. Rewrites happen all too frequently for too little payoff. Services get bought, degraded, defunded, put on life support, or turned off. Sand castles built on sand castles.
But, what other choice is there?
Inspiration for me comes from Excel. It’s kind of amazing that an Excel spreadsheet from 1998 will still work today. That’s 25 years of something working. And Excel is no joke either as civilization would fall without spreadsheets. In my opinion, Excel is the best application for achieving the bycicle for the mind.
When we invented the personal computer, we created a new kind of bicycle…a new man-machine partnership…a new generation of entrepreneurs Steve Jobs, c. 1980
The Infrastructure that powers our products is expensive, complicated, shockingly brittle, and requires constant upkeep. Where is the Excel for internet applications?
That is my ambition with Adama: Adama is Infrastructure that Just Works.
Following the Bezos’s insight of not focusing on the future, and instead asking “What’s not going to change in the next 10 years?” is a crucial philosophical mindshift. I resort to thinking like a mathematician which will raise the bar on Bezos’s 10 year limit. Instead, I’m asking “what isn’t going to change in 100 years”.
This is at the heart of every decision I make with the Adama language (and platform). This requires thinking simple which is a rare skill because it requires deep understanding rather than following recipes. Yet, I can provide examples.
Every language has division, and at the same time has incorrect semantics around division by zero.
Does it throw an exception?
Does it give that special NaN value?
Doesn’t matter because both answers are fundamentally wrong.
Yet everyone that does algebra in school learns to annotate their answers with some kind of note that the expression is true except for certain values.
In Adama, division by zero returns a maybe<double>
type indicating that the developer needs to think about that special case.
Similarly, the sqrt function returns a complex
number which then forces the developer to handle the imaginary case.
These decisions, I can comfortable say are going to last for hundreds of years.
Beyond simple mathematics, this philosophy applies to index validation in a list where looking up an element by index returns a maybe rather than an exception or invalid type.
record R {}
table<R> tbl;
public formula first_thing = (iterate tbl limit 1)[0];
In the above example, the type of first_thing is a maybe<R>
.
Within the Adama language, using this value requires checking whether or not the value exists.
This forced discipline is the answer to null references being a billion dollar mistake.
However, the importance and wealth is derived from the stability of the concepts. Are tables going anywhere? Is the desire to get the first element going anywhere? Are there any hidden edge cases that will require attention? Can this be broken?
So, every aspect of Adama is being considered from the lens of whether or not the idea is correct for hundreds of years. This long term thinking creates wealth for developers because they can focus rather than be distracted by some random fire due to some unknown.