During the beginning of the coding agent expansion, compute was somewhat free to get with the right methods. I decided to finally build the backend project I'd always wanted to build.
I settled on Go for the language. I'd always liked Go because it was easy for me to read whilst also always being in the top ranges for performance.
I realise I'd tried to build a codebase with the functions of an everything machine & a platform as a service at the same time.
It was a monstrosity of slop, inspiration and conversation. I laboured at this for about eight months. It gave me a perspective into modern development and distributed systems, and a large bout of burnout & illness.
It was slop, but slop that taught me things.
During that time, I watched the American TV series Silicon Valley. It was intriguing. It managed to encapsulate the main topics of engineering discussions at the time, especially distributed systems. I realised the goal was to communicate computation.
This led me to INOS - https://github.com/nmxmxh/inos_v1. I explored the limit of performance for a web-based application. I realised serialisation was one of the largest bottlenecks in computation, developed an ABI, worker patterns, lessons and libraries, to allow zero-copy communication between a polyglot of three languages in the browser, using Go, Rust & WebAssembly.
I also have to admit my laziness. I have left a lot of the writing of the relevant documentation and implementation to AI. Writing documentation is a lot, but I also created an educational site for INOS - https://inos-v1.vercel.app/.
There are also experimentations in relation to a potential P2P compute mesh that I find very interesting.
Sorry for my awkward taste and writing.
Foundation - https://github.com/nmxmxh/foundation, was the collapse, the inspiration. I wanted to create a platform I could use to create repeatable, highly performant software that could also achieve device agnosticism.
It works on a simple principle. Keep performance code agnostic, cheap, optimised and separated from domain code. This also meant creating communication patterns, contracts, and an innovative node-local projection plane to escape the bottlenecks of database writes.
It is a system for agents to work in, and one humans could excel in. I wanted the ability to create magic with the software I create, and I imbued that architecture with it.
I implemented methods, enforcement checks focused around industry best standards, and documentation for both human and agent to keep track, stay informed and properly manage these processes.
Much of the documentation is written by the agents themselves. That's deliberate: foundation is built for exactly this collaboration, so the docs are the system using itself.
After deploying my first (test) application with this scaffold, I decided to make it public. I wanted to create something that could stand as a platform for the potential of software.
I would love your honest thoughts on Foundation. I would love questions you would have about building a system like this. But more than anything, I would want your curiosity.
I want computer science to feel like magic again.