<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Teo Ruiz</title>
    <link>https://teoruiz.com/</link>
    <description>Recent content in Teo Ruiz on teoruiz.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Wed, 13 May 2026 00:03:00 +0000</lastBuildDate><atom:link href="https://teoruiz.com/index.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Findegil: an open source ecommerce search engine</title>
      <link>https://teoruiz.com/posts/findegil/</link>
      <pubDate>Wed, 13 May 2026 00:03:00 +0000</pubDate>
      
      <guid>https://teoruiz.com/posts/findegil/</guid>
      
      <description>&lt;h2 id="software-unlocked"&gt;Software unlocked&lt;/h2&gt;
&lt;p&gt;My two obsessions that led to the &lt;a href="https://teoruiz.com/now/2026-04-23/#2701-labs"&gt;launching&lt;/a&gt; of &lt;a href="https://2701.ai"&gt;2701 Labs&lt;/a&gt; are (a) how do software products change in nature when incorporating LLMs; and (b) how software development is totally unlocked with coding agents.&lt;/p&gt;
&lt;p&gt;This is a story about the latter.&lt;/p&gt;
&lt;p&gt;I have been a software engineer for 25 years, working on projects big and small, in teams of one and teams of a hundred. However, I feel I can move and create software faster than ever before.&lt;/p&gt;
&lt;p&gt;When I read &lt;a href="https://www.gemba.es/p/como-construimos-nuestro-buscador"&gt;Mercadona Tech&amp;rsquo;s CTO detailed post&lt;/a&gt; on their quest to &lt;del&gt;vibecode&lt;/del&gt; build a search engine that worked for them, I decided to build a clean room, reference implementation as open source, something I would have never been able to do before. Today I am introducing &lt;a href="https://findegil.dev"&gt;&lt;strong&gt;Findegil&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Full disclosure&lt;/strong&gt; I don&amp;rsquo;t work at Mercadona Tech but I have history with the project, since &lt;a href="https://vernonteam.com"&gt;we&lt;/a&gt; helped them build their initial team, back in 2017. Also, Jose, their CTO, is a very good friend of mine.&lt;/p&gt;
&lt;h2 id="why-mercadona-built-their-own-search"&gt;Why Mercadona built their own search&lt;/h2&gt;
&lt;p&gt;For those outside Spain: &lt;a href="https://www.mercadona.es"&gt;Mercadona&lt;/a&gt; is the country&amp;rsquo;s largest supermarket chain, like by &lt;a href="https://info.mercadona.es/en/current-affairs/mercadona-achieves-turnover-of-e41858-million-up-8-and-net-profit-of-e1729-million/news"&gt;&lt;strong&gt;a lot&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In their post, Jose detailed why, after years using a commercial, SaaS search engine service, they decided to build their own.&lt;/p&gt;
&lt;p&gt;Their main point is that they were happy to put up with a generic search engine, which is not necessarily the best fit for groceries (small title, description, etc.), even while seeing a significant amount (~4%) of queries return no results, and paying a steep cost for their search volume. They were happy putting up with it, until they weren&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;They got their confidence to make a switch while making a vibe coded experiment during a weekend, building out from there and reaching a &lt;strong&gt;bespoke architecture that worked for them&lt;/strong&gt;, at a fraction of the cost, with significantly more flexibility.&lt;/p&gt;
&lt;p&gt;In a world where &lt;strong&gt;advanced coding agents&lt;/strong&gt; are readily available, they could use their intuition and experience to build something they couldn&amp;rsquo;t, or wouldn&amp;rsquo;t, do before.&lt;/p&gt;
&lt;p&gt;The beautiful thing is that they publicly documented their algorithms, tech stack and, critically, their governance rules. With that blueprint, I decided to build &lt;a href="https://findegil.dev"&gt;Findegil&lt;/a&gt;, a clean room, reference implementation of their search engine.&lt;/p&gt;
&lt;h2 id="findegil-at-10000-feet"&gt;Findegil at 10,000 feet&lt;/h2&gt;
&lt;p&gt;Findegil is a &lt;strong&gt;small, fast, transparent&lt;/strong&gt; e-commerce search engine. It is an open-source package built on a simple premise: the vast majority of e-commerce catalogs fit comfortably in the &lt;strong&gt;RAM of a single CPU machine&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It executes a four-stage process (as per the Mercadona playbook):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Normalize&lt;/strong&gt; the query.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run two retrievers&lt;/strong&gt; in parallel (BM25 and &lt;a href="https://huggingface.co/intfloat/multilingual-e5-small"&gt;&lt;code&gt;e5-small&lt;/code&gt;&lt;/a&gt; embeddings).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fuse the results&lt;/strong&gt; with Reciprocal Rank Fusion (RRF) and filter by a tenant bitset (if applicable).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rerank&lt;/strong&gt; the final candidates with &lt;a href="https://catboost.ai"&gt;CatBoost&lt;/a&gt; YetiRank, a Learning-To-Rank algorithm.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The headline feature is &lt;strong&gt;extreme efficiency without sacrificing relevance&lt;/strong&gt;. It delivers sub-15ms p99 latency on a single CPU core while keeping top-tier ranking quality (0.922 MRR@10 on the WANDS dataset). There are no GPUs, no external clusters, and no vector databases. To be clear about what this is not: it is not a general-purpose document search, it&amp;rsquo;s tailored for a &lt;strong&gt;specific set of use cases&lt;/strong&gt; around e-commerce and online groceries stores.&lt;/p&gt;
&lt;h2 id="deep-dive-and-drifts-from-the-original-playbook"&gt;Deep dive and drifts from the original playbook&lt;/h2&gt;
&lt;p&gt;The implementation closely follows the original playbook, adapted and generalised for an open source project.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Normalization:&lt;/strong&gt; I enforce strict NFKC unicode normalization, casefolding, and whitespace collapse. This runs on the exact same code path at &lt;strong&gt;index time and query time&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lexical and Semantic Layers:&lt;/strong&gt; For the lexical layer, I use &lt;a href="https://github.com/quickwit-oss/tantivy-py"&gt;&lt;code&gt;tantivy-py&lt;/code&gt;&lt;/a&gt; embedded in-process. There is a slight forced drift here: &lt;code&gt;tantivy-py&lt;/code&gt; does not expose BM25 parameters and they are fixed at &lt;code&gt;(k1=1.2, b=0.75)&lt;/code&gt;, which is not necessarily great for short documents, but we can probably fix it in the future. For semantic search, I use the wonderful &lt;a href="https://huggingface.co/intfloat/multilingual-e5-small"&gt;&lt;code&gt;e5-small&lt;/code&gt;&lt;/a&gt; exported to &lt;a href="https://onnxruntime.ai"&gt;ONNX INT8&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Where Findegil diverges:&lt;/strong&gt; The biggest difference is data. Mercadona had years of private click logs, which I did not have when building this. Findegil ships with a synthetic click pipeline derived from Amazon ESCI labels, running an Inverse Propensity Weighting (IPW) recovery test to assert that a model trained on these synthetic clicks matches a model trained on perfect labels.&lt;/p&gt;
&lt;p&gt;Findegil&amp;rsquo;s golden set evaluation uses the public &lt;a href="https://github.com/wayfair/WANDS"&gt;WANDS dataset&lt;/a&gt;, which is basically the benchmark for this type of project.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s important to note that the YetiRank LTR layer is wired but disabled by default, because in reality what users will want is to ingest their own data.&lt;/p&gt;
&lt;h2 id="vibecoding-or-agentic-engineering"&gt;Vibecoding or agentic engineering&lt;/h2&gt;
&lt;p&gt;I would say 99% of the code for Findegil has been written by either Claude Code (Opus 4.7) or Codex (GPT 5.5). But I would not say this was a vibecoded software, I prefer to use &lt;a href="https://simonw.substack.com/p/agentic-engineering-patterns"&gt;Simon&amp;rsquo;s take on agentic engineering&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I used Mercadona&amp;rsquo;s original playbook as a starting point and built the project in phases, with their original &lt;code&gt;CLAUDE.md&lt;/code&gt; as a kind of &lt;em&gt;constitution&lt;/em&gt; on latency budgets, external dependencies and complexity. And if the agent wants to change an architectural rule, it must write an Architecture Decision Record (ADR) first. You can see the &lt;a href="https://github.com/2701/findegil"&gt;full repo&lt;/a&gt; history, too!&lt;/p&gt;
&lt;p&gt;Some tips and lessons from the last couple of weeks building Findegil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Writing architectural decisions down up front&lt;/strong&gt; is definitely worth it. These are the foundations of the project. Steering them with experience and intuition is not as easy as people online try to convey.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tight feedback loops via CI gates&lt;/strong&gt; (latency tests, golden set regressions and clear metrics) are like super powers for the agent, because it can iterate by itself until done with something.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;I followed a phased roadmap&lt;/strong&gt; (Phase 0 through 4) with evaluation files at the end of each phase. I wonder if this was the fastest way to reach my end goal and the next time I will probably build an end to end PoC and then grow from there.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;I can&amp;rsquo;t really decide if I like Codex or Claude Code more&lt;/strong&gt;, yet. I use them in a pretty barebones fashion: no skills, no plugins, just the harness and the model. We&amp;rsquo;ll see if I stick to one of them or I move towards using &lt;a href="https://pi.dev"&gt;Pi&lt;/a&gt; and switching between models.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="whats-next"&gt;What&amp;rsquo;s next&lt;/h2&gt;
&lt;p&gt;I would love to see Findegil being used and improved for retail and other use cases out there. At the moment it&amp;rsquo;s kind of a research preview, but there is a lot of potential for these type of small, bespoke-ish projects and I am dying to see where we go from here.&lt;/p&gt;
&lt;p&gt;If you have a real catalog, I would love to see you clone the repository and report back, especially with real click-log data we can use to train the LTR model!&lt;/p&gt;
&lt;p&gt;What a fun few weeks!&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Now</title>
      <link>https://teoruiz.com/now/2026-04-23/</link>
      <pubDate>Thu, 23 Apr 2026 10:30:00 +0200</pubDate>
      
      <guid>https://teoruiz.com/now/2026-04-23/</guid>
      <enclosure length="208779" type="image/jpeg" url="https://teoruiz.com/images/teide-2025_hu_a2b05e2494c25591.jpg"/>
      
      <description>&lt;figure&gt;&lt;a href="https://teoruiz.com/images/teide-2025_hu_241ce3af95223a09.jpg" target="_blank" rel="noopener noreferrer"&gt;&lt;img src="https://teoruiz.com/images/teide-2025_hu_f4268da68eba27b9.webp" alt="Snow on Mount Teide, Tenerife. 31st December 2025."
      width="1000"  height="665"  loading="lazy" &gt;
    &lt;/a&gt;&lt;figcaption&gt;
    &lt;div&gt;Snow on Mount Teide, Tenerife. 31st December 2025.
    &lt;/div&gt;
    &lt;div class="exif"&gt;
      
      
      Leica Q3 |
      
      
      ƒ/8.00
       | 1/640s
       | ISO 100
    &lt;/div&gt;
  &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;h2 id="2701-labs"&gt;2701 Labs&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I launched &lt;a href="https://2701.ai"&gt;2701 Labs&lt;/a&gt; a couple of months ago, after sitting with the hunch for a while. It&amp;rsquo;s an AI engineering studio where I&amp;rsquo;m building with agent-native architectures. What that means exactly changes by the week.&lt;/li&gt;
&lt;li&gt;As I mentioned elsewhere: the most important decisions of my life have all been hunches, and this one was the strongest yet.&lt;/li&gt;
&lt;li&gt;Day to day I&amp;rsquo;m doing two things: experimenting with small AI products on very short iteration cycles, and helping companies actually get value out of AI, through technical due diligences and by working alongside internal teams. I&amp;rsquo;m having a lot of fun.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="site-updates"&gt;Site updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;ve given the &lt;a href="https://teoruiz.com/uses"&gt;&amp;ldquo;Uses&amp;rdquo;&lt;/a&gt; page a proper refresh. Back to Linux on a &lt;a href="https://frame.work"&gt;Framework Laptop&lt;/a&gt;, Claude Code, &lt;a href="https://omarchy.org"&gt;Omarchy&lt;/a&gt; (sorry), a hell of a lot of Obsidian, and a new Garmin to replace the Apple Watch.&lt;/li&gt;
&lt;li&gt;Posted a &lt;a href="https://teoruiz.com/notes/1/"&gt;new note&lt;/a&gt; about how coding agents have lowered the bar for building almost-disposable little apps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reading-watching-listening-working-out"&gt;Reading, watching, listening, working out&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;m in a re-reading phase. In the last few months I&amp;rsquo;ve re-read the LOTR trilogy and The Count of Monte Cristo. Right now I&amp;rsquo;m reading a new-ish Spanish translation of &lt;em&gt;The Master and Margarita&lt;/em&gt; by Bulgakov, on paper, and I&amp;rsquo;m absolutely adoring it, even more than I did twenty years ago when I first read it.&lt;/li&gt;
&lt;li&gt;I resubscribed to &lt;a href="https://www.newyorker.com"&gt;The New Yorker&lt;/a&gt; for long, slow reads. I&amp;rsquo;m genuinely surprised at how much of it I&amp;rsquo;m actually reading.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://open.spotify.com/album/3SUEJULSGgBDG1j4GQhfYY?si=z-CfXe0BS6i9KV1oXtIf8g"&gt;Lux&lt;/a&gt;&lt;/em&gt; by Rosalía is probably going to make her my top artist of the year. Again.&lt;/li&gt;
&lt;li&gt;Watched &lt;a href="https://www.hbo.com/the-pitt"&gt;The Pitt&lt;/a&gt; S02. Wow.&lt;/li&gt;
&lt;li&gt;I have been working out at least 3 times a week for almost a year now, and it shows. I&amp;rsquo;m actually running a &lt;a href="https://rocknrollmadridrun.com/"&gt;10k race&lt;/a&gt; in Madrid this weekend!&lt;/li&gt;
&lt;/ul&gt;
</description>
      
    </item>
    
    <item>
      <title>Note #1 - Ephemeral apps</title>
      <link>https://teoruiz.com/notes/1/</link>
      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://teoruiz.com/notes/1/</guid>
      
      <description>&lt;p&gt;What I like most about coding agents and AI is how much they&amp;rsquo;ve lowered the mental bar for building fundamentally ephemeral apps.&lt;/p&gt;
&lt;p&gt;Example: right now, lots of families in Madrid (where I live) are anxiously waiting to find out whether their kids got into the school they applied for. I was there last year!&lt;/p&gt;
&lt;p&gt;When applicants tie on points, a small (and not exactly trivial to run by hand) algorithm decides who gets in.&lt;/p&gt;
&lt;p&gt;In one sitting I built this: &lt;a href="https://sorteo-plazas-madrid.2701.dev/"&gt;https://sorteo-plazas-madrid.2701.dev/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You paste the application table with the points (straight from the school system&amp;rsquo;s site) and it tells you who&amp;rsquo;s in and who&amp;rsquo;s out, applying the official tie-breaker. The kind of static frontend app that a year ago wouldn&amp;rsquo;t have been worth the effort to set up, and that a month from now nobody will open again.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know where all of this is taking us, but I am having fun.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>The staff I use</title>
      <link>https://teoruiz.com/uses/</link>
      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://teoruiz.com/uses/</guid>
      
      <description>&lt;h2 id="tangible"&gt;&lt;a href="#tangible"&gt;Tangible&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://en.wikipedia.org/wiki/IPhone_17_Pro"&gt;iPhone 17 Pro&lt;/a&gt;:&lt;/strong&gt; The 2025 model, and the object I have a not-so-healthy dependency on.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My first iPhone was the iPhone 5 and, even if I tried Android for a little while, the vertically integrated, walled garden experience is just smoother.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;ve been religiously upgrading every three years since the iPhone 5. Three years is my sweet spot, I get to feel a new device &amp;ldquo;often&amp;rdquo; while still having a sensible rule to fight my purchasing urge every September after watching the keynote.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://frame.work/products/laptop13-diy-amd-aizen-ai-300"&gt;Framework Laptop 13 DIY Edition&lt;/a&gt;:&lt;/strong&gt; In August 2025 I retired the Macbook Pro M1 Pro and moved to a Framework Laptop 13. After close to fifteen years on Apple laptops, it felt like the right moment to go back to Linux.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Specced with the AMD Ryzen AI 9 HX 370, 32GB of RAM, a 1TB of NVMe, and the 2.8K display. It honestly flies!&lt;/li&gt;
&lt;li&gt;I got the DIY edition and felt &lt;strong&gt;hardware-tinkering joy&lt;/strong&gt; for the first time in a very, very long time while assembling it myself.&lt;/li&gt;
&lt;li&gt;I love that I am now able to upgrade this thing easily, myself, and I probably will soon as they just released what the call the &lt;a href="https://frame.work/es/en/laptop13pro"&gt;Framework Laptop 13 Pro&lt;/a&gt;. Better battery finally!&lt;/li&gt;
&lt;li&gt;I usually carry a &lt;a href="https://www.amazon.es/dp/B09LLRNGSD"&gt;65W USB-C Anker 735 charging brick&lt;/a&gt; when I&amp;rsquo;m working out of home. Having two USB-C and one USB-A port is terribly convenient.&lt;/li&gt;
&lt;li&gt;I just recently got a new power bank, the &lt;a href="https://www.amazon.es/dp/B0DCBB2YTR"&gt;Anker Zolo Power Bank (25K, 165W)&lt;/a&gt;. Errr, why didn&amp;rsquo;t I get this before? 25k mAh and neat retractable cables.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://leica-camera.com/en-int/photography/cameras/q/q3-black"&gt;Leica Q3&lt;/a&gt;:&lt;/strong&gt; Most of the photos on this site are and will be shot with a Leica Q3, which I got last summer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I know a camera doesn&amp;rsquo;t make a better photographer, but I really enjoy shooting with it.&lt;/li&gt;
&lt;li&gt;Full-frame, with a gorgeous fixed &lt;a href="https://en.wikipedia.org/wiki/Summilux"&gt;Summilux-M 28 mm f/1.7 ASPH&lt;/a&gt; lens. The clarity, the sharpness, the colors — everything is just right.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.amazon.es/kindle-paperwhite-signature-edition-2024/dp/B0CFPN47NY"&gt;Kindle&lt;/a&gt;:&lt;/strong&gt; My first Kindle was the classic Kindle 3 with a keyboard, back in 2010.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I upgraded to a Kindle Voyage in 2014 and read a lot on it — I have this vivid memories of late nights reading Liu Cixin&amp;rsquo;s &lt;a href="https://en.wikipedia.org/wiki/Remembrance_of_Earth%27s_Past"&gt;Three-Body Problem&lt;/a&gt; trilogy during lockdown.&lt;/li&gt;
&lt;li&gt;Recently, I got the Kindle Paperwhite Signature and re-read the LOTR trilogy as its first run. The UX and responsiveness improvements, compounded over the years are very noticeable.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.garmin.com/en-US/p/1098822"&gt;Garmin Forerunner 970&lt;/a&gt;:&lt;/strong&gt; I&amp;rsquo;ve been running and lifting a lot more than I used to, and the Apple Watch just wasn&amp;rsquo;t keeping up, so I replaced it with this.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Battery life is in a different universe (I charge it roughly once a week), sleep tracking is detailed and genuinely useful, and the training and running metrics are actually built for training and running.&lt;/li&gt;
&lt;li&gt;Mechanical watches still take over on non-training days.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Other gear&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.apple.com/airpods-pro/"&gt;AirPods Pro 2&lt;/a&gt;:&lt;/strong&gt; Besides my glasses, this is probably the object that&amp;rsquo;s most frequently on me. What would I do without its noise cancellation?&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.es/dp/B0F2TT8Q7M"&gt;Sony WH-1000XM6&lt;/a&gt;: One of the consequences of my move to Linux is that using the AirPods is not extremely convenient, so I got the perfect excuse to go back Sony WH, current model. Better than ever.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="intangible"&gt;&lt;a href="#intangible"&gt;Intangible&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://omarchy.org"&gt;Omarchy&lt;/a&gt;:&lt;/strong&gt; I hate to admit I&amp;rsquo;m using Omarchy, but here we are. It&amp;rsquo;s just too good of a &lt;a href="https://hyprland.org"&gt;Hyprland&lt;/a&gt; distribution to ignore. I moved back to Linux when I got the Framework, and honestly I&amp;rsquo;m loving it.
&lt;ul&gt;
&lt;li&gt;I ran Linux exclusively from 2000 to 2008 or so, then lived on Macbook Pros for the years since. I tried coming back to Linux in 2021 and it still wasn&amp;rsquo;t quite there.&lt;/li&gt;
&lt;li&gt;In 2026, a Linux developer laptop is a joy. Tiling windows, everything keyboard-driven, no friction between me and the terminal where I spend the day anyway.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://claude.com/claude-code"&gt;Claude Code&lt;/a&gt;:&lt;/strong&gt; I moved off Cursor to Claude Code when I switched to Linux, and it&amp;rsquo;s where I spend most of my coding time now.
&lt;ul&gt;
&lt;li&gt;I started my career in 2002, so I&amp;rsquo;ve gone through the full arc: a long Vim phase (I even used Mutt for email), years of JetBrains IDEs, then VS Code with GitHub Copilot, then Cursor. CLI-native coding agents are the first thing that&amp;rsquo;s genuinely moved the needle again.&lt;/li&gt;
&lt;li&gt;I also rotate through &lt;a href="https://github.com/openai/codex"&gt;Codex&lt;/a&gt;, &lt;a href="https://forgecode.dev"&gt;ForgeCode&lt;/a&gt;, and &lt;a href="https://pi.dev/"&gt;Pi&lt;/a&gt; depending on the shape of the task. A lot of my day now is spent just driving these agents.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal suite:&lt;/strong&gt; I&amp;rsquo;m not obsessive about dotfiles, but I do have a set of terminal tools I like and stick with.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://ghostty.org"&gt;Ghostty&lt;/a&gt;:&lt;/strong&gt; My daily terminal on Linux. It&amp;rsquo;s fast, not much to say.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.zsh.org"&gt;Zsh&lt;/a&gt;:&lt;/strong&gt; With &lt;a href="https://github.com/sorin-ionescu/prezto"&gt;prezto&lt;/a&gt;. Marginally better than bash, but mainstream enough that everything works so it’s worth it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/tmux/tmux"&gt;Tmux&lt;/a&gt;:&lt;/strong&gt; I use it mostly for remote sessions. Switched from GNU Screen years ago, and still have &lt;code&gt;Ctrl-A&lt;/code&gt; and &lt;code&gt;Ctrl-B&lt;/code&gt; fighting for dominance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://chezmoi.io"&gt;chezmoi&lt;/a&gt;:&lt;/strong&gt; How I keep dotfiles in sync across my two laptops and a handful of servers. It took me a minute to get how it works, but it solves the problem well enough.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://termius.com"&gt;Termius&lt;/a&gt;:&lt;/strong&gt; My SSH client on the phone. I use it with &lt;a href="https://tailscale.com/kb/1193/tailscale-ssh"&gt;Tailscale SSH&lt;/a&gt; to connect to my always-on laptop so can crack the whip on those coding agents.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mac apps&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Browsers&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.chromium.org/"&gt;Chromium&lt;/a&gt; with &lt;a href="https://github.com/uBlockOrigin/uBOL-home"&gt;uBlock Origin Lite&lt;/a&gt;:&lt;/strong&gt; My everyday browser since the move to Linux. Same engine I already knew from Chrome, without the Google wrapping, and uBO Lite doing the heavy lifting on ads and trackers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.apple.com/safari/"&gt;Safari&lt;/a&gt;:&lt;/strong&gt; My default browser on macOS and iOS. Light, fast, and well integrated. I use it for email and general browsing when I use my Mac.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.mozilla.org/firefox/"&gt;Firefox&lt;/a&gt;:&lt;/strong&gt; My choice when interacting with Spanish government websites or using digital certificates. It&amp;rsquo;s been the most consistent option over time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://mail.google.com"&gt;Gmail on the web&lt;/a&gt;:&lt;/strong&gt; When I moved to Linux I stopped using Spark and fell back to plain Gmail in a browser tab. It&amp;rsquo;s fine. Nothing to write home about, but it keeps up with my email, and it&amp;rsquo;s one fewer app to maintain.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://obsidian.md"&gt;Obsidian&lt;/a&gt;:&lt;/strong&gt; A hell of a lot of Obsidian. It&amp;rsquo;s the persistent memory of my working life: client notes, research, weeklies, dailies, meeting prep, decision logs, everything. If I had to give up one tool on this list, Obsidian would be the last to go. The combination of Obsidian with Claude Code and other coding agents is such a productivity boost that I can&amp;rsquo;t even explain itg to myself.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://marp.app"&gt;Marp&lt;/a&gt;:&lt;/strong&gt; My go-to for slides now that I&amp;rsquo;m mostly on Linux. Write the deck in Markdown, export to PDF or HTML, works identically on any machine and I don&amp;rsquo;t miss &lt;a href="https://ia.net/presenter"&gt;iA Presenter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.adobe.com/products/photoshop-lightroom.html"&gt;Adobe Lightroom CC&lt;/a&gt;:&lt;/strong&gt; The best photo editing tool I&amp;rsquo;ve used. Cloud syncing works smoothly across devices, and the mobile app is excellent. I don&amp;rsquo;t love Adobe, but Lightroom continues to deliver.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dev-stack"&gt;&lt;a href="#dev-stack"&gt;Dev stack&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.python.org"&gt;Python&lt;/a&gt;:&lt;/strong&gt; The core of my developer toolkit. I&amp;rsquo;ve had the dubious pleasure of working with PHP, Ruby, and more recently Go (which I really like), but I always come back to Python. It&amp;rsquo;s where I&amp;rsquo;m most fluent, and the ecosystem is everything I need — especially now that the AI stack is built around it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.djangoproject.com"&gt;Django&lt;/a&gt;:&lt;/strong&gt; &amp;ldquo;The web framework for perfectionists with deadlines&amp;rdquo; is a tagline that fits. I&amp;rsquo;ve built startups and client projects with Django, and the model layer and admin (with &lt;a href="https://github.com/unfoldadmin/django-unfold"&gt;Unfold&lt;/a&gt;) make me really productive.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/pydantic/pydantic-ai"&gt;PydanticAI&lt;/a&gt;:&lt;/strong&gt; A framework from the creators of Pydantic, tailored to building AI agents. I use it in recent projects with Vernon. The validation layer is great for controlling LLM responses, and I appreciate how easy it is to swap models or run evaluations with minimal changes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.postgresql.org"&gt;Postgres&lt;/a&gt;:&lt;/strong&gt; My database of choice for two decades. Reliable, performant, and deeply familiar. I can&amp;rsquo;t think of a better general-purpose database.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://tailwindcss.com"&gt;Tailwind&lt;/a&gt;:&lt;/strong&gt; CSS has never been my thing, but Tailwind makes it manageable. Combined with &lt;a href="https://daisyui.com"&gt;DaisyUI&lt;/a&gt;, it&amp;rsquo;s now my default approach for front-end work.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://htmx.org"&gt;HTMX&lt;/a&gt;:&lt;/strong&gt; A lightweight way to bring interactivity into Django apps without going full SPA. It plays really well with backend-first workflows and helps keep things simple.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="services"&gt;&lt;a href="#services"&gt;Services&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://claude.ai"&gt;Claude&lt;/a&gt; and &lt;a href="https://gemini.google.com"&gt;Gemini&lt;/a&gt;:&lt;/strong&gt; I no longer use ChatGPT. On the web I bounce between Claude and Gemini based on some vague feeling about which one will do better on the task. Sometimes the feeling is right.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.anthropic.com/api"&gt;Anthropic API&lt;/a&gt;:&lt;/strong&gt; My default for anything AI-heavy now. I use it in most recent projects, often with PydanticAI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://lovable.dev"&gt;Lovable&lt;/a&gt;:&lt;/strong&gt; For small, almost disposable web apps, Lovable is unbeatable. Describe the thing, iterate, deploy, done. My &lt;a href="https://teoruiz.com/notes/1/"&gt;recent Madrid school-placement tie-breaker&lt;/a&gt; is a good example: the kind of app that a year ago wouldn&amp;rsquo;t have been worth building, and Lovable is what makes that math work.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.espaciodistrito.com/"&gt;Espacio Distrito&lt;/a&gt;:&lt;/strong&gt; My &lt;em&gt;coworking de barrio&lt;/em&gt;. A small neighbourhood spot where I have a private office, very close to my home. It&amp;rsquo;s so convenient to walk everywhere.&lt;/li&gt;
&lt;/ul&gt;
</description>
      
    </item>
    
    <item>
      <title>Now</title>
      <link>https://teoruiz.com/now/2025-04-07/</link>
      <pubDate>Mon, 07 Apr 2025 10:27:44 +0200</pubDate>
      
      <guid>https://teoruiz.com/now/2025-04-07/</guid>
      
      <description>&lt;figure&gt;&lt;a href="https://teoruiz.com/images/google-campus_hu_3d13fa9a624f0b1b.jpg" target="_blank" rel="noopener noreferrer"&gt;&lt;img src="https://teoruiz.com/images/google-campus_hu_2af82036667e5309.webp" alt="Google For Startups Campus, Madrid."
      width="1000"  height="666"  loading="lazy" &gt;
    &lt;/a&gt;&lt;figcaption&gt;
    &lt;div&gt;Google For Startups Campus, Madrid.
    &lt;/div&gt;
    &lt;div class="exif"&gt;
      
      
      Leica Q3 |
      
      
      ƒ/6.30
       | 1/320s
       | ISO 100
    &lt;/div&gt;
  &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;h2 id="resurrecting-my-site"&gt;Resurrecting my site&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been wanting to resurrect my site and blog more frequently for a while now, especially since I&amp;rsquo;ve mostly stopped using social networks.&lt;/p&gt;
&lt;p&gt;I was waiting to have some &lt;a href="https://teoruiz.com/posts"&gt;posts&lt;/a&gt; or &lt;a href="https://teoruiz.com/notes"&gt;notes&lt;/a&gt; content, but that might take some time. So I&amp;rsquo;m starting with this, my first &amp;ldquo;Now&amp;rdquo; page and an &lt;a href="https://teoruiz.com/uses"&gt;&amp;ldquo;Uses&amp;rdquo;&lt;/a&gt; page.&lt;/p&gt;
&lt;h2 id="vernon--fenneth"&gt;Vernon / Fenneth&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;At &lt;a href="https://vernonteam.com"&gt;Vernon&lt;/a&gt;, I have been working on our Product Studio, &lt;a href="https://fenneth.com"&gt;Fenneth&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I am basically working full-time on &lt;a href="https://dripddit.com/"&gt;Dripddit&lt;/a&gt;, our first business. My days are filled with &lt;a href="https://pydantic.ai"&gt;PydanticAI&lt;/a&gt; (as well as &lt;a href="https://openai.com"&gt;OpenAI&lt;/a&gt; and &lt;a href="https://www.anthropic.com"&gt;Anthropic&lt;/a&gt; APIs), &lt;a href="https://www.djangoproject.com"&gt;Django&lt;/a&gt;, Shopify, and SEO—and I haven&amp;rsquo;t been happier at work in a long, long time.&lt;/li&gt;
&lt;li&gt;I still spend some time consulting for clients, and I am really looking forward to a tech due diligence project I&amp;rsquo;ll be working on at the end of the month. &lt;em&gt;Really&lt;/em&gt; interesting AI company doing hard work.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reading-watching-misc"&gt;Reading, watching, misc.&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;This is month 4 since I basically stopped consuming social networks. I uninstalled Instagram, Twitter, LinkedIn, YouTube back in December. It was going to be only for a month but when that passed I just didn&amp;rsquo;t need to reinstall them. Somehow YouTube&amp;rsquo;s algorithm still kidnaps my brain through the browser though.&lt;/li&gt;
&lt;li&gt;I subscribed to &lt;a href="https://www.economist.com"&gt;The Economist&lt;/a&gt; a couple of months ago, with the goal of reading long form but still current-ish news coverage. Unfortunately the weeklies are just piling up because I just don&amp;rsquo;t find the energy to read about the current state of the world.&lt;/li&gt;
&lt;li&gt;Currently watching &lt;a href="https://www.hbo.com/the-white-lotus"&gt;The White Lotus&lt;/a&gt; S03 and &lt;a href="https://www.hbo.com/the-pitt"&gt;The Pitt&lt;/a&gt;, excruciatingly waiting for a new episode every week.&lt;/li&gt;
&lt;li&gt;I am reading the first book in the &lt;a href="https://www.goodreads.com/series/40917-blackwater"&gt;Blackwater&lt;/a&gt; series, &lt;a href="https://www.goodreads.com/book/show/120380.The_Flood"&gt;The Flood&lt;/a&gt;. Great escapist literature and the writing is superb, even translated into Spanish.&lt;/li&gt;
&lt;li&gt;I have been pretty steadily going to the gym twice a week with my personal trainer, barely skipping any sessions. My body and my mind are happier than ever.&lt;/li&gt;
&lt;/ul&gt;
</description>
      
    </item>
    
    <item>
      <title>About me</title>
      <link>https://teoruiz.com/about/</link>
      <pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://teoruiz.com/about/</guid>
      
      <description>&lt;p&gt;My name is Teo Ruiz. I am a software engineer, CTO, and entrepreneur. I&amp;rsquo;ve been building software products for 25 years.&lt;/p&gt;
&lt;p&gt;I was born on a random afternoon in November 1983 in southern Spain, and since then I&amp;rsquo;ve been, essentially, learning. I currently live in Madrid.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://teoruiz.com/about/avatar-pe_hu_25aaa1266f4b2ef.jpeg" target="_blank" rel="noopener noreferrer"&gt;&lt;img src="https://teoruiz.com/about/avatar-pe_hu_e22d0f4df619d9b5.webp" alt="In Sevilla, my hometown."
      width="1000"  height="1000"  loading="lazy" &gt;
    &lt;/a&gt;&lt;figcaption&gt;
    &lt;div&gt;In Sevilla, my hometown.
    &lt;/div&gt;
    &lt;div class="exif"&gt;
      
      
      iPhone 14 Pro |
      
      
      ƒ/1.90
       | 1/55s
       | ISO 320
    &lt;/div&gt;
  &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;h3 id="projects"&gt;Projects&lt;/h3&gt;
&lt;p&gt;Over the past ~25 years, I&amp;rsquo;ve been lucky enough to work on great projects with great people:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I co-maintained a &lt;a href="https://en.wikipedia.org/wiki/Guadalinex"&gt;Debian-based distribution&lt;/a&gt; (while being an &lt;a href="https://lists.debian.org/debian-newmaint/2003/02/msg00063.html"&gt;official Debian maintainer&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;I was the first employee, founding member of the engineering team, and &lt;strong&gt;VP of Engineering&lt;/strong&gt; at &lt;strong&gt;&lt;a href="https://www.fon.com"&gt;FON&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;I managed the web development team at &lt;strong&gt;&lt;a href="https://elpais.com"&gt;El País&lt;/a&gt;&lt;/strong&gt;, one of the biggest newspapers in Spain.&lt;/li&gt;
&lt;li&gt;I was &lt;strong&gt;CTO&lt;/strong&gt; at &lt;strong&gt;&lt;a href="https://www.busuu.com"&gt;Busuu&lt;/a&gt;&lt;/strong&gt;, the world&amp;rsquo;s largest language learning startup by number of users.&lt;/li&gt;
&lt;li&gt;I headed the engineering team at &lt;a href="https://www.lyst.com"&gt;Lyst&lt;/a&gt; in London.&lt;/li&gt;
&lt;li&gt;I was &lt;strong&gt;VP of Engineering&lt;/strong&gt; at &lt;strong&gt;&lt;a href="https://www.jobandtalent.com"&gt;Jobandtalent&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For five years, I was a &lt;strong&gt;Co-Founder at &lt;a href="https://trycircular.com"&gt;Circular&lt;/a&gt;&lt;/strong&gt;. We tried to fix the recruiting problem for candidate-driven industries, starting with &lt;em&gt;tech&lt;/em&gt; and &lt;em&gt;product&lt;/em&gt; recruiting for startups. We sold the company to &lt;a href="https://www.sngular.com"&gt;Sngular&lt;/a&gt; in 2024.&lt;/li&gt;
&lt;li&gt;I was a &lt;strong&gt;Co-Founder at &lt;a href="https://vernonteam.com"&gt;Vernon&lt;/a&gt;&lt;/strong&gt;, helping tech companies build software and digital products.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m now a &lt;strong&gt;Founder at &lt;a href="https://2701.ai"&gt;2701 Labs&lt;/a&gt;&lt;/strong&gt;, an applied AI and engineering studio building agent-native systems and model infrastructure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can see my full CV and contact me on &lt;a href="https://www.linkedin.com/in/teoruiz"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="interests"&gt;Interests&lt;/h3&gt;
&lt;p&gt;In tech, I like free software (free as in free speech), DevOps, systems and infrastructure engineering (especially on AWS and GCP), scalability, databases, automation, coding for fun and profit, the startup scene, and in general being geeky about technical things.&lt;/p&gt;
&lt;p&gt;In Real Life, I like &lt;a href="https://en.wikipedia.org/wiki/Pink_Floyd"&gt;music&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Bach"&gt;music&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Music"&gt;music&lt;/a&gt;, and then some other stuff (randomly sorted, ridiculously non-comprehensive list): writing, traveling, politics, quality alcoholic beverages, coffee, hanging out with my friends, food, photography, economics, reading, movies, and running.&lt;/p&gt;
&lt;h3 id="languages-and-writing"&gt;Languages and writing&lt;/h3&gt;
&lt;p&gt;Spanish is my mother tongue, but I have a crush on the English language, so some of the posts on this old &lt;a href="https://teoruiz.com/blog/"&gt;blog&lt;/a&gt; were written (some would say &lt;em&gt;committed&lt;/em&gt;) in that language. Please bear with me.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.python.org"&gt;Python&lt;/a&gt; is my preferred language for everything else, although I&amp;rsquo;ve had the doubtful pleasure of working with &lt;a href="https://php.net"&gt;PHP&lt;/a&gt; for a few years. The &lt;a href="https://www.golang.org"&gt;Go&lt;/a&gt; language has recently risen to the top of my toolbox ranking, and I try to use it for new projects.&lt;/p&gt;
&lt;h2 id="copyleft"&gt;Copyleft&lt;/h2&gt;
&lt;p&gt;Text, images, and other content are licensed under a Creative Commons License, unless noted otherwise.&lt;/p&gt;
&lt;div style="text-align: center;"&gt; &lt;a href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US" title="Blog licensed under a Creative Commons License"&gt;&lt;img style="text-align: center;" alt="Creative Commons license" border="0" src="https://teoruiz.com/images/somerights20.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
</description>
      
    </item>
    
    <item>
      <title>GPG Keys</title>
      <link>https://teoruiz.com/pages/gpg/</link>
      <pubDate>Sun, 28 Feb 2010 00:00:00 +0000</pubDate>
      
      <guid>https://teoruiz.com/pages/gpg/</guid>
      
      <description>&lt;p&gt;If you want to contact me, you can encrypt your email using one of these GPG keys, which are also &lt;a href="https://keybase.io/teoruiz"&gt;verified on Keybase&lt;/a&gt;:&lt;/p&gt;
&lt;h3 id="new-key-created-on-2013-09-14-key-id-0x4eca7c8f"&gt;New key created on 2013-09-14. Key ID: &lt;a href="https://teoruiz.com/keys/0x4eca7c8f.asc"&gt;&lt;code&gt;0x4ECA7C8F&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Key fingerprint = 29EF 5347 64CB E812 1F6E  A345 93FC 8512 4ECA 7C8F
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="deprecated-key-created-on-2004-01-06-key-id-0x72d2e007"&gt;&lt;em&gt;Deprecated&lt;/em&gt; key created on 2004-01-06. Key ID: &lt;a href="https://teoruiz.com/keys/0x72d2e007.asc"&gt;&lt;code&gt;0x72D2E007&lt;/code&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Key fingerprint = D3D1 559B EDF0 9317 C29E  80E6 3C81 158E 72D2 E007
&lt;/code&gt;&lt;/pre&gt;</description>
      
    </item>
    
  </channel>
</rss>