Golden Age
Part I
In the Bronze Age, you wrote software in Perl and C++ and uploaded shared apps and modules to SourceForge – malware and all. You ran a blend of vendored, open source, and custom software on Dell servers in your I.T. closet connected to a T1 line. It took forever to add features, maintain the database, and deal with scaling.
One day you wake up and realize that your servers are expensive, your software has more bugs than features, and you cannot take a vacation because nobody knows how it works.
In the Silver Age, there were businesses that offered to provide your business with Software as a Service. No more servers and no more software! Teams of product managers decide exactly what you need and serve it directly to your browser. No need to waste time on adding features, fixing bugs, or dealing with scaling. All is provided by the platform.
One day you wake up and realize you are living in the North Korean branch of the United States Postal Service. The software is slow – when it is online, and the only features you can access are the features that are also compatible with every other customer on the platform.
In the Golden Age you are given an army of AI agents. They work while you sleep. During the Silver Age, the chip gods perfected their form and have made 60 zettaflops available to mere mortals. You can have whatever software you desire. Each day the models get better at making new models. Programmers express their designs to the agents that produce systems in days instead of months. You add new features in minutes. When your servers are on fire, your agent diagnoses the root cause in seconds.
One day you wake up and realize you are constrained by your ability to make yourself legible to capital.
Part II
I’d like to share some high-level details of the systems we are building at C5R CORP. We have our own Git Server and Job Scheduler – among other things. So far things seem to be just working. Before you tell me about NIH, don’t worry, I know all about it. I may even have a mild case. But I love software and I want to use software that sparks joy. I want systems that never fail, are always fast, and do things that make sense. I feel none of these feelings when I configure GitHub Actions or administer Kubernetes and Docker.
Finally, one little caveat: I am painfully aware of the agent’s struggle. Nevertheless, agents automate a tremendous number of daily software tasks. They routinely compress days into hours. I don’t delegate my thinking and design (yet) to the agent gods; I carefully craft schemas, designs, and data flows and then let the models rip:
Git Server
- Rust server that wraps Git, git-http, and Postgres
- Basic pages load in < 50ms and hundred-thousand-line diffs load < 200ms
- Server-side HTML rendering
- Expensive pages get cached in Postgres
- Testfile
- Each directory may contain a Testfile
- Each Testfile has a list of commands
- Commands are run when the directory contains changes
- Test servers
- Use our company’s Job Scheduler to run the tests in < 50ms
- Horizontally scalable
- Benefit from our Job Scheduler’s build cache
- Code review discussion and comments happen in Slack
- PTAL button starts a new thread
- LGTM/Request Changes updates Slack thread
- Tailscale authentication and authorization
Job Scheduler
The basic idea is that we have a repo, we have machines, and we want to run programs or scripts from our repo on our machines.
- Core abstractions: Builds, Jobs, Runs, Workers
- Small worker implementations for: Linux, Windows, and Mac
- Linux worker leans heavily on systemd
- Can leverage namespaces, cgroups, etc. via systemd
- Workloads
- Training on H100s
- Scientific instrument controllers on Windows
- Desktop management on MacBook
- Various web services
- Gateway that terminates *.jb.c5r.net for web jobs
- Can isolate our workers away from the internet
- Proxy that monitors all ingoing and outgoing traffic
- Dispatch long lived jobs to control scientific instruments
- When our API serves a request that requires managing scientific equipment (ie mas spec) we submit a new job directly from the API.
- Tailscale authentication and authorization
Conclusion
There are many arguments to make, but it’s impossible to ignore that AI agents are increasing productivity of software developers by orders of magnitude. This must impact ambitions, incumbents, and the general quality of life – hopefully for the better.



