As a general disclaimer, the statements provided below are my opinion alone and do not necessarily reflect the opinion of past/present/future employers. If you are interested in seeing the accompanying presentation, click here
Why should you bother listening to what I have to say? If you asked yourself this question then I’ll get into that shortly; if you didn’t ask yourself this question then you really had nothing better to do with your time. However, to give a few reasons as to why you should at least take some of my thoughts into consideration:
In terms of how long I’ve been coding for, it’s been a while. I first got introduced to simple HTML/CSS websites when I was about eight years old and have been generally programming since. Without completing a semester of university after graduating high school but, instead, self-studying as well as doing crazy stunts at hackathons, I’ve cultivated a career for myself as a software developer. The first part of my career was focused on developer tools, whether that’s helping folks write their first program at Repl.it to helping folks write their hundredth program at LaunchDarkly. A few years ago I shifted into writing software to help fight crime ranging from building a tool that caught six-figure fraud rings to identifying the Russian military in Ukraine with facial recognition.
The goal for this material is to get you [the reader or audience] galvanized about creating software and perhaps to also agree with me that we’re collectively not doing enough with software. With this I hope to improve your enthusiasm to work in software and to keep crunching away even through the dreary tickets or dreary phases of your careers.
What’s the problem with software? Well, it can be rather mundane and technical. Unlike other applied sciences, you don’t result in some tangible physical product of your work and, unlike other writing domains, you don’t sound smart when you read what you wrote out loud.
So, what even is the value of software? From afar it can be easy to look at the field as a lazy profession for 20-somethings who want to work from cafes while eating avocado toast. To understand the core value of software let’s compare creating a website to running a lemonade stand. In order to make a new cup of lemonade to serve a customer, there’s the cost of the lemons you’re squeezing and the cost of the cup you’re handing to them. In order to create a new instance of a website, you just open a new terminal and enter the run command again. Without getting reductionist about the energy costs, it’s effectively a cost-less operation to create another instance of your code.
When you combine the ease of reproducing software with the capability to reference other documents within documents (ie Xanadu links or anchor tags in HTML), it becomes easy to see how and why the internet grew so virally in the early days; the same goes for social platforms that, through the same no-cost reproduction of software, were able to capture tremendously large audiences in a relatively short amount of time (ie Instagram or Tik-Tok).
Marc Andreesen famously dubbed the phenomenon of software products rapidly growing and providing value in various industries in an essay where he declared that “software is eating the world”. It’s self-evident to see the point being made when you observe some of the apps that hold a critical importance in our world. In healthcare, rather than dealing with filing cabinets and rolodexes, hospitals can use MyChart to make much of the doctor/patient engagements an easier process. In education, educators have a motley of available products including Canvas which encapsulates many of the operations of a classroom into a website. As a last example, ask yourself when was the last time you bought something online? Isn’t it funny that just 20 years ago you would not have had anywhere near as much available stuff to purchase online as we do today?
Be that as it may, I would disagree with Andreesen’s optimism and hold a more Thiel’esque view that software has not eaten the world enough. Instead of a software renaissance that’s been a pipe dream since the early cyberpunks, one notable difference in software development between the days of the dot com bubble and today is that, back in those times, if you had a web application that was fine except for a bug that affected one in a million users where the “solution” was for them to simply refresh the browser tab, it would absolutely not get released until that bug was fixed (what some of you may recognize as “waterfall development”). Nowadays we are living in this sort of “eternal beta” where it’s sort of expected for a website or app to break at times and require a couple refreshes in order to get it working again. Out of an eerie collective masochism we abide with shitty software in the world around us.
It’s easy to point at problems that seem larger than us and hold a perception that accomplishing big things with software on your own is an unattainable goal; this couldn’t be further from the truth. Consider the is-number package on npm which is a software written by one guy and downloaded over 60 million times a week. Or, for an example of something people interacted with, Flappy Bird was developed by one guy and reached almost 100 million downloads before shutting it down. As a last example to showcase that tremendously impactful things people still interact with can be cultivated by an individual, it took the guy ten days to write the initial version of JavaScript. Despite how convoluted you foresee a project to be, you can actually accomplish a lot with nothing more than a bit of clickety-clackety on your keyboard.
Rather than be a stereotypical New Yorker and complain with only lofty ideas as solutions, I’d like to present what I consider to be inspiring pieces of software. Obviously, we can get semantic about where it begins but I’d like to showcase the “memex” as being the first instance of cool software. Described in an article for the Atlantic by the guy who spearheaded the US’s research and development during the second world war, a memex is a concept of a cognition augmenting writing desk. The way it’s described to work is you’d be sitting at your desk writing a document and microfilms would display around your text with media about topics related to what you’re currently writing about. As an example, you could be writing an essay about beef and there’d be a microfilm display showing cows, a microfilm display showing hamburgers, and a microfilm display showing Drake.
To understand why I consider the memex worth noting I’ll be drawing in a principle from martial arts. When working with a weapon like a staff or sword or nun-chuks, you’re supposed to not think of it as a thing in of itself but as an extension of your body and movements. Likewise, I think good software more extends people’s capacities than gives off the impression of being a clunky swiss army knife with animations. The memex is a phenomenal example of this because the microfilm displays are supposed to update whatever they’re showing as the material you’re writing changes and should generally give a seamless experience.
Bringing us back to contemporary software, three more examples of inspiring software I’d like to highlight are Darklang, Google Squared, and TempleOS.
Darklang is a VC-backed programming language developed by one of the co-founders of CircleCI, a developer tool written in Clojure, with Darklang being written in Ocaml then refactored to F#. From the use of LISP and ML-like languages alone you should already see that this guy is a programmer’s programmer (like how some consider Andre3000 a rapper’s rapper). The two brilliances of Darklang I want to point out are its editor and its deploylessness. Their editor, unlike regular programming frameworks which consist of a salad of folders and files, is an in-browser canvas which enables developers to cluster related parts of code together visually as opposed to sharing a directory. As an end state, you could have a “codebase” look more like a geographic map of the different modules with database methods being defined in the geometric center and multi-factor authentication being handled in a block on the northwest corner. Their editor, in conjunction with their custom programming language which is syntactically similar to Haskell, all tie together with a real-time parser where a change from a single keystroke can get compiled and deployed in near instant time hence making it a “deployless” web framework.
Like how Thiel regards Girard as being a figure people won’t appreciate till 25 years after his death, I believe that Darklang (which like Unison web lost its momentum too soon) is a project people won’t appreciate till much later than its conception. The visual canvas-based editor provides a far more intuitive representation of codebases than whatever AI-chatbot assisted text editors today could. Additionally, the deployless characteristic of Darklang wipes clean one of the largest common points of friction that’s shared by developers everywhere. AST-based editors and backlinks in note-taking softwares have shown some similar themes but I think Darklang is simply ahead of its time and we won’t see something similar flourish for an unfortunate amount of time.
Google Squared, in my view, is the saddest project that was killed by Google. In order to convey what made it magical, imagine for a moment the difference between solving a jigsaw puzzle versus solving a rubick’s cube. The former is a very flat and linear way of manipulating a problem whereas the latter is a more grokkable and dynamic way of manipulating a problem. This is what Google Squared offered for their search; rather than a single text input with a single dimensional list of “results”, you’d be able to start with a query and then engage with a spreadsheet of results. Suppose you entered a query looking for cars, you’d then be greeted with a spreadsheet containing rows of different cars where the columns denote different attributes (such as color or manufacturer). When you add a new column (i.e. number of wheels), it’d populate the new column with values corresponding to each row. And, like other spreadsheet software, you can manipulate the table in various ways that help distill the search results you’re given by Google.
Whether or not you’re cynical about the advertised potential of chatbots and LLMs, it’s worth noting that after the introduction of ChatGPT to the world, many alternative natural language products have surfaced in the market. It’s as though we collectively desire a tool that helps us feel as much dominion over data as the computers we’re using do and we will continually strive for a solution that works. I’d assert that Google Squared solved this problem more proficiently than today’s solutions do but scrapped the project due to B2B SaaS not being as mature as it is today as well as it being difficult to succinctly describe the immense value Google Squared was providing.
Lastly, TempleOS. Similarly to the previous examples I gave, it was a piece of software that extended the user’s capacities. Unlike the other examples, the larger picture that TempleOS was augmenting people towards was less about productivity and more metaphysically oriented. Aside from being legitimately a technically impressive feat in terms of the stack that Terry Davis implemented, Terry also gave the interesting prompt that if something is randomly generated in an air-gapped environment assuming God doesn’t play dice, are these “random” occurrences indicative of something greater?
If your initial critique of TempleOS is that it is too focused on Christianity and should instead be focused on some other religion, you’ve already understood the significance of the software. In a world where most software is either for capturing your attention (social media) or freeing up your attention (email clients), it’s refreshing to encounter programs that find more ontological value in the code they’re writing than simply being a beefy calculator. The same way folks can find excitement in the mission of the company they’re working for (such as connecting the world at Meta), I think there is value in software that can itself encapsulate similar semantic value to a company’s mission.
While we’re uplifted by cases of inspiring software, let’s pause to humble ourselves with some of the disappointments of contemporary software. Starting with two exploits that should make you wince with cynicism towards what we can expect of software developers out there:
The first is an “XML round trip” exploit. Some of you may be familiar with the 800-pound gorilla standard for enterprise auth, SAML, and some of you may also be familiar with what a SQL injection attack is. For those that don’t know, SAML’s not a library or framework but, instead, a standard that can be implemented in the language of your choice (it’s all just XML handling under the hood) and a SQL injection attack is when you provide a malevolently structured input to a program that directly runs that string without formatting in a SQL database (ie closing a string and sending a request back to your computer with admin credentials in the payload). If you can at least grasp those topics conceptually then you’ll understand the basics of what an XML round trip attack means for SAML. It’s so stupid really. You take a complicatedly structured XML response from an identity provider, introduce comments in specific locations, and now you can authorize yourself to view all resources on the application’s server.
Even though it affected a concerning number of programming language ecosystems with faulty XML parsers and got patched after discovery, there’s a reason I bring up this particular exploit. It’s easy to scoff at SQL injection attacks as being the product of work done by a novice programmer; after all, many CTFs and beginner cybersecurity courses will feature SQL injection in their early materials. The reason I bring up the round-trip exploit as something noteworthy is because SAML isn’t the work of a barebones PHP website with Postgres, it’s the standard for enterprise auth (go to any SaaS website and you’ll often see SSO as a feature that’s contained in “Contact Sales” level pricing tiers). Many like to remark that an advantage of open source is that many eyes looking at the source material will spot more security issues, here we have not a convoluted codebase but a rather simple problem that had severe implications for the security of large organizations as well as institutions.
The second exploit is the xzutils vulnerability which is a recent story that only so much is known about or revealed to the public. xzutils contains a suite of tools used for data compression (like ZIP’ing folders or files) that’s a rather popularly used software in systems around the world and, of course, having a backdoor in this tool would grant you a backdoor to almost any computer you’re interested in. Here a guy effectively went through a three year cyber-undercover operation as he secretly inserted his malicious files into an open source project which made it to being packaged and released to unsuspecting users. One funny thing in this story though is the way the backdoor was discovered; some dude at Microsoft was annoyed some tests were running slow and dug so deep into sub-dependencies he discovered what’s potentially a state-actor level attack.
We can put a tinfoil hat on and speculate about the number of uncaught open source backdoors that are still out there but I think there are at least two important drawaways from the story of this exploit. First, this was the working of a single Github account so, regardless if it’s state-backed or not, you can never make the excuse that the work of a single developer won’t be enough. Admittedly, if you ask yourself “who would want to be able to install a backdoor on nearly every computer in the world?”, it becomes sensible to consider this being the work of a state-backed entity. So the second takeaway is, even if people around you are exclaiming that certain areas in software are solved problems, folks are still making strides in the data compression field.
To finish this humbling of our expectations of software I’ll include a joke - some folks used to claim that the reason for stupid people in the world was due to a lack of information yet we’re in the 21st century and some out there would still agree that four out of three people struggle with fractions. Just because Shopify and no-code tools exist for those too lazy to actually learn to code doesn’t mean you yourself should inhibit your perceived capabilities in terms of what you can deliver.
Now, pivoting back to finding reasons to be excited about software, why should we hold an optimistic outlook despite all the flaws in technology? For the past 150 years we thought we were at the end of capitalism and the earth kept on spinning; people have also been complaining about how technology will ruin the environment for over half a century now but the earth kept on spinning.
Regardless if we reach a point where things can be regarded as “finished” with nothing left to invent, there’ll be something new around the corner. Look at telephones as an example: after inventing portable phones that fit in our pockets it would have been easy to regard it as being the limit since having continuously available real time communication with other people is pretty awesome on its own but smartphones still entered the scene and life will be forever changed as a result. To grok how much smartphones have changed our lives, the next time you’re on public transportation count the number of people in your car that aren’t either actively on their phone or clutching their device in their hand then consider how different this reality is from how it would have been a mere thirty years ago.
Thinking in terms of lower and upper bounds, I’d make the assertion the floor in terms of what software is capable of is incredibly high. To prove my point, look at Blackrock’s Aladdin. It’s a financial management tool that oversees tens of trillions of dollars of assets under management, meaning there exists a button on someone’s Aladdin dashboard somewhere that’d be able to effectively topple an entire nation state’s economy in a move similar how Soros wrangled the Bank of England in the prior century. Therefore, the floor for what can be compressed into a single React component in a UI is the punch of a nation state.
Realistically, one’s career will not consist solely of moonshots or ambitious projects. So what can one remember to keep themselves enthusiastic even through the dreary parts or dreary tickets? By this point, you should hopefully agree that technology has shown itself to tend towards improving over time, however, a proof by examples doesn’t necessarily prove that things’ll improve in the future outright. What I’ve outlined so far is a view of history as a timeline of significant events being the ones where new technology or innovations occur - starting with the invention of agriculture, the invention of the locomotive, then the invention of the internet and so on.
This view differs from the more contemporary Western perspective where history is a timeline of significant events being the ones where socio-economic changes occurred such as the dialectic of government structures (anarchy to feudalism to democracy to republic) or civil rights and women’s suffrage. To play devil’s advocate I’ll admit that an argument that justifies paying attention to this is that, thirty years ago, people would have anticipated flying cars to come before gay marriage and 200 years ago people would have anticipated flying cars to come before the emancipation of slavery.
But, building on top of the abstraction of “views of history”, I’d like to propose one that more deterministically assumes that technology will continue to improve - looking at history as a “spillover of the rich”. If we take a moment to appreciate some of the modern luxuries we may be taking for granted, we’ll see that a lot of things we accomplish with the swipe of an app (ie getting food prepared/served to me, being able to hear any song I want at any moment, requesting an entire home be available for my stay) are things that would have been accomplishable to aristocrats hundreds of years ago with the swipe of an ornate staff. It may be a bit clearer to visualize when you notice the number of SaaS products that are really multi-tenant implementations of tools that exist internally in bigger tech companies (ie Sourcegraph service-ifying code search which is something that was built/managed internally at Google and Facebook).
For a more economical perspective, one can observe that the production of goods and services tends to become more efficient over time (whether or not you believe it’ll reach the Schelling point or in the efficient market hypothesis is irrelevant). So, with the axioms that the wealthy prefer whatever the upper echelon of lived experience is and that whatever the wealthy are presently enjoying will eventually become attainable by the general public, this cybernetic loop of life improvements emerges. In simpler terms, improvements which tend to occur throughout the entire stack of production of things result in cascading effects which improve our day-to-day lives. So, with that all bundled up and this vision of stuff improving regardless, what then is the case for “accelerating”?
There are plenty of historical examples of contemporary technology being a critical component of key events in American history ranging from the 30-minute battle of New Orleans (where Andrew Jackson utilized the military technology of their time to wreak havoc on the British Army’s poorly executed attack) to the capture of Osama bin-Laden (where Palantir is technically only rumored to have played a role but, come on, feel free to make your own conclusions). An important principle (to which I’ll credit to Palmer Luckey’s presentation at the All-in Summit in 2022) is that you cannot wait for some topic to become the “current thing” before working on it, especially when it comes to critical infrastructure and defense (which, obviously, is given as a talking point for Anduril). In a world where the news never forgets to remind us about all the chaos and conflict going on in the world, even if some bullet points may be exaggerated due to political bias, let us not forget that we live in a global stage where not everyone is looking for a peaceful outcome.
Admittedly, suggesting that we should be the best is a fairly easy claim to assert or accept, so what about an explanation of techno-accelerationism that better condenses the ideas being encapsulated in it. To start, let’s give an explanation as to what I mean by “accelerationism”. Before I dive further, I ask you to be able to separate art from the artist as some of the subjects I’ll be discussing aren’t necessarily the most HR-friendly.
Colloquially, “accelerationism” is a topic that was popularized by a bloke by the name of Nick Land. He was an early contributor to the CCRU, a philosophically cyberpunk crew of postmodernists who sought to question how society plays out when more science-fiction becomes non-fiction (in the late 20th century, everything that was considered science fiction in the prior centuries was then an available technology, much like how already some of the science fiction of the 20th century is available technology today). An example from their early works being the subject of xenofeminism which explores the way relationships in society change when artificial wombs are a more commonplace technology.
Nick Land, of course, took this idea and applied it to capital and considered it itself to be an AI that, rather than lead toward collapse as Marx asserted, would lead toward a singularity in which all shit hits the fan. In various communities and forums of thought, people have extended the concept for different “schools” of accelerationism but one of the more accepted ones you’ll encounter would be e/acc, a meme based on effective altruism. But the ideal I’d like to present to you is techno-accelerationism, or t/acc if you really want to say that.
Techno-accelerationism: the view that we should not inhibit the progress or innovation of software but instead accelerate it. For if every task that’s accomplishable with a paper and pencil is accomplishable by computer as well as vice versa, why must we willingly inhibit our efficiency as a species?