<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Jenkins on Tiberiu Petre - Software Engineer</title><link>https://petretiberiu.dev/tags/jenkins/</link><description>Recent content in Jenkins on Tiberiu Petre - Software Engineer</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 20 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://petretiberiu.dev/tags/jenkins/index.xml" rel="self" type="application/rss+xml"/><item><title>Sovereign AI Nexus, Part 2: What Broke While Scaffolding</title><link>https://petretiberiu.dev/posts/sovereign-ai-nexus-02-scaffolding/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://petretiberiu.dev/posts/sovereign-ai-nexus-02-scaffolding/</guid><description>&lt;p&gt;The first post in this series was about the decision — why I&amp;rsquo;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.&lt;/p&gt;
&lt;h2 id="the-scaffold-itself"&gt;The scaffold itself&lt;/h2&gt;
&lt;p&gt;For the backend I used FastAPI and uvicorn, managed with &lt;code&gt;uv&lt;/code&gt; — fast, and about as simple as it gets to wire up: a &lt;code&gt;@app.get(path=&amp;quot;/&amp;quot;)&lt;/code&gt; decorator over the handler function. For the frontend, React and TypeScript, scaffolded with Vite.&lt;/p&gt;</description></item></channel></rss>