As I build a multitude of things, I’m playing a strange game with myself. It may be a bad game that only hurts me. Actually, it’s definitely a bad game which will leave me burned out and in a world of hurt. So, here I am, inventing a new type of cloud, and that should be enough. However, I’m also building a WYSIWYG editor for a new game runtime along with yet another web framework. As a code machine, it’s all sorts of fun, but I’m already feeling the urges to pre-optimize. Finishing any one of these efforts is a herculean effort, so what am I thinking?
Seriously, what am I thinking? I know better than this… le sigh.
I believe I’ve been in a delusional haze, and I need to focus with a long term vision held in mind rather than rush towards it. The delusional haze manifests from ego, and ego is one hell of a drug which makes truth hazy. You really have to cut through why one is doing a task. Am I doing a task to simply demonstrate how clever I am? Am I seeking some high? Am I running away from one set of problems whilst blindly running toward a new set of problems?
At core, I’m leading myself poorly as I’m wandering. The great benefit of wandering is the discovery process, but this comes with a wicked problem of loneliness. As I continue to pursue a life driven more by ars gratis artis, I realize I should bring others along to enjoy and make art. Art is best when shared.
The core question of how to invite others to play is a forcing function because I have too many ideas which will stretch my ability to support them properly. There is too much to explain. The infrastructure alone is hard enough to support let alone yet another web framework, runtime, or editor. These investments make sense if it was just me, but instead I should linearize my support such that efforts can become self sustaining with new leadership. Succession planning is the core leadership game.
However, succession planning fundamentally requires a sustainable business which is repeatable over a long period of time. Business development is getting a priority boost which means I have to start cutting my investments and focusing. I hate this, but I recognize the importance to the long term effort.
Roslin and the WYSIWYG editor are going on the back burner for a long time. RxHTML is going on maintenance mode to support internal tooling since I can’t stand modern web dev. The infrastructure is the business, and now the question is integration and bringing more roads into it.
Since my ultimate goal for 2023 is to make an online board game, I’ll do that with Phaser.js. The ego of “building an online board game the hardest way possible” is only going to lead to despair, so the first integration is with a fairly simple game engine. The beauty of using Phaser is that it has plenty of examples and demos that people can hack things, and all I have to do is help people turn their experience into a multiplayer experience.
The core educational battle is teaching people how to build the backend with Adama and having that “wow” moment. Everything else is noise which I have to tune out.
When I make these cuts, my heart sinks, but I have to think about things long term. The beauty of this is how this shifts my project status:
Item | Prior Status | Change in Status |
---|---|---|
Language | OK | Same |
Service runtime | Good enough for two-three years | Same |
Networking protocol | Great | Same |
Fleet health | Great | Same |
Internal networking client | Good enough for a few years | Same |
Simplified HTTP | Good enough, need to monitor for abuse | Same |
WebSocket API codegen | Great | Same |
SaaS | Good enough | Same |
Ecosystem | Good enough, need to test more failure modes | Same |
WebBrowser client | Meh, error handling needs some love | Same |
AdamaTree and RxHTML | Needs love around error handing, presentations, and more | Good enough; don't need to focus on RxHTML and AdamaTree is great |
Integrated CodeMirror | OK for now, but the UI needs a lot | Work stoppage; not a priority |
Online Debugger | OK for now, but the UI needs a lot | Same, possible higher priority |
Roslin | Just started | Work stoppage; not a priority |
WYSIWYG editor for Roslin | Demo with many limits | Work stoppage; not a priority |
The IDE | Meh, it's something that I can show people | Trim it down for just visual management |
Web Hosting | Need to migrate properties | Need to migrate, and the console tools need a lot of love; it's the main developer product |
Cutting the scope makes me feel a bit sick as I’m killing my ideas which have a sense of minimal beauty to them. However, I can now focus on a smaller set of things and get people involved with the core tech faster. While I believe in a new runtime, it’s too early. I have to embrace the imperfect and accept my roadmap as a staircase rather than a ladder.
Since this image is not readable, the full version is linked here. Maybe this is a dumb way to think, but it’s become more clear now that I can leverage my credibility to support the three efforts as a unified piece of infrastructure. I worked on Amazon S3’s frontend which manages one of the most traffic HTTP endpoints on the planet, so my ability to offer web hosting is credible. The business here is to offer a cheaper and open source version of surge.sh. I architected a hyperscale solution to Meta’s real-time needs, so providing a real-time service is credible. The business here is to provide an easy way to integrate signals into existing products and infrastructure which is also open source. I can provide an open source version of ably or pusher
The gambit is that there is a great wellspring of possibility with Adama sitting in the middle, and the sad thing… the really depressing thing is that I’m not the one to fully explore it. Everything else I want to do is, ultimately, is a toy to amuse myself.
I have my work cut out for me, but I’m excited because I’m closer to the real game rather than some delusional ego trip.