<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Jakub Hýl — Engineering Tutorials &amp; Notes</title>
    <link>https://jakubhyl.dev</link>
    <description>Interactive engineering tutorials and practical software notes by Jakub Hýl.</description>
    <language>en</language>
    <item>
      <title>Git Internals Visualized: Commits, Branches, HEAD, Merge &amp; Rebase</title>
      <link>https://jakubhyl.dev/tutorials/git-internals-visualized</link>
      <description>Manipulate a simplified commit graph to see how Git objects, branches, HEAD, merge, rebase, reset, and cherry-pick fit together.</description>
      <pubDate>Sat, 05 Sep 2026 10:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/git-internals-visualized</guid>
    </item>
    <item>
      <title>Rate Limiting Visualized: Fixed Window, Sliding Window &amp; Token Bucket</title>
      <link>https://jakubhyl.dev/tutorials/rate-limiting-algorithms-visualized</link>
      <description>Send traffic through fixed-window, sliding-window, and token-bucket limiters to compare bursts, fairness, state, 429 responses, and refill behavior.</description>
      <pubDate>Sat, 05 Sep 2026 09:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/rate-limiting-algorithms-visualized</guid>
    </item>
    <item>
      <title>Debugging Distributed Systems: Logs, Metrics &amp; Traces Visualized</title>
      <link>https://jakubhyl.dev/tutorials/debugging-distributed-systems-logs-metrics-traces</link>
      <description>Inspect trace waterfalls, correlated logs, span errors, latency, throughput, and retries to find where a distributed request actually failed.</description>
      <pubDate>Sat, 05 Sep 2026 08:40:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/debugging-distributed-systems-logs-metrics-traces</guid>
    </item>
    <item>
      <title>Push Notifications Visualized: Expo, APNs, FCM &amp; App Lifecycle</title>
      <link>https://jakubhyl.dev/tutorials/push-notifications-expo-apns-fcm-app-lifecycle</link>
      <description>Trace a notification from an Expo backend through APNs or FCM into foreground, background, and terminated app states—and then into a deep link.</description>
      <pubDate>Sat, 05 Sep 2026 08:30:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/push-notifications-expo-apns-fcm-app-lifecycle</guid>
    </item>
    <item>
      <title>Caching Visualized: Browser, CDN, API &amp; Database Caches</title>
      <link>https://jakubhyl.dev/tutorials/caching-browser-cdn-api-database-visualized</link>
      <description>Send requests through memory, browser, CDN, API, and database layers while changing TTL, capacity, frequency, staleness, and revalidation.</description>
      <pubDate>Sat, 05 Sep 2026 08:20:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/caching-browser-cdn-api-database-visualized</guid>
    </item>
    <item>
      <title>Background Jobs &amp; Message Queues Visualized: Workers, Retries &amp; Dead Letters</title>
      <link>https://jakubhyl.dev/tutorials/background-jobs-message-queues-visualized</link>
      <description>Watch producers, queues, workers, retries, duplicate deliveries, backpressure, and dead-letter handling change under real failure scenarios.</description>
      <pubDate>Sat, 05 Sep 2026 08:10:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/background-jobs-message-queues-visualized</guid>
    </item>
    <item>
      <title>SQL Query Planner Visualized: EXPLAIN, Index Scans &amp; Join Strategies</title>
      <link>https://jakubhyl.dev/tutorials/sql-query-planner-explain-visualized</link>
      <description>Change table size, selectivity, and available indexes to see a conceptual planner choose scans and joins—and learn to read EXPLAIN ANALYZE safely.</description>
      <pubDate>Sat, 05 Sep 2026 08:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/sql-query-planner-explain-visualized</guid>
    </item>
    <item>
      <title>SQL Transactions Visualized: Isolation Levels, Locks &amp; Race Conditions</title>
      <link>https://jakubhyl.dev/tutorials/sql-transactions-isolation-locks-race-conditions</link>
      <description>Interleave two transactions and see lost updates, snapshots, row locks, deadlocks, and PostgreSQL serialization failures as they happen.</description>
      <pubDate>Sat, 05 Sep 2026 08:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/sql-transactions-isolation-locks-race-conditions</guid>
    </item>
    <item>
      <title>Why You Should Never Trust the Client: Server-Authoritative App Architecture</title>
      <link>https://jakubhyl.dev/tutorials/server-authoritative-architecture</link>
      <description>Use trust boundaries, authorization, validation, idempotency, transactions, and server-owned rules to keep mobile games and APIs correct under tampering and retries.</description>
      <pubDate>Sat, 05 Sep 2026 07:40:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/server-authoritative-architecture</guid>
    </item>
    <item>
      <title>What Happens When Your App Makes an HTTP Request?</title>
      <link>https://jakubhyl.dev/tutorials/http-request-lifecycle-visualized</link>
      <description>Follow fetch through DNS, connection security, edge infrastructure, authentication, cache, database, serialization, retries, and the final UI update.</description>
      <pubDate>Sat, 05 Sep 2026 07:30:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/http-request-lifecycle-visualized</guid>
    </item>
    <item>
      <title>React Native Performance Visualized: JS Work, Rendering &amp; Dropped Frames</title>
      <link>https://jakubhyl.dev/tutorials/react-native-performance-visualized</link>
      <description>See how JavaScript, React rendering, native/UI work, lists, images, and state updates compete for a frame—and which optimizations actually help.</description>
      <pubDate>Sat, 05 Sep 2026 07:20:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/react-native-performance-visualized</guid>
    </item>
    <item>
      <title>Database Indexes Visualized: B-Trees, Pages &amp; Why Queries Get Faster</title>
      <link>https://jakubhyl.dev/tutorials/database-indexes-b-trees-visualized</link>
      <description>Explore page-oriented B-Tree indexes, splits, range scans, composite keys, selectivity, and the tradeoff between faster reads and more expensive writes.</description>
      <pubDate>Sat, 05 Sep 2026 07:10:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/database-indexes-b-trees-visualized</guid>
    </item>
    <item>
      <title>JavaScript Event Loop Visualized: Call Stack, Promises, Microtasks &amp; Async/Await</title>
      <link>https://jakubhyl.dev/tutorials/javascript-event-loop-visualized</link>
      <description>Step through the call stack, runtime APIs, microtasks, tasks, and rendering opportunities—and see why asynchronous JavaScript can still freeze an app.</description>
      <pubDate>Sat, 05 Sep 2026 07:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/javascript-event-loop-visualized</guid>
    </item>
    <item>
      <title>Why Big O Is Only the Beginning of Performance</title>
      <link>https://jakubhyl.dev/blog/why-big-o-is-only-the-beginning-of-performance</link>
      <description>Complexity explains how work grows. Real performance also depends on memory, I/O, data layout, runtimes, and the workload we actually ship.</description>
      <pubDate>Fri, 04 Sep 2026 20:55:23 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/why-big-o-is-only-the-beginning-of-performance</guid>
    </item>
    <item>
      <title>CPU Caches and Locality Visualized</title>
      <link>https://jakubhyl.dev/tutorials/cpu-caches-locality-visualized</link>
      <description>See how cache lines, locality, access order, and finite capacity make two algorithms with the same Big O behave differently on real hardware.</description>
      <pubDate>Fri, 04 Sep 2026 20:54:22 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/cpu-caches-locality-visualized</guid>
    </item>
    <item>
      <title>Virtual Memory Visualized: Pages, Page Tables and Address Translation</title>
      <link>https://jakubhyl.dev/tutorials/virtual-memory-visualized</link>
      <description>Follow a virtual address through the TLB and page table to physical memory, including page faults, protection, and the limits of the model.</description>
      <pubDate>Fri, 04 Sep 2026 20:53:20 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/virtual-memory-visualized</guid>
    </item>
    <item>
      <title>Processes, Threads and Concurrency Visualized</title>
      <link>https://jakubhyl.dev/tutorials/processes-threads-concurrency-visualized</link>
      <description>See how processes isolate resources, threads share state, schedules interleave, and synchronization prevents races while creating new tradeoffs.</description>
      <pubDate>Fri, 04 Sep 2026 20:52:17 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/processes-threads-concurrency-visualized</guid>
    </item>
    <item>
      <title>Arrays, Linked Lists, Stacks and Queues Visualized</title>
      <link>https://jakubhyl.dev/tutorials/arrays-linked-lists-stacks-queues-visualized</link>
      <description>How the organization of linear data makes indexing, insertion, removal, and traversal cheap or expensive.</description>
      <pubDate>Fri, 04 Sep 2026 15:01:10 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/arrays-linked-lists-stacks-queues-visualized</guid>
    </item>
    <item>
      <title>Dynamic Programming Visualized</title>
      <link>https://jakubhyl.dev/tutorials/dynamic-programming-visualized</link>
      <description>From repeated recursion to carefully defined states, memoization, tabulation, and the tradeoffs behind dynamic programming.</description>
      <pubDate>Fri, 04 Sep 2026 15:01:10 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/dynamic-programming-visualized</guid>
    </item>
    <item>
      <title>Heaps and Priority Queues Visualized</title>
      <link>https://jakubhyl.dev/tutorials/heaps-priority-queues-visualized</link>
      <description>Why a binary heap keeps the next priority at the root, maps naturally to an array, and supports efficient scheduling.</description>
      <pubDate>Fri, 04 Sep 2026 15:01:10 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/heaps-priority-queues-visualized</guid>
    </item>
    <item>
      <title>Recursion and the Call Stack Visualized</title>
      <link>https://jakubhyl.dev/tutorials/recursion-call-stack-visualized</link>
      <description>Recursion explained as ordinary function calls, pending stack frames, base cases, and a controlled return journey.</description>
      <pubDate>Fri, 04 Sep 2026 15:01:10 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/recursion-call-stack-visualized</guid>
    </item>
    <item>
      <title>Stack vs Heap: How Memory Works</title>
      <link>https://jakubhyl.dev/tutorials/stack-vs-heap-how-memory-works</link>
      <description>A careful conceptual model of call frames, dynamic allocation, ownership, lifetime, and what managed runtimes can change.</description>
      <pubDate>Fri, 04 Sep 2026 15:01:10 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/stack-vs-heap-how-memory-works</guid>
    </item>
    <item>
      <title>Trees and Binary Search Trees Visualized</title>
      <link>https://jakubhyl.dev/tutorials/trees-binary-search-trees-visualized</link>
      <description>Tree vocabulary, binary-search-tree invariants, deletion cases, traversals, and why balance determines performance.</description>
      <pubDate>Fri, 04 Sep 2026 15:01:10 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/trees-binary-search-trees-visualized</guid>
    </item>
    <item>
      <title>Designing Retry-Safe APIs with Idempotency</title>
      <link>https://jakubhyl.dev/tutorials/designing-retry-safe-apis-idempotency</link>
      <description>Retries are normal. Idempotency makes important API operations safe to retry without pretending distributed systems can guarantee magic exactly-once execution.</description>
      <pubDate>Fri, 04 Sep 2026 12:46:50 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/designing-retry-safe-apis-idempotency</guid>
    </item>
    <item>
      <title>Implementing Secure Account Deletion in Expo and Supabase</title>
      <link>https://jakubhyl.dev/tutorials/secure-account-deletion-expo-supabase</link>
      <description>Account deletion in an Expo app is a controlled workflow: confirm intent, authenticate the caller, clean up data and providers, then remove the identity safely.</description>
      <pubDate>Fri, 04 Sep 2026 12:46:50 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/secure-account-deletion-expo-supabase</guid>
    </item>
    <item>
      <title>Testing the States That Break Mobile Apps</title>
      <link>https://jakubhyl.dev/tutorials/testing-states-that-break-mobile-apps</link>
      <description>A production testing matrix for React Native apps: installation, authentication, offline behavior, purchases, lifecycle changes, and data migrations.</description>
      <pubDate>Fri, 04 Sep 2026 12:46:50 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/testing-states-that-break-mobile-apps</guid>
    </item>
    <item>
      <title>The Features I Decide Not to Build</title>
      <link>https://jakubhyl.dev/blog/features-i-decide-not-to-build</link>
      <description>Scope control is product engineering: every feature adds states, maintenance, support, and decisions that must remain understandable long after the first implementation.</description>
      <pubDate>Fri, 04 Sep 2026 12:46:50 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/features-i-decide-not-to-build</guid>
    </item>
    <item>
      <title>What Mobile Forensics Taught Me About Building Software Products</title>
      <link>https://jakubhyl.dev/blog/mobile-forensics-building-products</link>
      <description>Lessons from C++, XML/XQuery, and investigating iOS and Android application artifacts that still shape how I approach reliability, compatibility, privacy, and product engineering.</description>
      <pubDate>Fri, 04 Sep 2026 12:46:50 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/mobile-forensics-building-products</guid>
    </item>
    <item>
      <title>Why Some Apps Should Not Have Accounts</title>
      <link>https://jakubhyl.dev/blog/why-some-apps-should-not-have-accounts</link>
      <description>Accounts, cloud sync, analytics, and databases can be valuable product infrastructure. They should exist because the product needs them, not because they make an architecture look sophisticated.</description>
      <pubDate>Fri, 04 Sep 2026 12:46:50 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/why-some-apps-should-not-have-accounts</guid>
    </item>
    <item>
      <title>Apple and Google Sign-In with Expo and Supabase</title>
      <link>https://jakubhyl.dev/tutorials/apple-google-sign-in-expo-supabase</link>
      <description>A production-minded approach to social sign-in in Expo: native Apple credentials, OAuth redirects, Supabase sessions, secure storage, and the identity edge cases that affect real users.</description>
      <pubDate>Fri, 04 Sep 2026 08:50:18 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/apple-google-sign-in-expo-supabase</guid>
    </item>
    <item>
      <title>Building an Offline-First React Native App</title>
      <link>https://jakubhyl.dev/tutorials/building-offline-first-react-native-app</link>
      <description>A practical architecture for React Native apps that remain useful without a connection: local source of truth, migrations, sync queues, conflicts, and honest failure handling.</description>
      <pubDate>Fri, 04 Sep 2026 08:50:18 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/building-offline-first-react-native-app</guid>
    </item>
    <item>
      <title>How I Use AI to Build Software Without Letting AI Own the Architecture</title>
      <link>https://jakubhyl.dev/blog/how-i-use-ai-without-letting-it-own-the-architecture</link>
      <description>AI helps me move faster through implementation, research, and review. It does not replace the responsibility to understand the system, validate the result, or make product decisions.</description>
      <pubDate>Fri, 04 Sep 2026 08:50:18 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/how-i-use-ai-without-letting-it-own-the-architecture</guid>
    </item>
    <item>
      <title>What I Learned From Shipping Multiple Apps While Still at University</title>
      <link>https://jakubhyl.dev/blog/what-i-learned-shipping-apps-at-university</link>
      <description>University gave me the fundamentals. Shipping Spheriz, PassportPlate, 100 Reps, Ritual Grove, and DevGuess taught me what happens after the code first works.</description>
      <pubDate>Fri, 04 Sep 2026 08:50:18 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/what-i-learned-shipping-apps-at-university</guid>
    </item>
    <item>
      <title>RevenueCat + Expo: Subscriptions, Lifetime Purchases, and Restore</title>
      <link>https://jakubhyl.dev/tutorials/revenuecat-expo-subscriptions</link>
      <description>How to add in-app purchases to an Expo app with RevenueCat: entitlements over product IDs, why restore is mandatory, and why the client is the wrong place to trust a purchase.</description>
      <pubDate>Fri, 04 Sep 2026 08:26:19 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/revenuecat-expo-subscriptions</guid>
    </item>
    <item>
      <title>Building a Secure API with Cloudflare Workers, Zod, and Rate Limiting</title>
      <link>https://jakubhyl.dev/tutorials/secure-api-cloudflare-workers-zod-rate-limiting</link>
      <description>Validating every input at the edge, rate limiting without a database, and using signed state so a client can hold data it cannot forge.</description>
      <pubDate>Fri, 04 Sep 2026 08:26:19 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/secure-api-cloudflare-workers-zod-rate-limiting</guid>
    </item>
    <item>
      <title>How to Ship a React Native Expo App to the App Store with EAS</title>
      <link>https://jakubhyl.dev/tutorials/ship-expo-app-to-app-store-with-eas</link>
      <description>The full path from a working Expo project to an approved App Store release: build profiles, credentials, versioning, TestFlight, and the review rejections that are easiest to avoid.</description>
      <pubDate>Fri, 04 Sep 2026 08:26:19 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/ship-expo-app-to-app-store-with-eas</guid>
    </item>
    <item>
      <title>Big O Notation Visualized: Understanding Time Complexity</title>
      <link>https://jakubhyl.dev/tutorials/understanding-big-o-notation</link>
      <description>What Big O actually measures, how each growth class behaves as input grows, and when complexity decides your architecture versus when it is the wrong thing to optimize.</description>
      <pubDate>Fri, 04 Sep 2026 08:26:19 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/understanding-big-o-notation</guid>
    </item>
    <item>
      <title>From a C++ Experiment to Spheriz: Rethinking the Falling-Block Puzzle</title>
      <link>https://jakubhyl.dev/blog/building-spheriz</link>
      <description>More than two years ago, Spheriz was a rough C++ experiment built around one question: what happens if a falling-block puzzle stops being rectangular? This is how that prototype became a full 2D and 3D mobile game.</description>
      <pubDate>Fri, 04 Sep 2026 06:41:04 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/building-spheriz</guid>
    </item>
    <item>
      <title>How My Girlfriend Accidentally Gave Me the Idea for PassportPlate</title>
      <link>https://jakubhyl.dev/blog/building-passportplate</link>
      <description>The real story behind PassportPlate: a tired kitchen conversation, a half-joking suggestion to spin a wheel, and how that became an offline recipe app.</description>
      <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/building-passportplate</guid>
    </item>
    <item>
      <title>Building 100 Reps: A Focused Workout Tracker for Daily Consistency</title>
      <link>https://jakubhyl.dev/blog/building-100-reps-workout-tracker</link>
      <description>How I built a focused workout tracker around daily reps, animated progress, premium unlocks, and the challenge of shipping a polished mobile app.</description>
      <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/building-100-reps-workout-tracker</guid>
    </item>
    <item>
      <title>Building Ritual Grove: From One Prompt to a Finished Habit Tracker</title>
      <link>https://jakubhyl.dev/blog/building-ritual-grove</link>
      <description>How a rough AI-assisted prototype became a real mobile habit tracker built with React Native and Expo.</description>
      <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/building-ritual-grove</guid>
    </item>
    <item>
      <title>Binary Search Visualized</title>
      <link>https://jakubhyl.dev/tutorials/binary-search-visualized</link>
      <description>A step-by-step guide to binary search, including the core invariant, common implementation bugs, and why halving the search interval changes performance completely.</description>
      <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/binary-search-visualized</guid>
    </item>
    <item>
      <title>How and Why I Built DevGuess</title>
      <link>https://jakubhyl.dev/blog/how-i-built-devguess</link>
      <description>The story behind DevGuess: from Wordle-inspired curiosity to a developer-first guessing game built around real tech metadata.</description>
      <pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/how-i-built-devguess</guid>
    </item>
    <item>
      <title>Graph Algorithms Part 2: Dijkstra and Topological Sort</title>
      <link>https://jakubhyl.dev/tutorials/dijkstra-topological-sort-visualized</link>
      <description>Visualize shortest paths with Dijkstra's algorithm and understand dependency resolution with Topological Sort (Kahn's algorithm).</description>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/dijkstra-topological-sort-visualized</guid>
    </item>
    <item>
      <title>Graph Traversal Algorithms Visualized</title>
      <link>https://jakubhyl.dev/tutorials/graph-traversal-algorithms-visualized</link>
      <description>A visual guide to exploring graphs using Breadth-First Search (BFS) and Depth-First Search (DFS), and understanding how traversal strategy affects performance and behavior.</description>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/graph-traversal-algorithms-visualized</guid>
    </item>
    <item>
      <title>Building This Portfolio</title>
      <link>https://jakubhyl.dev/blog/building-this-portfolio</link>
      <description>Notes on the design decisions and technical choices behind this portfolio site.</description>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/blog/building-this-portfolio</guid>
    </item>
    <item>
      <title>Hash Tables Visualized</title>
      <link>https://jakubhyl.dev/tutorials/hash-tables-visualized</link>
      <description>A visual guide to how hash tables really work: hashing, collisions, probing, resizing, and why performance can collapse if you ignore the details.</description>
      <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/hash-tables-visualized</guid>
    </item>
    <item>
      <title>Advanced Sorting Algorithms Visualized</title>
      <link>https://jakubhyl.dev/tutorials/advanced-sorting-algorithms</link>
      <description>Explore non-comparison sorting algorithms and selection algorithms including QuickSelect, Counting Sort, and Lexicographic Counting Sort.</description>
      <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/advanced-sorting-algorithms</guid>
    </item>
    <item>
      <title>Sorting Algorithms Visualized</title>
      <link>https://jakubhyl.dev/tutorials/understanding-sorting-algorithms</link>
      <description>A visual guide to understanding common sorting algorithms including Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, and Merge Sort.</description>
      <pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate>
      <dc:creator>Jakub Hýl</dc:creator>
      <guid isPermaLink="true">https://jakubhyl.dev/tutorials/understanding-sorting-algorithms</guid>
    </item>
  </channel>
</rss>
