<script data-pm-proxy="intercept"></script><?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" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Sheerluck's Digital Garden]]></title><description><![CDATA[My digital garden]]></description><link>https://mrsheerluck.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg</url><title>Sheerluck&apos;s Digital Garden</title><link>https://mrsheerluck.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 03 Sep 2026 05:43:06 GMT</lastBuildDate><atom:link href="/__u/mrsheerluck.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Sheerluck]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[mrsheerluck@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[mrsheerluck@substack.com]]></itunes:email><itunes:name><![CDATA[Sheerluck]]></itunes:name></itunes:owner><itunes:author><![CDATA[Sheerluck]]></itunes:author><googleplay:owner><![CDATA[mrsheerluck@substack.com]]></googleplay:owner><googleplay:email><![CDATA[mrsheerluck@substack.com]]></googleplay:email><googleplay:author><![CDATA[Sheerluck]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Your First GPUI App - Building a Desktop UI in Rust]]></title><description><![CDATA[I&#8217;m starting a new series on building desktop applications with Rust and GPUI]]></description><link>https://mrsheerluck.substack.com/p/your-first-gpui-app-building-a-desktop</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/your-first-gpui-app-building-a-desktop</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Sun, 30 Aug 2026 01:28:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/NT2XPvtof-Y" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>I&#8217;m starting a new series on building desktop applications with Rust and GPUI</p><p>For the first article, we&#8217;re <strong>building a Linear-inspired</strong> UI Clone</p><div id="youtube2-NT2XPvtof-Y" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;NT2XPvtof-Y&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/NT2XPvtof-Y?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The goal of this series is to understand GPUI properly while documenting the process so you can follow along and build your own applications.</p><p>Read the first article: <a href="https://blog.sheerluck.dev/posts/your-first-gpui-app-building-a-desktop-ui-in-rust/">article link</a></p><p>Github source code: <a href="https://github.com/MrSheerluck/gpui-linear-ui-clone">repo link</a></p><p>More GPUI projects and deeper concepts are coming in the series.</p>]]></content:encoded></item><item><title><![CDATA[Build a Scientific Calculator in Rust - Understanding Variables and Types]]></title><description><![CDATA[Hi, I&#8217;ve started writing a new Rust series and in this we are going to follow the same project building pattern.]]></description><link>https://mrsheerluck.substack.com/p/build-a-scientific-calculator-in</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/build-a-scientific-calculator-in</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Wed, 26 Aug 2026 03:09:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi,</p><p>I&#8217;ve started writing a new Rust series and in this we are going to follow the same project building pattern. One project per article but this time, it&#8217;ll be very comprehensive and covers a good amount of theory as well.</p><p>This is the first article of our new Rust series.</p><p>Article: <a href="https://blog.sheerluck.dev/posts/understanding-rust-variables-and-types-by-building-a-scientific-calculator/">article link</a></p>]]></content:encoded></item><item><title><![CDATA[New post: Error Handling in Axum (Rust)]]></title><description><![CDATA[Hey folks,]]></description><link>https://mrsheerluck.substack.com/p/new-post-error-handling-in-axum-rust</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/new-post-error-handling-in-axum-rust</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Wed, 08 Jul 2026 03:26:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey folks,</p><p>Just published the next article in my Learning Backend series, this one&#8217;s about <strong>error handling in Axum</strong>, built around a practical example: a Pastebin API.</p><p>If you&#8217;ve ever wondered how to handle errors cleanly in an Axum app instead of littering your code with <code>unwrap()</code>, this one&#8217;s for you.</p><p>Article link - <a href="https://blog.sheerluck.dev/posts/learn-axum-error-handling-by-building-pastebin-api-in-rust/">Learn Axum Error Handling by Building a Pastebin API in Rust</a></p><p>Source code - <a href="https://github.com/MrSheerluck/pastebin-api-in-axum">here</a></p><blockquote><p><span>If my writing helped you, you can support it via </span><a href="https://github.com/sponsors/MrSheerluck">GitHub Sponsors</a><span>. It helps me keep writing about Rust, backend, and gamedev.</span></p></blockquote><p>As always, feedback and thoughts are welcome.</p><p>See you soon.</p>]]></content:encoded></item><item><title><![CDATA[Learn Axum Basics and Routing by Building a URL Shortener]]></title><description><![CDATA[We are starting a new backend series in Rust and there will be around 15 articles covering all the important concepts related to backend engineering and we will build a ton of interesting projects]]></description><link>https://mrsheerluck.substack.com/p/learn-axum-basics-and-routing-by</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/learn-axum-basics-and-routing-by</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Thu, 02 Jul 2026 01:18:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>This week starts a new series, <strong>Backend Engineering with Axum</strong>, and Part 1 is live: building a URL shortener while learning how Axum actually works.</p><p></p><p>No shared codebase across this series, no capstone at the end. Each article is a standalone project built around one concept, sequenced so each one is easiest to grasp once the last one is in place. Next up: request bodies and proper error handling, building a Pastebin API.</p><p>Read it here: <a href="https://blog.sheerluck.dev/posts/learn-axum-basics-and-routing-by-building-a-url-shortener/">article link</a></p><p>Source code: <a href="https://github.com/MrSheerluck/url-shortener-in-axum">Github source code</a></p><p>If you build the project along with me, hit reply and let me know how it went, or where you got stuck. That feedback shapes what I cover next.</p><blockquote><p><span>If my writing helped you, you can support it with $1+ via </span><a href="https://ko-fi.com/mrsheerluck">[Ko-fi]</a><span>, or a monthly pledge via </span><a href="https://github.com/sponsors/MrSheerluck">[GitHub Sponsors]</a><span>. It helps me keep writing about Rust, backend, and gamedev.</span></p></blockquote><p>Thanks, see you soon with another one</p>]]></content:encoded></item><item><title><![CDATA[Learn SQL and SQLx by Building a Book Library CLI in Rust]]></title><description><![CDATA[Hey, New post is up: we&#8217;re learning SQL from scratch, no database experience needed, then bringing it into Rust with SQLx.]]></description><link>https://mrsheerluck.substack.com/p/learn-sql-and-sqlx-by-building-a</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/learn-sql-and-sqlx-by-building-a</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Fri, 26 Jun 2026 01:35:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>New post is up: we&#8217;re learning SQL from scratch, no database experience needed, then bringing it into Rust with SQLx.</p><p>If you already know SQL, you can skim Part 1, but the schema and patterns there (GROUP BY on genres, subqueries for rankings) carry straight into the project, so it&#8217;s worth at least a glance.</p><p>Read it here: <a href="https://blog.sheerluck.dev/posts/learn-sql-and-sqlx-by-building-a-book-library-cli-in-rust/">article link</a></p><p>As always, source code&#8217;s on <a href="https://github.com/MrSheerluck/bookcli">GitHub</a>.</p><p>P.S. Next up: designing relational schemas from scratch, going from requirements to a normalized, production-ready design. That&#8217;ll build directly on this post&#8217;s schema.</p>]]></content:encoded></item><item><title><![CDATA[New post: Build an HTTP/1.1 Server in Rust with Async/Await and Tokio]]></title><description><![CDATA[Hey, Part 11 of the Learning Rust series is live.]]></description><link>https://mrsheerluck.substack.com/p/new-post-build-an-http11-server-in</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/new-post-build-an-http11-server-in</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Wed, 17 Jun 2026 03:22:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>Part 11 of the Learning Rust series is live.</p><p>This one covers async/await, the part of Rust that trips up a lot of people. We go through futures, the Future trait, how .await actually works, and what the Tokio runtime is doing under the hood (the reactor + executor model).</p><p>Then we build a working HTTP/1.1 server from scratch, raw TCP listener, manual request parsing, static file serving, proper content types, concurrent connection handling with tokio::spawn. No frameworks, no magic. Just you, Tokio, and the standard library.</p><p>Read it here &#8594; <a href="https://blog.sheerluck.dev/posts/learn-rust-async-await-by-building-an-http-server/">article link</a></p><p>Github Source code &#8594; <a href="https://github.com/MrSheerluck/async-http-in-rust">here</a></p><p>Next up: SQLx, SQLite, compile-time checked queries, and a Book Library CLI.</p><p>See you then.</p>]]></content:encoded></item><item><title><![CDATA[New post: Rust concurrency by building a thread pool from scratch]]></title><description><![CDATA[This one covers the concurrency primitives you need to write real multi-threaded Rust, OS threads, mpsc channels, Arc, Mutex and then puts all of them together into a working thread pool built from scratch.]]></description><link>https://mrsheerluck.substack.com/p/new-post-rust-concurrency-by-building</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/new-post-rust-concurrency-by-building</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Fri, 12 Jun 2026 02:38:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This one covers the concurrency primitives you need to write real multi-threaded Rust, OS threads, <code>mpsc</code> channels, <code>Arc</code>, <code>Mutex</code> and then puts all of them together into a working thread pool built from scratch.</p><p></p><p>Read here &#8594; <a href="https://blog.sheerluck.dev/posts/learn-rust-concurrency-by-building-a-thread-pool/">click here to read</a></p><p>github &#8594; <a href="https://github.com/MrSheerluck/threadpool">source code here</a></p>]]></content:encoded></item><item><title><![CDATA[New Rust article: Smart Pointers and Interior Mutability (Git Commit Graph Viewer)]]></title><description><![CDATA[Hey, A new article is live in the Learning Rust series.]]></description><link>https://mrsheerluck.substack.com/p/new-rust-article-smart-pointers-and</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/new-rust-article-smart-pointers-and</guid><pubDate>Wed, 03 Jun 2026 01:55:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>A new article is live in the Learning Rust series.</p><p>This one covers Box, Rc, RefCell, and Weak, the smart pointer family and ties them together with a project: a Git Commit Graph Viewer that reads a real .git directory, parses every commit object, builds a connected DAG and renders the commit history as an ASCII graph in your terminal.</p><p></p><p></p><p>Read it here &#8594; <a href="https://blog.sheerluck.dev/posts/learn-rust-smart-pointers-and-interior-mutability-by-building-git-commit-graph-viewer/">article link</a></p><p>Source code: <a href="https://github.com/MrSheerluck/git-commit-graph">source code</a></p><p>If you found it useful, sharing it with someone learning Rust goes a long way.</p><p>Thanks for reading.</p>]]></content:encoded></item><item><title><![CDATA[Learn Rust Closures by building a tiny linter]]></title><description><![CDATA[This one covers closures, trait objects, and dynamic dispatch &#8212; by building a rule-based text linter where each lint rule is a closure stored in a Vec<Box<dyn Fn>>.]]></description><link>https://mrsheerluck.substack.com/p/learn-rust-closures-by-building-a</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/learn-rust-closures-by-building-a</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Sat, 30 May 2026 01:31:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This one covers closures, trait objects, and dynamic dispatch &#8212; by building a rule-based text linter where each lint rule is a closure stored in a <code>Vec&lt;Box&lt;dyn Fn&gt;&gt;</code>.</p><p>Read it here &#8594; <a href="https://blog.sheerluck.dev/posts/learn-rust-closures-by-building-a-tiny-linter/">article link</a></p><p>Source code &#8594; https://github.com/MrSheerluck/linter-rust</p><p>If you like what you are reading, then please share it on your socials. This would really help me to keep going and deliver these kind of content. Thank you for your immense support.</p><p>See you soon</p>]]></content:encoded></item><item><title><![CDATA[Build and Deploy Pong with Bevy (New Series)]]></title><description><![CDATA[Hey, I&#8217;m starting something new.]]></description><link>https://mrsheerluck.substack.com/p/build-and-deploy-pong-with-bevy-new</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/build-and-deploy-pong-with-bevy-new</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Sat, 23 May 2026 01:19:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>I&#8217;m starting something new.</p><p>Alongside the Rust series, I&#8217;m starting a game dev series. The structure is the same: each article, we build one game and learn concepts along the way. All the games come from the 20 Games Challenge list.</p><p>I&#8217;m learning Bevy as I write these, so this series is honest by default.</p><p>The first one is Pong.</p><p>Here&#8217;s what we cover:</p><p>- What a game engine actually does and why ECS exists</p><p>- Setting up a Bevy project and opening a window</p><p>- Spawning paddles and a ball as entities with components</p><p>- Writing systems for player input and movement</p><p>- Implementing AABB collision detection from scratch</p><p>- Scoring and updating a live score display</p><p>- Compiling to WebAssembly and deploying to Itch.io</p><p>The deployed game is live on Itch.io if you want to try it before reading.</p><p>Read the full article here &#8594; <a href="https://blog.sheerluck.dev/posts/learn-the-basics-of-bevy-by-building-and-deploying-pong-to-itch-io/">click here</a></p><p>Github repo &#8594; <a href="https://github.com/MrSheerluck/bevy-pong">source code</a></p><p>If you like what you are reading, then please consider sharing this with your friends and peers. This will really help me a lot. Thank you so much for your consistent support</p><p>See you in the next one.</p>]]></content:encoded></item><item><title><![CDATA[Learn Rust HashMap and Iterators by Building a Git Object Store Reader]]></title><description><![CDATA[Hey, New post is up]]></description><link>https://mrsheerluck.substack.com/p/learn-rust-hashmap-and-iterators</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/learn-rust-hashmap-and-iterators</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Wed, 20 May 2026 02:25:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>New post is up</p><p>This is post 7 in the learning-rust series. If you&#8217;ve been following along, you already know ownership, borrowing, structs, enums, error handling, generics, traits, and lifetimes. This one covers the two things that were missing. <code>HashMap&lt;K, V&gt;</code> and the <code>Iterator</code> trait and the project is the most interesting one yet.</p><p>Here&#8217;s what we build: a program that reads a real <code>.git</code> folder, decompresses loose objects with zlib, parses commits and trees into typed structs, builds a commit graph using a <code>HashMap</code>, and renders <code>git log --oneline</code> output. Less than 200 lines of Rust.</p><p>On the way there, we cover:</p><p>- How <code>HashMap&lt;K, V&gt;</code> works like insertion, retrieval, and the Entry API for single-lookup insert-or-update</p><p>- Ownership rules when you move a <code>String</code> into a map</p><p>- What the <code>Iterator</code> trait actually is (`next` returning `Option&lt;Self::Item&gt;`)</p><p>- The three forms: <code>.iter()</code>, <code>.iter_mut()</code>, <code>.into_iter()</code> and what each produces</p><p>- Adapters like <code>map</code>, <code>filter</code>, <code>flat_map</code>, <code>take</code>, <code>skip</code>, <code>zip</code>, <code>chain</code>, <code>filter_map</code> and why they&#8217;re lazy</p><p>- Chaining adapters and how values flow through the pipeline one at a time</p><p>- Git&#8217;s object storage model: blobs, trees, commits, and the <code>&lt;type&gt; &lt;size&gt;\0&lt;content&gt;</code> wire format</p><p>The <code>flat_map</code> section in particular makes a lot more sense once you see it used to walk a recursive tree structure.</p><p>Read it here: <a href="https://blog.sheerluck.dev/posts/learn-hashmap-iterators-by-building-a-git-object-store-reader/">article link</a></p><p>Github Source Code: <a href="https://github.com/MrSheerluck/git-log-in-rust">Click here for source code</a></p><p>I hope you like these articles. If you have any request for any particular topic, do let me know.</p><p>It would help me a lot if you can share the article with your friends and peers. Thank you so much for supporting</p><p>See you in the next one.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Learn Rust Lifetimes by Building a Generic LRU Cache]]></title><description><![CDATA[We go through what lifetimes actually are, why the compiler needs them, lifetime annotations, the three elision rules, and the `&#8217;static` lifetime.]]></description><link>https://mrsheerluck.substack.com/p/learn-rust-lifetimes-by-building</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/learn-rust-lifetimes-by-building</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Wed, 13 May 2026 04:18:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!P1-S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!P1-S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_424, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 424w, /__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_848, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 848w, /__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_1272, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 1272w, /__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_1456, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!P1-S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png" width="876" height="406" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:406,&quot;width&quot;:876,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89777,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://mrsheerluck.substack.com/i/197447303?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_424, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 424w, /__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_848, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 848w, /__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_1272, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 1272w, /__u/substackcdn.com/image/fetch/$s_!P1-S!, /__u/mrsheerluck.substack.com/w_1456, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c0c2aad-f7f2-4c79-bb2b-3a8a44d05782_876x406.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey,</p><p>New article is up.</p><p>This one covers lifetimes, the concept that trips up most Rust beginners. We go through what lifetimes actually are, why the compiler needs them, lifetime annotations, the three elision rules, and the `&#8217;static` lifetime.</p><p>Then we build a generic LRU cache that:</p><ul><li><p>Is generic over key and value types</p></li><li><p>Holds a borrowed config reference with a lifetime annotation</p></li><li><p>Returns zero-copy references from `get` using `Option&lt;&amp;V&gt;`</p></li><li><p>Is split across `src/cache.rs` and `src/main.rs`</p></li></ul><p>Only used standard library to build this.</p><p>Read it here &#8594; <a href="https://blog.sheerluck.dev/posts/learn-rust-lifetimes-by-building-a-lru-cache/">here</a></p><p>Github Source Code &#8594; <a href="https://github.com/MrSheerluck/lru_cache_in_rust">here</a></p><p>If you like reading this, please subscribe and share this with others. It'll really help me and motivate me to keep publishing more such articles.</p><p>See you in the next one.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Learn Rust Generics and Traits By Building a Mini Blackjack Game]]></title><description><![CDATA[Hey, New article is up on the blog.]]></description><link>https://mrsheerluck.substack.com/p/learn-rust-generics-and-traits-by</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/learn-rust-generics-and-traits-by</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Sat, 09 May 2026 12:00:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>New article is up on the blog.</p><p>Read it here: <a href="https://blog.sheerluck.dev/posts/learn-generics-traits-in-rust-by-building-blackjack-card-game-engine/">learn Rust Generics and Traits</a></p><p>Github repo: <a href="https://github.com/MrSheerluck/blackjack-card-engine">source code is here</a></p><blockquote><p>If you like these tutorials, then please share it with others. It would really mean a lot to me if more and more people read and learn from these articles. Thank you again for your consistent support</p></blockquote><p>This one covers generics and traits in Rust. Two concepts that confused me for a while when I was starting out. Instead of going through theory, we build a mini blackjack game that puts both to work.</p><p>Here is what the article covers:</p><ul><li><p>What generics are and why they exist</p></li><li><p>The monomorphization model (zero runtime cost)</p></li><li><p>What traits are and how to implement them</p></li><li><p>Trait bounds, default implementations, the orphan rule</p></li><li><p>The derive macro and which traits you get for free</p></li><li><p>How to combine generics and traits on structs</p></li><li><p>Building a generic Deck and Hand that works with any card type</p></li><li><p>Proper error handling with Result, thiserror, and the ? operator throughout</p></li></ul><p>By the end you will have a working command line blackjack game and a generic card engine that can be extended to any card type.</p><p>Happy learning,</p><p>Sheerluck</p>]]></content:encoded></item><item><title><![CDATA[Build a JSON Parser in Rust from Scratch]]></title><description><![CDATA[Hey, 3rd post on Rust series is here.]]></description><link>https://mrsheerluck.substack.com/p/build-a-json-parser-in-rust-from</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/build-a-json-parser-in-rust-from</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Wed, 29 Apr 2026 00:31:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>3rd post on Rust series is here.</p><p>This one is about structs, enums, and pattern matching. Instead of explaining them in the abstract, we build a JSON parser from scratch. No crates. No shortcuts.</p><p>Here&#8217;s what that means concretely: you write a lexer that walks raw bytes and produces tokens, then a recursive descent parser that turns those tokens into a typed JsonValue enum that can represent any valid JSON objects, arrays, strings, numbers, booleans, null, nested arbitrarily deep.</p><p>By the end you have something real: feed it {&#8221;scores&#8221;: [95, 87, 100], &#8220;info&#8221;: {&#8221;city&#8221;: &#8220;delhi&#8221;, &#8220;zip&#8221;: null}} and it parses, traverses, and reconstructs it correctly. Unicode escapes, nested structures, negative floats</p><p>What the phase covers:</p><ul><li><p>Structs: fields, impl blocks, all three self forms (&amp;self, &amp;mut self, self), associated functions, field shorthand</p></li><li><p>Enums: basic variants, data-carrying variants, recursive variants</p></li><li><p>Pattern matching: exhaustiveness, binding, reference patterns, guards, @ bindings, range patterns, wildcards</p></li><li><p>if let and while let as syntactic sugar over match</p></li><li><p>Destructuring in let bindings and for loops</p></li></ul><p>If you&#8217;ve been following along from Phase 1 (Brainfuck interpreter) and Phase 2 (grep clone), this is where things start feeling like real Rust.</p><p>Read it here &#8594; <a href="https://blog.sheerluck.dev/posts/learn-rust-structs-enums-pattern-matching-by-building-a-json-parser/">Build JSON Parser from Scratch in Rust</a></p><p>Github repo &#8594; <a href="https://github.com/MrSheerluck/json-parser-in-rust">Get the source code here</a></p><p>Next up: a TOML config parser with schema validation and structured error reporting. Zero unwrap calls. That&#8217;s where proper error handling comes in.</p><p>If you like articles like these, then please share it with your friends and peers. It would help me a lot and keep me motivated to post more such content.</p><p>Thank you so much for your support.</p>]]></content:encoded></item><item><title><![CDATA[Learn Rust Ownership and Borrowing By Building Mini Grep]]></title><description><![CDATA[In this post, we are going to learn about the problem Rust is solving, Rust's ownership, borrowing concept and build a mini grep clone in Rust.]]></description><link>https://mrsheerluck.substack.com/p/learn-rust-ownership-and-borrowing</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/learn-rust-ownership-and-borrowing</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Fri, 10 Apr 2026 02:44:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aq_p!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6faff96-a20d-46a9-b5df-dcd3576cad8d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this post, we are going to learn about the problem Rust is solving, Rust's ownership, borrowing concept and build a mini grep clone in Rust. I won't go too deep in theory, just practical and we will build our knowledge of these concepts over time with more articles.</p><h2><strong>The Problem Rust is Solving</strong></h2><p>Every program needs memory. There is an important question: <strong>who is responsible for freeing that memory when you&#8217;re done with it?</strong></p><p>In C, you call malloc to allocate and free to release. Fast and in control, but you can make mistakes like free memory twice, forget to free it, or use it after freeing. These bugs are hard to reproduce and hard to debug.</p><p>In Python, a garbage collector runs in the background, figures out what memory is no longer reachable, and frees it. You basically can&#8217;t have dangerous memory bugs but the problem is performance like the GC runs at unpredictable times, pauses your program, and adds overhead.</p><p>Rust gives you memory safety without a garbage collector, through three ideas: <strong>ownership, borrowing, and slices.</strong></p><div><hr></div><h2><strong>Ownership</strong></h2><p>In Rust, every piece of data has exactly one variable that &#8220;owns&#8221; it. When that variable goes out of scope, the data is automatically freed.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">// s owns the string
let s = String::from(&#8221;hello&#8221;);
// s goes out of scope here &#8212; Rust frees it automatically</code></pre></div><p>What happens when you do this?</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">let s1 = String::from(&#8221;hello&#8221;);
let s2 = s1;</code></pre></div><p>Ownership <em>moves</em> from s1 to s2. After the second line, s1 no longer exists as far as the compiler is concerned:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">let s1 = String::from(&#8221;hello&#8221;);
let s2 = s1;
println!(&#8221;{}&#8221;, s1); // ERROR: value borrowed here after move</code></pre></div><p>Because String is heap-allocated, if both s1 and s2 owned it, who would free it? By keeping a single owner, Rust keeps it simple. Simple types like integers live on the stack and are just copied instead.</p><div><hr></div><h2><strong>Borrowing</strong></h2><p>If ownership moves when you pass data around, how do you actually use data in a function? Rust gives you <strong>borrowing</strong>, instead of giving ownership, you lend a reference to the data.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;rust&quot;,&quot;nodeId&quot;:null}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-rust">fn print_it(s: &amp;String) {
    println!(&#8221;{}&#8221;, s);
}

fn main() {
    let s = String::from(&#8221;hello&#8221;);
    print_it(&amp;s); // lend a reference, don&#8217;t move ownership
    println!(&#8221;{}&#8221;, s); // still works &#8212; s is still the owner
}</code></pre></div><p>The &amp; means &#8220;a reference to&#8221;. That means You&#8217;re passing a pointer to it. The function can read the data but doesn&#8217;t own it, so it can&#8217;t free it.</p><p>This is a <strong>shared (immutable) reference</strong>. You can read but not modify. You can have as many as you want simultaneously because reading doesn&#8217;t conflict with reading.</p><p>For mutable access there&#8217;s <code>&amp;mut</code>, but with a catch: <strong>you can have one mutable reference at a time, and no immutable references at the same time.</strong></p><blockquote><p><em>You can have either many readers or one writer, never both simultaneously &#8212; enforced by the compiler before your code runs.</em></p></blockquote><p>I can&#8217;t put the entire post in this email. So, please read the entire post on web for free using the <strong>Read More</strong> button below</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.sheerluck.dev/posts/learn-rust-ownership-by-building-mini-grep/&quot;,&quot;text&quot;:&quot;Read More&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.sheerluck.dev/posts/learn-rust-ownership-by-building-mini-grep/"><span>Read More</span></a></p><p>In the next post, we are going to build a <strong>JSON Parser from scratch in Rust</strong> using structs, enums and pattern matching. See you soon</p><p>If you like these kinds of post, then please let me know what else would you like to see next. </p><p>If you can share this newsletters with your friends and peers that would really help me a lot. Thank you for supporting me</p>]]></content:encoded></item><item><title><![CDATA[WTF is Claude Mythos]]></title><description><![CDATA[Anthropic didn&#8217;t announce Mythos. It leaked. A misconfigured CMS left a draft blog post in a publicly searchable data store. Security researchers found it and Anthropic confirmed it shortly after.]]></description><link>https://mrsheerluck.substack.com/p/wtf-is-claude-mythos</link><guid isPermaLink="false">https://mrsheerluck.substack.com/p/wtf-is-claude-mythos</guid><dc:creator><![CDATA[Sheerluck]]></dc:creator><pubDate>Tue, 07 Apr 2026 19:37:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pA6I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this article you are going to learn what Mythos is, what it can actually do, and why Anthropic is scared of releasing it.</p><h2>What is Mythos?</h2><p>Mythos is Anthropic&#8217;s next model. It sits in a new tier above Opus, both in capability and cost. Internally they called this tier Capybara.</p><p>It is a general-purpose model. But it is strikingly capable at cybersecurity tasks specifically. Where prior Claude models respond to instructions one step at a time, Mythos plans and executes sequences of actions on its own, moving across systems and completing operations without waiting for human input at each stage.</p><p>Here are the benchmark numbers from Anthropic&#8217;s own evaluation on agentic coding:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!pA6I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_424, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 424w, /__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_848, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 848w, /__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_1272, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_1456, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_webp, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!pA6I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png" width="1456" height="543" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:543,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107500,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://mrsheerluck.substack.com/i/193503679?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_424, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 424w, /__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_848, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 848w, /__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_1272, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pA6I!, /__u/mrsheerluck.substack.com/w_1456, /__u/mrsheerluck.substack.com/c_limit, /__u/mrsheerluck.substack.com/f_auto, /__u/mrsheerluck.substack.com/q_auto:good, /__u/mrsheerluck.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc0e3ef-ae4d-48bf-8f93-d289ef10ef83_1678x626.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>These are not small improvements.</p><h2>What Can It Actually Do</h2><p>This is where it gets serious.</p><p>During testing, Mythos Preview was capable of identifying and exploiting zero-day vulnerabilities in every major operating system and every major web browser. Many of the vulnerabilities it found are ten or twenty years old. The oldest being a 27-year-old bug in OpenBSD.</p><p>In one case it wrote a browser exploit that chained together four vulnerabilities, writing a complex JIT heap spray that escaped both the renderer and OS sandboxes. It autonomously obtained local privilege escalation on Linux by exploiting subtle race conditions and KASLR bypasses. It also wrote a remote code execution exploit on FreeBSD&#8217;s NFS server that granted full root access to unauthenticated users by splitting a 20-gadget ROP chain over multiple packets.</p><p>The numbers make this concrete. Opus 4.6 turned Firefox 147 JavaScript engine vulnerabilities into working shell exploits only 2 times out of several hundred attempts. Mythos Preview developed working exploits 181 times on the same benchmark.</p><p>These capabilities were not explicitly trained into Mythos Preview. They emerged as a downstream consequence of general improvements in code, reasoning, and autonomy. The same improvements that make it better at patching vulnerabilities also make it better at exploiting them.</p><h2>Why It Is Not Public</h2><p>Mythos Preview can find tens of thousands of vulnerabilities that even an advanced bug hunter would struggle to find, and it can write the exploits to go with them.</p><p>It is also extremely compute-intensive and expensive to run at scale. Anthropic has stated it is working on efficiency improvements before any general release.</p><p>So it is dangerous and expensive. Both problems they need to solve before shipping it broadly.</p><h2>What They Did Instead: Project Glasswing</h2><p>On April 7, Anthropic launched Project Glasswing. More than 40 partner organizations get access to Mythos Preview strictly for defensive security work, scanning their own code and open-source software for vulnerabilities. Partners include Amazon, Apple, Microsoft, Cisco, CrowdStrike, Palo Alto Networks, and the Linux Foundation. Findings will be shared across the industry.</p><p>Anthropic is providing up to $100 million in usage credits to participating companies and $4 million to open-source security organizations including OpenSSF, Alpha-Omega, and the Apache Software Foundation.</p><p>Over 99% of the vulnerabilities found have not yet been patched, so details cannot be disclosed publicly yet. For findings they cannot discuss, Anthropic is publishing SHA-3 cryptographic commitments as proof they hold the findings. These will be revealed once responsible disclosure is complete.</p><p>There is no public release date.</p><h2>Conclusion</h2><p>This was a big one. Mythos is real, it is the most capable model Anthropic has built, and it is deliberately locked away until they figure out how to release it safely. Project Glasswing is their attempt to use it for good in the meantime.</p><h2>Resources</h2><ul><li><p>Anthropic Red Team: <a href="https://red.anthropic.com/2026/mythos-preview/">Assessing Claude Mythos Preview&#8217;s cybersecurity capabilities</a></p></li><li><p>Axios: <a href="https://www.axios.com/2026/04/07/anthropic-mythos-preview-cybersecurity-risks">Anthropic withholds Mythos Preview over hacking concerns</a></p></li><li><p>TechCrunch: <a href="https://techcrunch.com/2026/04/07/anthropic-mythos-ai-model-preview-security/">Anthropic debuts Mythos preview in new cybersecurity initiative</a></p></li><li><p>Fortune: <a href="https://fortune.com/2026/03/26/anthropic-says-testing-mythos-powerful-new-ai-model-after-data-leak-reveals-its-existence-step-change-in-capabilities/">Anthropic confirms Mythos after data leak</a></p></li><li><p>Bloomberg: <a href="https://www.bloomberg.com/news/articles/2026-04-07/anthropic-lets-apple-amazon-test-more-powerful-mythos-ai-model">Anthropic lets Apple, Amazon test Mythos</a></p></li></ul>]]></content:encoded></item></channel></rss>