<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Onkar Sathe]]></title><description><![CDATA[Onkar Sathe]]></description><link>https://blog.onkarsathe.co.in</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 06:49:43 GMT</lastBuildDate><atom:link href="https://blog.onkarsathe.co.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Winning the Infineon Hackathon🏆]]></title><description><![CDATA[Recently, I had the incredible opportunity to participate in a Hackathon hosted by Infineon Technologies right here on the VIT Pune campus. This wasn't just a competition; it was a high-stakes talent hunt, as the event served as a gateway for potenti...]]></description><link>https://blog.onkarsathe.co.in/infineon-hackathon-2026</link><guid isPermaLink="true">https://blog.onkarsathe.co.in/infineon-hackathon-2026</guid><category><![CDATA[hackathon]]></category><category><![CDATA[infineon]]></category><dc:creator><![CDATA[Onkar Sathe]]></dc:creator><pubDate>Fri, 13 Feb 2026 16:01:51 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1770996391236/da0d72db-ebea-4785-bdab-c0e20992dd58.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Recently, I had the incredible opportunity to participate in a Hackathon hosted by <strong>Infineon Technologies</strong> right here on the <strong>VIT Pune</strong> campus. This wasn't just a competition; it was a high-stakes talent hunt, as the event served as a gateway for potential internship roles within the company.</p>
<h3 id="heading-the-team-formation"><strong>The Team Formation</strong></h3>
<p>The process kicked off with a bit of a twist: team formations were handled on a random basis. After submitting my initial application, the teams were announced the following day. I was fortunate to be paired with teammates from my own department, which made our initial communication and technical alignment much smoother from the start.</p>
<h3 id="heading-the-roadmap-a-three-phase-journey"><strong>The Roadmap: A Three-Phase Journey</strong></h3>
<p>The event was structured into three distinct phases designed to bridge the gap between learning and execution:</p>
<ul>
<li><p><strong>Phase 1: The Workshop (Day 1)</strong> The first day was dedicated to an intensive technical workshop. We dived deep into the world of <strong>AI Agents</strong>, <strong>Model Context Protocols (MCPs)</strong>, and effective <strong>bug hunting</strong> strategies. This provided us with the necessary toolkit to tackle the challenges ahead.</p>
</li>
<li><p><strong>Phase 2: The Hackathon (Day 2)</strong> The second day was the main event a rigorous <strong>6-hour sprint</strong>. Time was our biggest constraint, forcing us to prioritize core functionality and rapid prototyping.</p>
</li>
<li><p><strong>Phase 3: Interview of shortlisted Students</strong></p>
</li>
</ul>
<hr />
<h3 id="heading-problem-statement-automated-bug-detection-and-analysis">Problem Statement: Automated Bug Detection and Analysis</h3>
<p>The core problem statement challenged us to build an intelligent, automated system capable of identifying and explaining software vulnerabilities. In the world of high-stakes hardware and software development at Infineon, efficiency in bug hunting is paramount. Our task was to create a "Black Box Solution" that didn't just find errors, but understood them.</p>
<p><strong>The Architecture ("Black Box"):</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770988007868/12085c4f-696b-43c2-a420-47524aac0858.png" alt class="image--center mx-auto" /></p>
<hr />
<p><strong>The Winning Strategy: Our Multi-Agent Architecture:</strong></p>
<p>When we moved from the concept to the implementation, we knew a single script wouldn't be enough. To meet the mentors' requirements for <strong>scalability and robustness</strong>, we developed a modular, agent-based ecosystem. Each agent was designed with a specific "responsibility," allowing the system to handle complex code analysis in parallel.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770988704452/fd06f56d-fd76-4dd7-804c-af39a4af1ec4.png" alt class="image--center mx-auto" /></p>
<h4 id="heading-how-we-built-it"><strong>How We Built It</strong></h4>
<p>Our final architecture (shown below) relies on a collaborative workflow:</p>
<ul>
<li><p><strong>Ingest &amp; Context Agents:</strong> These handle the heavy lifting of parsing datasets and refining queries to the MCP server.</p>
</li>
<li><p><strong>The Logic Core:</strong> We split the reasoning between a <strong>Code Analysis Agent</strong> (to find the "diff") and an <strong>MCP Retrieval Agent</strong> (to fetch specific RDI documentation).</p>
</li>
<li><p><strong>Dynamic Scaling:</strong> To future-proof the solution, we introduced a "Known vs. Unknown" logic gate. This allows the system to use a <strong>Validator Agent</strong> (powered by Gemini/oss120B) when it encounters new rules, ensuring the system learns and adapts over time.</p>
</li>
</ul>
<p>This modular approach was a key talking point during our final presentation. By demonstrating how the system could add new "rules" and scale with larger datasets, we were able to satisfy the mentors' technical deep-dives and secure our win.</p>
<p>Experience the modular workflow yourself by visiting repository on <a target="_blank" href="https://github.com/Sammychann/BugHunter-Sam">Github</a>.</p>
<h2 id="heading-what-set-us-aparthttpswwwgooglecomsearchqlink-our-winning-edge"><a target="_blank" href="https://www.google.com/search?q=link"><strong>What Set Us Apart:</strong></a> <strong>Our Winning Edge</strong></h2>
<p>We approached the problem as a scalable product. Our solution stood out because it wasn't just a bug detector it was a comprehensive, agentic framework.</p>
<p>Here is why our approach was different:</p>
<ul>
<li><p><strong>Architectural Superiority:</strong> Our core strength lay in a sophisticated multi-agent system that decoupled data ingestion from reasoning.</p>
</li>
<li><p><strong>Dual-Interface Versatility:</strong> We provided two ways to interact with our tool: a high-efficiency <strong>TUI (Terminal User Interface)</strong> for power users and a polished <strong>GUI built with Tkinter</strong> for a more accessible, user-friendly experience.</p>
</li>
<li><p><strong>Proactive Scaling Strategy:</strong> We directly addressed the mentors' concerns regarding long-term viability. By implementing a "Known vs. Unknown" logic gate, our system can dynamically scale its knowledge base by adding new rules through an <strong>MCP Validator Agent</strong>.</p>
</li>
<li><p><strong>Context-Aware Reasoning:</strong> Instead of basic pattern matching, we used an <strong>MCP Retrieval Agent</strong> to fetch real-time RDI documentation. This allowed our <strong>Explanation Agent</strong> to provide deep, technically accurate descriptions of every bug found.</p>
</li>
<li><p><strong>Hybrid Intelligence:</strong> By leveraging models like <strong>Gemini</strong> and <strong>oss120B</strong> within our agentic workflow, we ensured high precision in both code analysis and the generation of the final CSV output.</p>
</li>
</ul>
<h2 id="heading-a-win-and-a-lesson"><strong>A Win and a Lesson</strong></h2>
<p>The moment finally arrived. As the winning teams were announced, hearing our names was an incredible rush. All the stress of the 6-hour sprint, the architectural debates, and the deep dives into MCP servers had paid off.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770989653526/f0e89e54-ea83-461e-a8f0-0803c712e76f.jpeg" alt class="image--center mx-auto" /></p>
<p><strong>My key takeaways from this experience:</strong></p>
<ul>
<li><p><strong>Success isn't just the trophy:</strong> Building a complex, multi-agent system from scratch in 48 hours taught me more about software architecture than any textbook could.</p>
</li>
<li><p><strong>Ownership of Mistakes:</strong> I identified areas where I can improve whether in technical depth or interview communication and I’m treating those as a roadmap for my next big project.</p>
</li>
<li><p><strong>The Power of Collaboration:</strong> Working with a random team from my department turned out to be a blessing; we blended our strengths perfectly to deliver a polished product.</p>
</li>
</ul>
<p><img src alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Home Lab Setup]]></title><description><![CDATA[…and why it became the one place where everything finally feels mine

A home lab represents independence.Not the grand, dramatic kind — more like "this is my controlled environment, powered by determination and hardware."
Mine wasn't assembled from u...]]></description><link>https://blog.onkarsathe.co.in/home-lab-setup</link><guid isPermaLink="true">https://blog.onkarsathe.co.in/home-lab-setup</guid><category><![CDATA[server]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[homeserver]]></category><category><![CDATA[proxmox]]></category><category><![CDATA[SelfHosting]]></category><category><![CDATA[virtualization]]></category><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Onkar Sathe]]></dc:creator><pubDate>Tue, 03 Feb 2026 05:28:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1770119984022/2bcb3d3c-bcea-4582-9a86-7c5a65a91f63.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-and-why-it-became-the-one-place-where-everything-finally-feels-mine">…and why it became the one place where everything finally feels <em>mine</em></h3>
<hr />
<p>A home lab represents independence.<br />Not the grand, dramatic kind — more like <em>"this is my controlled environment, powered by determination and hardware."</em></p>
<p>Mine wasn't assembled from unlimited resources, grand ambitions, or enterprise equipment humming in climate-controlled racks.</p>
<p>It began with <strong>one freelance contract</strong> and a refurbished <strong>HP Elite Desk 800 G1 SFF</strong> — a dated i5 4th Gen, <strong>8 GB of DDR3</strong>, a <strong>128 GB SSD</strong>, and a <strong>500 GB HDD</strong> that clearly had previous owners.</p>
<p>Nothing impressive. Nothing costly.<br />Just adequate.<br />And adequacy is sufficient when you understand your requirements.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770095452086/88a7e4aa-8c58-4bd7-aec2-f4b343fd06bc.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-why-i-even-wanted-a-home-lab"><strong>Why I Even Wanted a Home lab</strong></h3>
<p>I'm uncomfortable entrusting my data to external entities — <em>particularly</em> corporate giants.<br />Google Photos controlling access to my memories?<br />A commercial password manager securing my digital identity?<br />Random web services processing my documents for simple tasks?</p>
<p>Unacceptable. Hard pass.</p>
<p>I needed infrastructure that was:</p>
<ul>
<li><p><strong>Private</strong></p>
</li>
<li><p><strong>Affordable</strong></p>
</li>
<li><p><strong>Self-owned</strong></p>
</li>
<li><p>And <strong>safe to experiment with</strong> without real consequences.</p>
</li>
</ul>
<p>Commercial cloud services limit experimentation.<br />A home lab provides full administrative access without guardrails.</p>
<p>That's the difference.</p>
<h3 id="heading-the-brain-proxmox-on-old-hardware"><strong>The Brain: Proxmox on Old Hardware</strong></h3>
<hr />
<p>I reformatted everything, installed <a target="_blank" href="https://www.proxmox.com/en/products/proxmox-virtual-environment/overview"><strong>Proxmox</strong></a> directly on the <strong>128 GB SSD</strong> with ext4 (ZFS wouldn't cooperate with this legacy system), and instantly this retired office machine became a <strong>testing ground</strong>.</p>
<p>A testing ground for experimentation, learning, and late-night rebuilds when inspiration struck.</p>
<h2 id="heading-nothing-is-public-facing-and-thats-the-magic"><strong>Nothing Is Public-Facing — And That's the Magic</strong></h2>
<hr />
<p>Many showcase self-hosted infrastructures with reverse proxies, DNS configurations, Cloudflare tunnels…</p>
<p>Impressive architectures, certainly.<br />But I didn't want internet exposure for my services.</p>
<p>So I constructed an isolated environment:</p>
<ul>
<li><p>A <strong>virtual network (10.20.30.0/24)</strong></p>
</li>
<li><p>A <strong>virtual router (IPFire)</strong></p>
</li>
<li><p>A <strong>virtual DNS (Pi-hole)</strong></p>
</li>
<li><p>A <strong>VPN access point (NetBird)</strong></p>
</li>
<li><p>A <strong>reverse-proxy layer (Traefik)</strong></p>
</li>
<li><p>DNS management via <strong>Cloudflare</strong></p>
</li>
</ul>
<p>When remote, I connect NetBird, authenticate, and immediately access my homelab as if local.</p>
<p>No exposed ports.<br />No reverse proxy complexity.<br />No Let's Encrypt rate limiting concerns.<br />Just functionality.</p>
<hr />
<h2 id="heading-the-proxy-network-a-private-layer-for-user-facing-apps"><strong>The Proxy Network — A Private Layer for User-Facing Apps</strong></h2>
<p>To maintain complete control and isolation:</p>
<ul>
<li><p>I established a dedicated Docker bridge network called <code>proxy</code> with subnet <strong>192.168.204.0/24</strong>.</p>
</li>
<li><p>Every container serving a web interface runs inside this network—Immich, Stirling-PDF, Vaultwarden, OmniTools, etc.</p>
</li>
<li><p><strong>Traefik</strong> is the sole container exposed to the outer virtual network (10.20.30.0/24) via the Docker host. It manages all routing, TLS termination, and service discovery.</p>
</li>
<li><p>Internally, no container has direct host-LAN exposure. Services communicate exclusively via the <code>proxy</code> network and Traefik configurations.</p>
</li>
<li><p>External access requires VPN (NetBird). No public ports exposed, no internet-facing services.</p>
</li>
<li><p>DNS is managed by <strong>Cloudflare</strong>, but subdomains resolve only within the VPN-connected environment.</p>
</li>
</ul>
<p>This architecture provides:</p>
<ul>
<li><p>Strong network isolation</p>
</li>
<li><p>Centralized, manageable ingress (<strong>Traefik</strong>)</p>
</li>
<li><p>Minimal attack surface</p>
</li>
<li><p>Control over service routing and TLS certificates</p>
</li>
<li><p>Security confidence</p>
</li>
</ul>
<p><strong>In summary</strong>: all user-facing services behind one gateway. I control access.</p>
<h2 id="heading-the-services-i-run-and-why-they-matter-to-me"><strong>The Services I Run (and Why They Matter to Me)</strong></h2>
<hr />
<h3 id="heading-1-immichhttpsimmichapp-my-photos-my-rules">1. <a target="_blank" href="https://immich.app/">Immich</a> — My Photos, My Rules</h3>
<p>Google Photos works until policy changes. Until account locks. Until your photographic history depends on corporate decisions.</p>
<p>Immich runs on my HDD. No fees. No compression. No external access.</p>
<p>First time my photos feel genuinely <em>owned</em>.</p>
<h3 id="heading-2-vaultwardenhttpsgithubcomdani-garciavaultwarden-passwords-shouldnt-live-in-someone-elses-building">2. <a target="_blank" href="https://github.com/dani-garcia/vaultwarden">Vaultwarden</a> — Passwords Shouldn't Live in Someone Else's Building</h3>
<p>A self-hosted password manager changes everything.</p>
<p>No breach concerns. No tracking. And it provides <strong>Bitwarden premium features (TOTP!)</strong> without subscription costs.</p>
<p>Self-hosting this revealed:</p>
<blockquote>
<p>"Privacy doesn't require money. Just intention."</p>
</blockquote>
<h3 id="heading-3-netbirdhttpsnetbirdio-my-portal-back-home">3. <a target="_blank" href="https://netbird.io/">NetBird</a> — My Portal Back Home</h3>
<p>I appreciate opening NetBird remotely and immediately accessing my homelab as if I never left.</p>
<p>Seamless. WireGuard-powered seamlessness.</p>
<h3 id="heading-4-traefikhttpstraefikio-the-entry-gate-i-control">4. <a target="_blank" href="https://traefik.io/">Traefik</a> — The Entry Gate I Control</h3>
<p>Traefik handles all service routing within my virtual network. It dynamically discovers containers and maps domains internally, while I manage DNS via Cloudflare. It also handles TLS certificates via <a target="_blank" href="https://letsencrypt.org/">Let's Encrypt</a>, maintaining security without manual certificate management.</p>
<h3 id="heading-5-cloudflarehttpscloudflarecom-dns-domain-management-my-terms">5. <a target="_blank" href="https://cloudflare.com/">Cloudflare</a> DNS — Domain Management, My Terms</h3>
<p>Instead of dynamic IPs or exposed ports, I use Cloudflare for DNS management. Cloudflare's infrastructure provides protection while maintaining my control.</p>
<h3 id="heading-6-n8nhttpsn8nio-automation-without-asking-permission">6. <a target="_blank" href="https://n8n.io/">n8n</a> — Automation Without Asking Permission</h3>
<p>Cloud automation platforms impose limits: "Free tier exceeded." "Maximum X workflows." "Upgrade required."</p>
<p>n8n simply states:</p>
<blockquote>
<p>"Do whatever you want, unlimited."</p>
</blockquote>
<p>That approach works.</p>
<h3 id="heading-7-obsync-couchdbhttpscouchdbapacheorg-my-obsidian-synced-like-a-superpower">7. Obsync (<a target="_blank" href="https://couchdb.apache.org/">CouchDB</a>) — My Obsidian, Synced Like a Superpower</h3>
<p>An extension called "Self-hosted LiveSync" syncs Obsidian via CouchDB.</p>
<p>I deployed a CouchDB Docker container. Connected it. Notes sync faster than commercial sync services.</p>
<p>Also: Zero cloud. Zero tracking. Zero dependencies.</p>
<h3 id="heading-8-omnitoolshttpsomnitoolsapp-a-toolbox-that-doesnt-sell-my-files">8. <a target="_blank" href="https://omnitools.app/">OmniTools</a> — A Toolbox That Doesn't Sell My Files</h3>
<p>Image converters. Document compressors. All local. All private.</p>
<p>Uploading sensitive documents to random websites for processing always seemed problematic.</p>
<h3 id="heading-9-stirling-pdfhttpsgithubcomstirling-toolsstirling-pdf-my-document-converter-my-terms">9. <a target="_blank" href="https://github.com/Stirling-Tools/Stirling-PDF">Stirling-PDF</a> — My Document Converter, My Terms</h3>
<p>I recently deployed <strong>Stirling-PDF</strong>, an open-source PDF conversion/processing service. No external dependency. No tracking. If PDF processing is needed, it happens in my infrastructure, under my control.</p>
<h3 id="heading-subdomains-yes-public-never"><strong>Subdomains? Yes. Public? Never.</strong></h3>
<p>I use private DNS names like:</p>
<pre><code class="lang-typescript">immich.pve.onkarsathe.co.in
vaultwarden.pve.onkarsathe.co.in  
pihole.pve.onkarsathe.co.in
stirling-pdf.pve.onkarsathe.co.in
</code></pre>
<p>They resolve <em>only</em> inside the NetBird network (and via internal DNS + Traefik) and through Cloudflare-managed DNS. From the outside, these domains are non-existent.</p>
<h3 id="heading-why-this-homelab-means-so-much-to-me"><strong>Why This Homelab Means So Much to Me</strong></h3>
<hr />
<p>It wasn't built with expensive hardware. It wasn't built with enterprise equipment. It wasn't built from necessity.</p>
<p>It was built because:</p>
<ul>
<li><p>I wanted data ownership</p>
</li>
<li><p>I wanted to learn</p>
</li>
<li><p>I wanted safe experimentation</p>
</li>
<li><p>And because running infrastructure on your own terms feels right</p>
</li>
</ul>
<p>Most pursue the cloud. I pursued <strong>control</strong>.</p>
<h3 id="heading-future-upgrades"><strong>Future Upgrades</strong></h3>
<hr />
<ul>
<li><p>More RAM</p>
</li>
<li><p>A small NAS</p>
</li>
<li><p>Monitoring (Grafana + Prometheus)</p>
</li>
<li><p>UPS for power reliability</p>
</li>
</ul>
<p>But honestly? Even without upgrades, this setup already provides something invaluable:</p>
<p>A private digital space that belongs exclusively to me.</p>
<h3 id="heading-some-pictures-of-server-seating-in-the-corner">Some pictures of server seating in the corner:</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770095817551/2294dd08-5b20-4ee5-880f-a38d32571d02.jpeg" alt class="image--center mx-auto" /></p>
<h3 id="heading-final-thoughts"><strong>Final Thoughts</strong></h3>
<hr />
<p>This homelab isn't perfect. It's not powerful. It's not impressive by enterprise standards.</p>
<p>But it's <strong>functional</strong>, and it's <strong>mine</strong>, and it was built with purpose.</p>
<p>We exist in a world where corporations want your photos, your passwords, your notes, your documents, your behaviors, your life.</p>
<p>My homelab is my response:</p>
<p><strong>"No. I'll take it from here."</strong></p>
]]></content:encoded></item></channel></rss>