<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Leo's Lab</title><link>https://www.leoxlin.com/index.html</link><description>Recent content on Leo's Lab</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 07 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.leoxlin.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Using Pangolin to unify my networks</title><link>https://www.leoxlin.com/posts/2026/06/using-pangolin-to-unify-my-networks.html</link><pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate><guid>https://www.leoxlin.com/posts/2026/06/using-pangolin-to-unify-my-networks.html</guid><description>&lt;p&gt;One of the things that&amp;rsquo;s been bothering me about my homelab is that it&amp;rsquo;s really
two separate networks. When I&amp;rsquo;m home, everything works: I can reach my services,
my MetalLB IPs, my VPS over Hetzner. When I&amp;rsquo;m traveling, I&amp;rsquo;m cut off. My VPS on
Hetzner has no way to reach the homelab either, which means any cross-site
automation I&amp;rsquo;ve wanted to build has just been a non-starter.&lt;/p&gt;
&lt;p&gt;The obvious answer is a VPN. I&amp;rsquo;ve used Tailscale before and it&amp;rsquo;s great, but I
wanted something I could migrate away from if needed, and I didn&amp;rsquo;t want to
self-host the control plane. After some research I landed on
&lt;a href="https://pangolin.net/"&gt;Pangolin&lt;/a&gt; using the Pangolin Cloud, mostly because I&amp;rsquo;m
not confident in setting up a DMZ yet.&lt;/p&gt;</description></item><item><title>Running kubernetes on Jetson AGX Orin</title><link>https://www.leoxlin.com/posts/2026/02/running-kubernetes-on-jetson-agx-orin.html</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.leoxlin.com/posts/2026/02/running-kubernetes-on-jetson-agx-orin.html</guid><description>&lt;p&gt;I ran across a NVIDIA sale last Christmas for the Jetson AGX Orin. On paper it
had 64GB of LPDDR5 and GPU with 2048 CUDA / 64 Tensor Cores, it runs Linux, it
is power efficient, and it is battle tested for edge AI use cases. I&amp;rsquo;ve always
wanted to run some models locally so this sounded like a good choice. I want to
run some language, vision, and speech models on this machine and make it the AI
brain of my homelab.&lt;/p&gt;</description></item><item><title>Automate from day one with FluxCD</title><link>https://www.leoxlin.com/posts/2026/01/automate-from-day-one-with-fluxcd.html</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://www.leoxlin.com/posts/2026/01/automate-from-day-one-with-fluxcd.html</guid><description>&lt;p&gt;I finally finished filling out my mini racks and migrated my homelab to
Kubernetes. I followed a similar setup to this amazing guide: &lt;a href="https://k3s.guide/"&gt;https://k3s.guide/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One of the things I was really grateful for in this experience was how much
having FluxCD from day one helped me and saved me so much time. I know a lot of
people find ArgoCD difficult and daunting to set up, but FluxCD is much simpler
and feels more suitable for homelab needs.&lt;/p&gt;</description></item><item><title>State of the homelab</title><link>https://www.leoxlin.com/posts/2025/12/state-of-the-homelab.html</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.leoxlin.com/posts/2025/12/state-of-the-homelab.html</guid><description>&lt;p&gt;I started on my homelab not too long ago during Thanksgiving. It has been a crazy journey, but I have made some good progress. Today is the last day of 2025, and I want to document the state of my homelab and what is coming in 2026.&lt;/p&gt;
&lt;h2 id="hardware"&gt;Hardware&lt;/h2&gt;
&lt;p&gt;Building a media server was the first milestone in my homelab this year. I had a 2018 Mac mini that was no longer worth
much as a trade-in. I had wanted to repurpose this machine into a server for a while now but never invested the
time.&lt;/p&gt;</description></item><item><title>How to explain homelabbing to your family</title><link>https://www.leoxlin.com/posts/2025/12/how-to-explain-homelabbing-to-your-family.html</link><pubDate>Tue, 30 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.leoxlin.com/posts/2025/12/how-to-explain-homelabbing-to-your-family.html</guid><description>&lt;p&gt;I recently started a new and exciting hobby: building a homelab and self-hosting. This gave me a renewed sense of excitement about technology and helped relieve my career burnout. If you&amp;rsquo;re one of my friends whom I recently convinced to start a homelab, I &amp;rsquo;m sorry (not really). You are about to join many others in experiencing a hobby that is fun, tiresome, but deeply rewarding.&lt;/p&gt;
&lt;p&gt;As a software engineer, why one would want a homelab is pretty obvious to me. But this wasn&amp;rsquo;t easy to explain to my wife. We tried to find online articles that explained some of the benefits, but nothing really stood out. I figured that other homelabbers will face this issue too, so I&amp;rsquo;ve set out to write a blog post to help explain my new hobby to my family.&lt;/p&gt;</description></item><item><title>Using python generators</title><link>https://www.leoxlin.com/posts/2022/09/using-python-generators.html</link><pubDate>Sat, 10 Sep 2022 00:00:00 +0000</pubDate><guid>https://www.leoxlin.com/posts/2022/09/using-python-generators.html</guid><description>&lt;h2 id="what-are-generators"&gt;What are generators&lt;/h2&gt;
&lt;p&gt;Generators are a type of function or expression in Python that enable you to provide an iterator. A great example of a
generator function is the &lt;code&gt;range&lt;/code&gt; function used frequently in &lt;code&gt;for&lt;/code&gt; loops. Iterators generated by generators are lazy,
which means that they are not evaluated until you access the next element, making them memory efficient. The iterator
will yield one value at a time until the next function is called.&lt;/p&gt;</description></item></channel></rss>