Going Back to Go Forward
Building tools at the applications layer.
Last Friday was my last day at DXOS.
Before I talk about what's next, let's talk about what got me here.
Four years and ago, I penned the following words during a personal "career checkin":
The first twenty years of my career have been ruthlessly practical: what allows me to most productively prototype and build products for end users?
Over the next twenty years, I want to build tools that extend the core capabilities and interfaces of the computing devices themselves.
This checkin marked a career turning point. For twenty years I had bounced back and forth between consulting and startups, building early-stage software products and learning the art of software adoption. It was a lot of fun, but I was feeling the commercial constraints of that world and I sensed there was more to making better computers than maximizing SaaS rent extraction.
How might I free my thinking from optimizing for market size? The path seemed to be marked by a glowing sign pulsing the words RESEARCH.
Moving Forward the Future of Computing
I studied computing history, read classic papers, met pioneers and researchers, and wrote more prose than code (browse my research notebook). I started to develop my imagination about what computing could be come. A year later, I started this very newsletter to chronicle my learnings and share them with others.
Over the next four years, I worked on a variety of "future of computing" projects: Croquet, Fission, Daylight, and most recently, DXOS. One central lesson I learned across all of these projects is that innovation in tools is constrained by the underlying primitives: the protocols, programming languages, and platforms that the tools are built upon.
![Layers of Software: Protocols Programming Languages Operating Systems / Execution Environments Libraries Platforms Applications Scripts](https://assets.buttondown.email/images/453ec7e4-9a04-48b4-9617-7ab24d729711.png?w=960&fit=max)
At Croquet, Fission, and DXOS, we worked to bring new primitives into the world: multiplayer data structures, decentralized identity, malleable data substrates. These innovations are critical to enable the development of the new tools I was most interested in. Understanding how the new primitives work, what they enable, their limits, challenges, and opportunities helped clarify the path from today's computers to the computing environments of the future.
But as I worked on these projects, my mind would drift to the tools and the tool users. There was a tangible feeling of being a step removed from enabling someone to use a tool to solve a real problem in their lives. Andy Matuschak calls this a "serious context of use".
A year or so ago, I formalized my long-term career objective as discovering and disseminating generalizable insights. A critical step in that process is "observing serious use of the system":
This implies that the system that is built is actually useful for solving a real problem. In other words, it has to serve an important function with a context of use. People have to want to use it. Building a system that is not merely a research prototype, but is being used in a way that can lead to deriving generalizable insights is challenging and requires a tool-maker mindset.
The insights that I'm most interested in testing in a real system occur in a layer above Protocols, Languages, Libraries, Platforms: the Application layer.
Back to Apps: Where Humans and Computers Meet
The last few years, I have built dozens of applications with these new primitives. But the applications served primarily to test the lower-level primitives. They weren't an end unto themselves. The applications weren't intended to be used in such a way that you could derive generalizable insights about the usage of the application itself. All of the insights were about the underlying primitives. Building the application was the serious context of use rather than using the application.
Departing from DXOS is a return to tool-building. For this next phase, I intend to build systems with a real context of use at the Applications layer and share what I'm learning along the way.
It's still early days, but computing has better primitives. CRDTs, LLMs, performant p2p networking, cryptographic identity, blockchains. These foundational primitives have unlocked new capabilities at the level of humans interacting with computing systems.
The possibility space has expanded; new doors are reachable in the adjacent possible. And I'm excited to walk through one of those doors.
Going Forward
So, what is next?
I have much to say about next, but not today. It's still congealing. For now, three things:
I'm returning to a perennial passion: education
I'm working with a long-time friend and frequent co-conspirator
We are leveraging LLMs to bring sci-fi to life
If you want to follow along, we are working out loud in this Discord, sharing progress and demos and what we learn as we go.
I hope you will come along for the ride!
ICYMI: Stuff I've worked on
My talk from Local-first Conf, Local-first Software and Interoperable Applications is up on YouTube. It's a shorter, tighter, and (I think!) better version of the talk I gave in Vienna at Effect Conf.
At Local-first Conf, I was struck by a few industry-wide challenges and I elaborated on them here: 4 unsovled problems for Local-first Software. Partial Sync, Permissions, Schema Migration, and a Generic Sync Server.
The Open Canvas Working Group has been making progress on the spec. A few people have done demonstration implementations, and we're working through the details in our recent meetings. Next meeting is next Tuesday!
Recently Read
In The Art of Training Young People, Benjamin Parry chronicles the rise and fall (and perhaps rise again?) of the apprenticeship pattern. A modern apprenticeship has the potential to be a massive lever for young people starting out their careers. I hope to see more people experimenting in this space.
What We Learned From a Year of Building With LLM is saturated with practical advice from practitioners deploying LLMs in production. For someone just jumping into the space or for an old hand, this piece is loaded with distilled wisdom, the kind that you only get by doing the work. I'll be returning to this often in the coming months.
Glimpses of the future
Websim is the Al toy that might just stumble into something big. The concept is simple: type in a URL to a "fake browser" and an Al will purposefully hallucinate a website matching the URL and display it for you to browse. To get a taste of the flavor, browse Websim's twitter account, pop into their vibrant, fun-loving Discord, or just try it out for yourself and see what madness you can conjure. I'm certain something interesting will emerge from this milieu, but at this point it's anyone guess what it might be. It's one to watch.
There were many excellent talks at Local-first Conf, but Maggie Appleton's Home-Cooked Software and Barefoot Developers is a visionary talk that beautifully illustrates my dreams for computing. I won't be coy; I was moved to tears. The talk develops through hand-drawn slides, a plethora of suggestive examples, and a compelling arc to deliver a core message: "users should have agency and ownership over their data and software." I will be using this talk to explain to friends and family what it is I do and why I do it. And for me at least, the talk accomplishes it's core goal: I want to do the work to make this vision real.