Tiberiu Petre — Software Engineer

Software Engineer

Sovereign AI Nexus, Part 3: Making It Actually Talk

Part 2 was about the scaffold breaking in four different ways before it worked. This one is about the day the app actually started talking back and about three more bugs, quieter than the ones before. Postgres, and a client that shouldn’t be reborn every request Wiring up Postgres was the easy part: a table for exchanges (prompt, response, timestamp) and a DatabaseClient wrapping a SQLAlchemy connection. The first version created a new client and a new connection on every single request. It worked, but it’s the wrong shape: a real app should open one connection when it starts and reuse it, not pay connection overhead on every prompt. ...

August 26, 2026 · 5 min

Sovereign AI Nexus, Part 4: Shipping v1

Part 3 ended with the backend able to talk to Claude Code, but no way for a person to talk to any of it. This one covers the rest of the distance to v1: a UI, a Docker Compose stack that actually works end to end, a way to see and delete conversation history, and lastly, a test suite, built specifically so the next change doesn’t need a live browser to verify. ...

August 26, 2026 · 5 min

Sovereign AI Nexus, Part 1: Starting Small, On Purpose

I’ve had portfolio project ideas for Backend and AI Engineering before — written at different times, each answering the same question differently: do I position myself for a specific role, or build what I find interesting and let the résumé follow? None of them got built. Not because the ideas were bad — the architectures were actually fairly detailed — but because each one tried to prove too much at once: a backend split across multiple languages “to show I know them all,” telemetry, observability, multi-agent orchestration, all in the same first version. The kind of scope that feels good on paper and turns overwhelming right when you’d need to write the first line of code. ...

August 20, 2026 · 2 min

Sovereign AI Nexus, Part 2: What Broke While Scaffolding

The first post in this series was about the decision — why I’m starting small, why the earlier project ideas never got built. This one is about the day I actually wrote code, and about what broke along the way — because almost nothing worked on the first try, and I think that part is more interesting than if it had gone perfectly. The scaffold itself For the backend I used FastAPI and uvicorn, managed with uv — fast, and about as simple as it gets to wire up: a @app.get(path="/") decorator over the handler function. For the frontend, React and TypeScript, scaffolded with Vite. ...

August 20, 2026 · 4 min