AEOWUN Logo
ZACHARY JOUBERT
ARCHIVE
PRIMARY SYSTEM
ACTIVE DEVELOPMENT

AEOWUN

An autonomous software engineering runtime built to work with real projects, keep track of what is happening, act on the project, and verify the result.

VIEW PROJECT NETWORK
01 THE SYSTEM
AUTONOMOUS SOFTWARE ENGINEERING RUNTIME

Not an IDE. A runtime.

Most AI development tools start with a prompt and try to produce a useful answer.

AEOWUN starts with the software project itself. The runtime keeps track of the workspace, project state, tools, execution, and what the system has actually learned from previous work.

A language model can reason about the work, but it does not get to define reality. The runtime decides what actions are allowed, what state is authoritative, and whether the result actually happened.

That distinction came from actually building these systems. When something goes wrong, adding another prompt usually isn't the answer. Sometimes the missing piece is state. Sometimes it is tooling. Sometimes it is authority. Sometimes the model simply should not be responsible for the job in the first place.

01 PROJECT STATE

The runtime keeps track of the project and what condition it is actually in instead of relying on the model to remember everything.

02 TOOL CONTROL

The runtime controls what actions can happen and how those actions affect the project.

03 VERIFICATION

A model saying something worked isn't proof. The resulting state has to be checked.

AEOWUN RUNTIME ARCHITECTURE
STATE ACTION VERIFY
Project state
Controlled execution
Verified results
SYSTEM FLOW

How AEOWUN works

The model reasons about the work. The runtime controls the work.

01 TASK A task enters the runtime.
02 HOST RUNTIME Project, workspace, and execution state.
03 COGNITION A reasoning provider evaluates the current state.
04 ACTION Tools make controlled changes to the project.
05 VERIFY The runtime checks what actually happened.
06 EVIDENCE The result becomes part of the project's history.
RUNTIME Python
PERSISTENCE SQLite
ANALYSIS Tree-sitter AST
EXECUTION Isolated Workspace
COGNITION Local AI
01A RUNTIME COMPONENTS

The pieces underneath it.

AEOWUN isn't one large model prompt. It is a collection of software components with different responsibilities. A major part of building it has been figuring out which responsibilities belong where.

01

HOST RUNTIME

CORE

Owns the engineering loop. Tasks enter here, workspaces are created and tracked here, workers operate through here, and state changes flow back through the runtime rather than being scattered across independent orchestration paths.

ORCHESTRATION STATE EXECUTION
02

CAUSAL BLACKBOARD

STATE

A shared state surface for execution-critical information. The important part isn't simply storing data. It is making it clear who is allowed to establish, change, or verify that data.

AUTHORITY CAUSAL STATE PROVENANCE
03

SHADOWFS

WORKSPACE

Keeps isolated filesystem state so the runtime can reason about changes without treating model intent as reality. The project can be inspected before, during, and after mutations.

FILESYSTEM ISOLATION STATE TRACKING
04

FOREMAN

CONTROL

Watches the engineering loop for behavior that looks like repeated failure rather than progress. Autonomy without a way to recognize that it is going nowhere is just an expensive infinite loop.

LOOP CONTROL FAILURE DETECTION PROGRESS
05

STEEL THREAD ANALYZER

ANALYSIS

Traces failures through the project instead of stopping at the first visible error. The goal is to find the part of the system that actually caused the problem rather than repeatedly fixing symptoms.

FAILURE ANALYSIS TRACEABILITY ROOT CAUSE
06

VERIFICATION

EVIDENCE

Separates "the system says it worked" from "the system can show that it worked." Verification is treated as its own responsibility instead of being another optimistic response from the same component that performed the operation.

VALIDATION EVIDENCE TRUST BOUNDARIES
02 OTHER SYSTEMS

Other Projects.

Different problems, different environments, and a lot of experimentation. Most of these projects taught me something that eventually showed up somewhere else.

01

A programming environment I started because I didn't want to relearn everything I already knew every time I picked up another language. The system is built around transferring concepts I already understand into a different language and identifying what I actually need to learn.

PROGRAMMING EDUCATION SIMULATION ADAPTIVE LEARNING
02

A local network monitoring and containment system. It started with wanting better visibility into what was actually happening on a network and grew into experiments with discovery, device identity, persistence, DNS policy, traffic observation, and automated containment.

NETWORKING MONITORING CONTAINMENT
03

THE APOTHECARY

EXPERIMENTAL

An experimental simulation built around alchemy, interconnected systems, and world-building. It is less serious than the other projects, but it is still another exercise in making independent systems interact and seeing what happens when they start producing consequences for one another.

SIMULATION SYSTEM DESIGN WORLD BUILDING
04

WRENGO

SHOPOS

An industrial shop-management system built around actual shop workflow rather than a generic CRUD application. It deals with persistent work orders, vehicles, technicians, reactive state, and the practical problem of making software fit the way work actually happens.

ANDROID WORKFLOW DOMAIN SOFTWARE
03 ENGINEERING

Build it. Break it. Figure out why.

A lot of the architecture here exists because something broke, behaved differently than expected, or exposed a problem I hadn't accounted for yet. I don't think failure is particularly interesting by itself. Figuring out what the failure says about the design is.

When something doesn't work, the goal isn't just to patch the visible symptom. I want to understand what assumption was wrong, what responsibility was in the wrong place, and what the system needs to do differently next time.

01
AUTHORITY MODEL

Causal State Authority

One of the problems I kept running into was letting too many parts of the system change important state. If everything can declare something true, eventually nothing actually means anything. AEOWUN therefore gives execution-critical state explicit authority.

# ccb.py

if key.startswith(("truth:", "execution:")):
    if role not in [
        ROLE_SYSTEM,
        ROLE_TRUTH_WITNESS
    ]:
        raise ValueError(
            "AUTHORITY_VIOLATION"
        )
02
PHYSICAL COMMITMENT

Verified Mutation

One of the easiest mistakes an AI system can make is saying it did something when it didn't. AEOWUN doesn't treat a tool response or model response as proof. It checks the workspace and compares the resulting state.

# shadow_fs.py

def get_hash(self):
    hasher = hashlib.sha256()

    for key in sorted(self.buffer):
        hasher.update(
            data["content"].encode()
        )

    return hasher.hexdigest()
03
MODEL BOUNDARY

Don't Make the LLM Do Everything

Some problems are reasoning problems. Some aren't. I found that pushing deterministic work into a language model created unnecessary failure modes. Parsing, symbol lookup, structured manipulation, and other repeatable work belongs in software when software can do it better.

# deterministic work

parse()
index()
validate()
execute()
verify()

# model
reason()
04
STRUCTURAL ANALYSIS

Tree-sitter Instead of Guessing

Once a project gets large enough, searching strings isn't enough. AEOWUN uses structural parsing so the runtime can reason about declarations, symbols, relationships, and source structure without pretending that source code is just text.

# source structure

SOURCE
  └── AST
       ├── SYMBOLS
       ├── REFERENCES
       ├── CALLS
       └── RELATIONSHIPS
05
FAILURE CONTROL

Stop Doing the Same Thing

Autonomous behavior needs a definition of failure. Otherwise a system can continue taking technically valid actions while making no actual progress. AEOWUN watches for repeated failure patterns and treats lack of progress as a runtime problem.

# conceptual loop

observe()
reason()
act()
verify()

if no_progress:
    intervene()
06
ARCHITECTURE CORRECTION

Sometimes the Fix Is Removing Things

A recurring lesson has been that adding another manager, another state machine, or another recovery mechanism can make a system worse. Some of the hardest engineering work has been consolidating duplicated responsibilities and deciding which component should actually own the work.

# fewer authorities

HOST RUNTIME
      ↓
WORKSPACE
      ↓
TOOLS
      ↓
EVIDENCE

not:

manager → manager → manager → ???
04 THINGS THAT BROKE
RECURSIVE REASONING LOOP DETECTION / CONTAINMENT

At one point the system could keep trying the same failed approach over and over. That isn't useful autonomy. It's just a loop. The answer wasn't another instruction telling the model to "try harder." The runtime needed a way to recognize repetitive failure and stop it.

DETERMINISTIC OFF-LOADING LLM / SOFTWARE BOUNDARY

I found that some things simply shouldn't be left to an LLM. JSON manipulation, symbol lookup, parsing, and similar tasks are better handled by software that gives the same answer every time. That led to moving more of this work into deterministic tooling and Tree-sitter.

ARCHITECTURAL DUPLICATION CONSOLIDATION / SIMPLIFICATION

More than once, a problem that looked like a missing feature turned out to be too many components trying to solve the same problem. Multiple orchestration paths, duplicated state, and indirect recovery logic made the system harder to reason about. The fix was consolidation, not another layer.

CLOSED-LOOP VERIFICATION AEGIS / CONTINUOUS MONITORING

A network system can't make a decision once and assume everything stayed that way. AEGIS compares what the network is doing against the state it believes should exist so it can detect when reality changes.

LEARNING THE MISSING PIECE IMPLEMENTATION / RESEARCH

When I hit something I don't understand, I don't want the system to hide that gap. I learn what I'm missing, test the idea in the implementation, and then decide whether the architecture actually needs it. That has led me into areas ranging from language parsing and runtime orchestration to networking, persistence, and verification.

04A ENGINEERING RULES

Things I keep learning.

These aren't rules I wrote down before I started. Most of them came from building something the wrong way and eventually understanding why.

01

STATE SHOULD HAVE AN OWNER

LESSON

If multiple components believe they are authoritative, debugging becomes archaeology. State needs a clear owner and a clear path for changing it.

02

TOOLS SHOULD DO WHAT SOFTWARE IS GOOD AT

LESSON

If a deterministic function can solve a problem, there is usually little reason to make a probabilistic model solve it through language.

03

FAILURE IS INFORMATION

LESSON

A failure isn't automatically a reason to patch the line that crashed. It can expose a bad abstraction, misplaced responsibility, missing state, or an assumption that was never actually true.

04

COMPLEXITY HAS TO EARN ITS KEEP

LESSON

I have learned the hard way that another abstraction can make a system look more sophisticated while making it harder to understand. If a piece of architecture doesn't solve a real problem, it probably shouldn't exist yet.

05

LEARN WHAT THE PROBLEM REQUIRES

LESSON

I don't try to know everything before starting. I build until I hit the edge of what I understand, then I learn the part that is missing. The project is usually what tells me what I need to learn next.

05 ABOUT

Zachary Joubert

I build software because I keep running into problems that I want better tools for. Most of the projects here started that way.

I don't really have a single category for what I do. I end up moving between software architecture, AI systems, networking, programming tools, simulations, and whatever else the problem requires.

ACTIVE NETWORK

These are the main systems I'm working on. They are separate projects, but a lot of the ideas and engineering work overlap. Problems found in one project often change how I approach another.

AEOWUN

Autonomous Software Engineering Runtime

LANG0

Programming / Language Learning System

AEGIS

Network Monitoring & Defense

WRENGO

Industrial Shop Workflow

ACCESS THE NETWORK HUB →
PATH
01
Independent Systems Builder Software, Systems & AI Tooling // Present
02
Diesel Mechanic Apprentice Valley Bus
03
Insulation Technician Sioux City Insulation // 2023–2024
04
Warehouse / Maintenance Scoular Company
PHILOSOPHY

I learned by building things, breaking them, figuring out why they broke, and trying again.

I don't have a traditional computer-science background. I learned most of this by actually building software and running into problems I didn't know how to solve yet.

When I don't know something, I learn it because the project needs it. That has meant learning different languages, frameworks, parsing techniques, networking concepts, databases, operating-system behavior, software architecture, and a lot of things I didn't originally set out to learn.

A lot of the software here started with a simple thought: there has to be a better way to do this.

I don't think being self-taught means I don't have anything left to learn. It's basically the opposite. I am used to finding the part I don't understand and going after it until I do.

I don't have the conventional paper trail. I have the software.

VIEW RESUME.PDF
06 HOW I WORK

Start with the problem.

I don't usually start with a technology and then look for something to use it for. I start with something that isn't working the way I want and build toward a solution.

01

FIND THE ACTUAL PROBLEM

APPROACH

The first visible problem isn't always the real one. I try to understand what the system is actually doing before deciding what needs to change.

02

BUILD A WORKING PIECE

APPROACH

I learn a lot faster when there is something real in front of me. I would rather build a rough working implementation and discover its problems than spend months designing something I haven't tested against reality.

03

BREAK IT

APPROACH

Once something works, I want to know where it stops working. Failures, edge cases, bad assumptions, performance problems, and unexpected behavior are usually where the useful information is.

04

LEARN WHAT I MISSED

APPROACH

If the problem exposes something I don't understand, that becomes the next thing to learn. I don't see that as a detour. It is part of building the system.

05

FIX THE DESIGN, NOT JUST THE SYMPTOM

APPROACH

A patch that makes an error disappear isn't necessarily a fix. If the failure came from the architecture, eventually the architecture has to change.