<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Game Hacking Dojo — Software Engineering</title><link>https://GameHackingDojo.com/</link><description>Recent content on Game Hacking Dojo — Software Engineering</description><generator>Hugo</generator><language>en-uk</language><lastBuildDate>Thu, 12 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://GameHackingDojo.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Why I compile everything to WASM instead of writing JavaScript</title><link>https://GameHackingDojo.com/posts/rust-wasm-no-js/</link><pubDate>Thu, 12 Sep 2024 00:00:00 +0000</pubDate><guid>https://GameHackingDojo.com/posts/rust-wasm-no-js/</guid><description>&lt;p&gt;There&amp;rsquo;s a class of project decision that feels radical when you make it and mundane six months later. Committing to Rust-only browser code was one of those for me.&lt;/p&gt;
&lt;h2 id="the-problem-with-javascript"&gt;The problem with JavaScript&lt;/h2&gt;
&lt;p&gt;I don&amp;rsquo;t dislike JavaScript the language. I dislike what comes with it: an ecosystem that moves faster than any human can track, a module system that has been redesigned four times, and a type system that requires a separate transpilation step to be usable. For a personal site, none of that overhead is acceptable.&lt;/p&gt;</description></item><item><title>SortVis</title><link>https://GameHackingDojo.com/projects/sortvis/</link><pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate><guid>https://GameHackingDojo.com/projects/sortvis/</guid><description>An interactive sorting algorithm visualiser compiled to WebAssembly from Rust — no JavaScript logic required.</description></item><item><title>Ferrite</title><link>https://GameHackingDojo.com/projects/ferrite/</link><pubDate>Sun, 10 Mar 2024 00:00:00 +0000</pubDate><guid>https://GameHackingDojo.com/projects/ferrite/</guid><description>A minimal, zero-copy HTTP/1.1 server written in async Rust using Tokio and io_uring.</description></item><item><title>Raft-KV</title><link>https://GameHackingDojo.com/projects/raft-kv/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://GameHackingDojo.com/projects/raft-kv/</guid><description>A distributed key-value store implementing the Raft consensus algorithm from scratch in Rust, with linearisable reads and persistent log replication.</description></item><item><title>About</title><link>https://GameHackingDojo.com/about/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://GameHackingDojo.com/about/</guid><description>&lt;h2 id="who-i-am"&gt;Who I am&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m a systems software engineer with a focus on correctness, performance, and minimal dependencies. I write mostly Rust, run Linux everywhere, and host my own infrastructure on a small cluster of Raspberry Pi 4s behind a Cloudflare Tunnel.&lt;/p&gt;
&lt;p&gt;I am allergic to JavaScript. All interactive components on this site are compiled from Rust to WebAssembly.&lt;/p&gt;
&lt;h2 id="what-i-work-on"&gt;What I work on&lt;/h2&gt;
&lt;p&gt;Most of my work falls into a few recurring themes:&lt;/p&gt;</description></item><item><title>Vault</title><link>https://GameHackingDojo.com/projects/vault/</link><pubDate>Mon, 20 Nov 2023 00:00:00 +0000</pubDate><guid>https://GameHackingDojo.com/projects/vault/</guid><description>A self-hosted secrets manager with envelope encryption, audit logging, and a Rust CLI client.</description></item></channel></rss>