<!DOCTYPE html><html lang="en" data-site="joekuster" data-theme="dark" data-intensity="loud" data-glitch="on" data-bg="particles"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Joe Kuster</title><meta name="description" content="Joe Kuster — science fiction writer, cybersecurity professional, inventor."><link rel="canonical" href="https://joekuster.com/"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><!-- Preload critical Latin font weights — kills the swap-driven CLS --><link rel="preload" as="font" type="font/woff2" crossorigin href="/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="/_astro/rajdhani-latin-600-normal.CXCVEoA9.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="/_astro/rajdhani-latin-400-normal.CurJOxDW.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="/_astro/rajdhani-latin-700-normal.BPDUZo87.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2"><!-- Feeds --><link rel="alternate" type="application/rss+xml" title="Joe Kuster" href="/rss.xml"><link rel="alternate" type="application/feed+json" title="Joe Kuster" href="/feed.json"><!-- Open Graph --><meta property="og:type" content="website"><meta property="og:site_name" content="Joe Kuster"><meta property="og:title" content="Joe Kuster"><meta property="og:description" content="Joe Kuster — science fiction writer, cybersecurity professional, inventor."><meta property="og:url" content="https://joekuster.com/"><!-- Twitter Card --><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Joe Kuster"><meta name="twitter:description" content="Joe Kuster — science fiction writer, cybersecurity professional, inventor."><!-- WebSite structured data (always present) --><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Joe Kuster","url":"https://joekuster.com","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://joekuster.com/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}</script><!-- Page-level structured data (Schema.org Book, BlogPosting, Person, etc.) --> <script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","@id":"https://joekuster.com/about#person","name":"Joe Kuster","url":"https://joekuster.com","image":"https://joekuster.com/_astro/joe-portrait.m3LdF786_Z27M6zf.webp","sameAs":["https://www.patreon.com/c/joekuster"],"jobTitle":["Author","Cybersecurity Professional"]}</script> <link rel="stylesheet" href="/_astro/about._hVYviFr.css">
<link rel="stylesheet" href="/_astro/index.vgvSJtjh.css"></head> <body> <a href="#main" class="skip-link">Skip to content</a> <!-- Fixed atmosphere layers (D71): particles + vignette + noise + scanlines + CRT flicker.
     The grid layer is the fallback when [data-bg="static"] / [data-bg="grid"] is set. --> <canvas class="bg-particles" aria-hidden="true" data-astro-cid-qmqexpae></canvas> <!-- Same CSP rationale as carousel.js: loaded as an external same-origin
     file because `script-src 'self'` blocks every inline script. Source
     in packages/joekuster.com/public/scripts/particles.js. --> <script src="/scripts/particles.js" defer></script>  <div class="bg-layer bg-grid" aria-hidden="true"></div> <div class="bg-layer bg-vignette" aria-hidden="true"></div> <div class="bg-layer bg-noise" aria-hidden="true"></div> <div class="bg-layer bg-scanlines" aria-hidden="true"></div> <div class="bg-layer bg-crt-flicker" aria-hidden="true"></div> <header class="topnav" data-astro-cid-ctg3m53h> <!-- aria-label starts with the visible text "JK://quantum" so screen-reader
       users hear what's on screen first (WCAG 2.5.3 Label in Name), then the
       Joe Kuster context after. --> <a href="/" class="brand" aria-label="JK://quantum — Joe Kuster home" data-astro-cid-ctg3m53h> <span class="brand-dot" aria-hidden="true" data-astro-cid-ctg3m53h></span> <span data-astro-cid-ctg3m53h>JK://quantum</span> </a> <nav class="links" aria-label="Primary" data-astro-cid-ctg3m53h> <a href="/books" data-astro-cid-ctg3m53h> books </a><a href="/about" data-astro-cid-ctg3m53h> about </a><a href="/blog" data-astro-cid-ctg3m53h> updates </a><a href="/contact" data-astro-cid-ctg3m53h> contact </a> </nav> <div class="status" aria-label="System status" data-astro-cid-ctg3m53h> <span class="status-dot" aria-hidden="true" data-astro-cid-ctg3m53h></span> <span data-astro-cid-ctg3m53h>SECURE · 2026.05.12</span> <span class="version" data-build-version aria-label="Build ac63b9b" data-astro-cid-ctg3m53h>v.ac63b9b</span> </div> </header>  <main id="main">    <section class="hero" aria-label="Introduction" data-astro-cid-j7pv25f6> <div class="hero-text" data-astro-cid-j7pv25f6> <div class="section-label hero-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>identity.dat</span><span class="id" data-astro-cid-j7pv25f6>// 0x00</span> </div> <h1 class="hero-name" data-astro-cid-j7pv25f6> <span class="glitch hero-line1" data-text="JOE" data-astro-cid-j7pv25f6>JOE</span> <span class="glitch line2" data-text="KUSTER" data-astro-cid-j7pv25f6>KUSTER</span> </h1> <div class="hero-tag" data-astro-cid-j7pv25f6> <span class="chip alt" data-astro-cid-j7pv25f6>Cybersecurity</span> <span class="chip" data-astro-cid-j7pv25f6>Best-Selling Author</span> <span class="chip alt" data-astro-cid-j7pv25f6>Inventor</span> </div> <p class="hero-blurb" data-astro-cid-j7pv25f6>
Tech mercenary by day, author by night. Two decades on the front lines of security and
        bleeding-edge tech — channeled into pulpy, cyberpunk-soaked fiction about the world going to
        heck and the people who refuse to let it.
</p> <div class="hero-cta" data-astro-cid-j7pv25f6> <a href="#books" class="btn primary" data-astro-cid-j7pv25f6><span data-astro-cid-j7pv25f6>Browse the catalog</span><span class="arrow" data-astro-cid-j7pv25f6>▸</span></a> <a href="#about" class="btn" data-astro-cid-j7pv25f6><span data-astro-cid-j7pv25f6>Read the dossier</span></a> </div> </div> <aside class="terminal" aria-hidden="true" data-astro-cid-j7pv25f6> <div class="terminal-bar" data-astro-cid-j7pv25f6> <span class="dots" data-astro-cid-j7pv25f6><span data-astro-cid-j7pv25f6></span><span data-astro-cid-j7pv25f6></span><span data-astro-cid-j7pv25f6></span></span> <span class="path" data-astro-cid-j7pv25f6>jk@quantum:~/identity</span> <span class="meta" data-astro-cid-j7pv25f6>tty/0 · secure</span> </div> <div class="terminal-body" data-astro-cid-j7pv25f6> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="prompt" data-astro-cid-j7pv25f6>jk@quantum ▸</span> ssh <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4b21242e0b203e383f2e39653a3e2a253f3e26">[email&#160;protected]</a>
</div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="dim" data-astro-cid-j7pv25f6>Last login: 05.05.2026 03:14:22 from 10.0.0.66</span> </div> <div class="terminal-line" data-astro-cid-j7pv25f6><span class="prompt" data-astro-cid-j7pv25f6>jk@quantum ▸</span> whoami --verbose</div> <div class="terminal-line" data-astro-cid-j7pv25f6>▸ Joe Kuster</div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="accent" data-astro-cid-j7pv25f6>▸ Tech mercenary. Author. Inventor.</span> </div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="prompt" data-astro-cid-j7pv25f6>jk@quantum ▸</span> cat /usr/local/bin/manifest.txt
</div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="ok" data-astro-cid-j7pv25f6>[ok] 20+ years defending mega-corps from hackers</span> </div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="ok" data-astro-cid-j7pv25f6>[ok] 6 published novels across 2 series</span> </div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="ok" data-astro-cid-j7pv25f6>[ok] Currently writing 3 works in progress</span> </div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="prompt" data-astro-cid-j7pv25f6>jk@quantum ▸</span> ./run --interactive
</div> <div class="terminal-line" data-astro-cid-j7pv25f6> <span class="accent" data-astro-cid-j7pv25f6>Welcome. Pull up a chair. Quantum is live.<span class="cursor" data-astro-cid-j7pv25f6></span></span> </div> </div> </aside> </section>  <section class="section" id="books" aria-labelledby="books-heading" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>catalog.idx</span><span class="id" data-astro-cid-j7pv25f6>// 0x01</span> </div> <h2 id="books-heading" class="section-title" data-astro-cid-j7pv25f6> <span class="glitch" data-text="The Library" data-astro-cid-j7pv25f6>The Library</span> </h2> <p class="section-subtitle" data-astro-cid-j7pv25f6>
Two series. 6 books. Hard sci-fi at the seam where today's tech becomes tomorrow's
      nightmare — and a portal-fantasy detour through realms with sharper teeth than yours.
</p> <div class="book-carousel" data-book-carousel data-count="6" data-astro-cid-j7pv25f6> <div class="book-stage" data-astro-cid-j7pv25f6> <div class="book-card is-active" data-idx="0" data-book-id="quantum-beginnings" data-series="Entangled Fates // 01" data-title="Quantum Beginnings" data-desc="A hard sci-fi exploration of the journey from today's technology to the neon-soaked cyberpunk of tomorrow — and the early, but inevitable, missteps around artificial intelligence." data-year="2018" data-genre="Hard Science Fiction" data-formats="print · ebook · audio" data-amazon="https://www.amazon.com/Quantum-Beginnings-Near-Future-CyberPunk-Entangled/dp/B092XDYTH8?tag=joekuster-20" data-audible="https://www.audible.com/pd/Quantum-Beginnings-Audiobook/B0842R8XHB" data-goodreads="https://www.goodreads.com/book/show/50817674-quantum-beginnings" role="button" tabindex="0" aria-label="Show details for Quantum Beginnings" data-astro-cid-j7pv25f6> <img src="/_astro/cover.CblzOgXa_1Jo88A.webp" alt="Quantum Beginnings" loading="eager" fetchpriority="high" data-astro-cid-j7pv25f6="true" decoding="async" width="280" height="420" class="book-img"> <span class="book-glow" aria-hidden="true" data-astro-cid-j7pv25f6></span> </div><div class="book-card pos-r1" data-idx="1" data-book-id="quantum-proliferation" data-series="Entangled Fates // 02" data-title="Quantum Proliferation" data-desc="Desperate to keep his freedom and his company afloat as their illegal funds dry up, Alex tags along with the Black Flags on a mercenary contract on the other side of the globe." data-year="2019" data-genre="Science Fiction" data-formats="print · ebook · audio" data-amazon="https://www.amazon.com/Quantum-Proliferation-Near-Future-CyberPunk-Entangled/dp/1706805136?tag=joekuster-20" data-audible="https://www.audible.com/pd/Quantum-Proliferation-A-Near-Future-Cyberpunk-Thriller-Audiobook/B08D3QQ61L" data-goodreads="https://www.goodreads.com/book/show/48768566-quantum-proliferation" role="button" tabindex="-1" aria-label="Show details for Quantum Proliferation" data-astro-cid-j7pv25f6> <img src="/_astro/cover.DBxcZ8dN_2r43Ta.webp" alt="Quantum Proliferation" loading="lazy" fetchpriority="auto" data-astro-cid-j7pv25f6="true" decoding="async" width="280" height="420" class="book-img"> <span class="book-glow" aria-hidden="true" data-astro-cid-j7pv25f6></span> </div><div class="book-card pos-r2" data-idx="2" data-book-id="quantum-escape" data-series="Entangled Fates // 03" data-title="Quantum Escape" data-desc="In one move, Alex and Sophie not only launched their latest money-making scheme but also their opening salvo in their war against the rogue AI that stands to destroy all those that might oppose it." data-year="2020" data-genre="Science Fiction" data-formats="print · ebook · audio" data-amazon="https://www.amazon.com/Quantum-Escape-Near-Future-CyberPunk-Entangled/dp/B08GB7MLVG?tag=joekuster-20" data-audible="https://www.audible.com/pd/Quantum-Escape-Audiobook/B08V577BCY" data-goodreads="https://www.goodreads.com/book/show/51474842-quantum-escape" role="button" tabindex="-1" aria-label="Show details for Quantum Escape" data-astro-cid-j7pv25f6> <img src="/_astro/cover.2AIF5K56_dNiD8.webp" alt="Quantum Escape" loading="lazy" fetchpriority="auto" data-astro-cid-j7pv25f6="true" decoding="async" width="280" height="420" class="book-img"> <span class="book-glow" aria-hidden="true" data-astro-cid-j7pv25f6></span> </div><div class="book-card pos-hidden" data-idx="3" data-book-id="quantum-decay" data-series="Entangled Fates // 04" data-title="Quantum Decay" data-desc="Bringing new high-tech toys to the party, Alex and Sophie launch their offensive campaign against both Amp and Chiwen's forces." data-year="2020" data-genre="Science Fiction" data-formats="print · ebook · audio" data-amazon="https://www.amazon.com/Quantum-Decay-Near-Future-CyberPunk-Entangled/dp/B08HBKQ37R?tag=joekuster-20" data-audible="https://www.audible.com/pd/Quantum-Decay-Audiobook/B09KRTLFTB" data-goodreads="https://www.goodreads.com/book/show/54511197-quantum-decay" role="button" tabindex="-1" aria-label="Show details for Quantum Decay" data-astro-cid-j7pv25f6> <img src="/_astro/cover.7iEsm1qn_13N4Kq.webp" alt="Quantum Decay" loading="lazy" fetchpriority="auto" data-astro-cid-j7pv25f6="true" decoding="async" width="280" height="420" class="book-img"> <span class="book-glow" aria-hidden="true" data-astro-cid-j7pv25f6></span> </div><div class="book-card pos-l2" data-idx="4" data-book-id="lightfoot" data-series="Lightfoot // 01" data-title="Lightfoot" data-desc="Landing in a realm full of dangerous creatures and sinister adversaries, TJ finds that the pact has changed him in more ways than claiming his soul." data-year="2020" data-genre="Portal Fantasy" data-formats="print · ebook · audio" data-amazon="https://www.amazon.com/Lightfoot-Joe-Kuster/dp/B08NWWY8WD?tag=joekuster-20" data-audible="https://www.audible.com/pd/Lightfoot-Audiobook/B096YMZC8P" data-goodreads="https://www.goodreads.com/book/show/55883569-lightfoot" role="button" tabindex="-1" aria-label="Show details for Lightfoot" data-astro-cid-j7pv25f6> <img src="/_astro/cover.CxBR2wVm_2iCVT2.webp" alt="Lightfoot" loading="lazy" fetchpriority="auto" data-astro-cid-j7pv25f6="true" decoding="async" width="280" height="420" class="book-img"> <span class="book-glow" aria-hidden="true" data-astro-cid-j7pv25f6></span> </div><div class="book-card pos-l1" data-idx="5" data-book-id="lightfoot-ii" data-series="Lightfoot // 02" data-title="Lightfoot II" data-desc="Freshly minted as Count Skyridge, TJ is ordered to head north and embark upon the King's quest." data-year="2021" data-genre="Portal Fantasy" data-formats="print · ebook · audio" data-amazon="https://www.amazon.com/Lightfoot-2-Joe-Kuster/dp/B099C5LQPZ?tag=joekuster-20" data-audible="https://www.audible.com/pd/Lightfoot-2-Audiobook/B09N62M7Q8" data-goodreads="https://www.goodreads.com/book/show/58561128-lightfoot-2" role="button" tabindex="-1" aria-label="Show details for Lightfoot II" data-astro-cid-j7pv25f6> <img src="/_astro/cover.DvCG0Sc9_ZP48gs.webp" alt="Lightfoot II" loading="lazy" fetchpriority="auto" data-astro-cid-j7pv25f6="true" decoding="async" width="280" height="420" class="book-img"> <span class="book-glow" aria-hidden="true" data-astro-cid-j7pv25f6></span> </div> </div> <div class="book-controls" data-astro-cid-j7pv25f6> <button class="nav-btn" data-carousel-prev aria-label="Previous book" data-astro-cid-j7pv25f6>
◂
</button> <div class="book-pips" role="tablist" data-astro-cid-j7pv25f6> <button class="pip is-active" data-idx="0" role="tab" aria-label="Show book 1" data-astro-cid-j7pv25f6></button><button class="pip " data-idx="1" role="tab" aria-label="Show book 2" data-astro-cid-j7pv25f6></button><button class="pip " data-idx="2" role="tab" aria-label="Show book 3" data-astro-cid-j7pv25f6></button><button class="pip " data-idx="3" role="tab" aria-label="Show book 4" data-astro-cid-j7pv25f6></button><button class="pip " data-idx="4" role="tab" aria-label="Show book 5" data-astro-cid-j7pv25f6></button><button class="pip " data-idx="5" role="tab" aria-label="Show book 6" data-astro-cid-j7pv25f6></button> </div> <span class="indicator" aria-live="polite" data-astro-cid-j7pv25f6> <b data-carousel-current data-astro-cid-j7pv25f6>01</b> / 06 </span> <button class="nav-btn" data-carousel-next aria-label="Next book" data-astro-cid-j7pv25f6>
▸
</button> </div> <div class="book-details" data-carousel-details data-astro-cid-j7pv25f6> <p class="series" data-detail-series data-astro-cid-j7pv25f6> Entangled Fates // 01 </p> <h3 class="title" data-astro-cid-j7pv25f6> <span class="glitch" data-detail-title-glitch data-text="Quantum Beginnings" data-astro-cid-j7pv25f6> Quantum Beginnings </span> </h3> <p class="desc" data-detail-desc data-astro-cid-j7pv25f6> A hard sci-fi exploration of the journey from today&#39;s technology to the neon-soaked cyberpunk of tomorrow — and the early, but inevitable, missteps around artificial intelligence. </p> <div class="meta-row" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6> <b data-detail-year data-astro-cid-j7pv25f6>2018</b> // pub
</span> <span class="tag" data-detail-genre data-astro-cid-j7pv25f6> Hard Science Fiction </span> <span class="avail" data-astro-cid-j7pv25f6>
AVAILABLE // <span data-detail-formats data-astro-cid-j7pv25f6>print · ebook · audio</span> </span> </div> <div class="actions" data-astro-cid-j7pv25f6> <a class="btn primary" data-detail-amazon href="https://www.amazon.com/Quantum-Beginnings-Near-Future-CyberPunk-Entangled/dp/B092XDYTH8?tag=joekuster-20" target="_blank" rel="noopener noreferrer" data-astro-cid-j7pv25f6>  <span data-astro-cid-j7pv25f6>Get on Amazon</span> <span class="arrow" data-astro-cid-j7pv25f6>▸</span>  </a> <a class="btn" data-detail-audible href="https://www.audible.com/pd/Quantum-Beginnings-Audiobook/B0842R8XHB" target="_blank" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>Audible</span> </a> <a class="btn" data-detail-goodreads href="https://www.goodreads.com/book/show/50817674-quantum-beginnings" target="_blank" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>Goodreads</span> </a> </div> </div> </div> </section>  <section class="section" aria-labelledby="catalog-heading" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>full_catalog.ls</span> <span class="id" data-astro-cid-j7pv25f6>// 0x01.B</span> </div> <h2 id="catalog-heading" class="section-title" data-astro-cid-j7pv25f6> <span class="glitch" data-text="Full Catalog" data-astro-cid-j7pv25f6>
Full Catalog
</span> </h2> <ul class="library" role="list" data-astro-cid-j7pv25f6> <li class="lib-card" data-astro-cid-j7pv25f6> <a href="#books" data-jump-to-book="quantum-beginnings" aria-label="Show Quantum Beginnings in the carousel" data-astro-cid-j7pv25f6> <img src="/_astro/cover.CblzOgXa_Z7iJ3D.webp" alt data-astro-cid-j7pv25f6="true" loading="lazy" decoding="async" fetchpriority="auto" width="300" height="450"> <div class="cap" data-astro-cid-j7pv25f6> <span class="t" data-astro-cid-j7pv25f6>Quantum Beginnings</span> <span class="y" data-astro-cid-j7pv25f6>18</span> </div> </a> </li><li class="lib-card" data-astro-cid-j7pv25f6> <a href="#books" data-jump-to-book="quantum-proliferation" aria-label="Show Quantum Proliferation in the carousel" data-astro-cid-j7pv25f6> <img src="/_astro/cover.DBxcZ8dN_zmbGV.webp" alt data-astro-cid-j7pv25f6="true" loading="lazy" decoding="async" fetchpriority="auto" width="300" height="450"> <div class="cap" data-astro-cid-j7pv25f6> <span class="t" data-astro-cid-j7pv25f6>Quantum Proliferation</span> <span class="y" data-astro-cid-j7pv25f6>19</span> </div> </a> </li><li class="lib-card" data-astro-cid-j7pv25f6> <a href="#books" data-jump-to-book="quantum-escape" aria-label="Show Quantum Escape in the carousel" data-astro-cid-j7pv25f6> <img src="/_astro/cover.2AIF5K56_Z1CSyy6.webp" alt data-astro-cid-j7pv25f6="true" loading="lazy" decoding="async" fetchpriority="auto" width="300" height="450"> <div class="cap" data-astro-cid-j7pv25f6> <span class="t" data-astro-cid-j7pv25f6>Quantum Escape</span> <span class="y" data-astro-cid-j7pv25f6>20</span> </div> </a> </li><li class="lib-card" data-astro-cid-j7pv25f6> <a href="#books" data-jump-to-book="quantum-decay" aria-label="Show Quantum Decay in the carousel" data-astro-cid-j7pv25f6> <img src="/_astro/cover.7iEsm1qn_ZMSMqN.webp" alt data-astro-cid-j7pv25f6="true" loading="lazy" decoding="async" fetchpriority="auto" width="300" height="450"> <div class="cap" data-astro-cid-j7pv25f6> <span class="t" data-astro-cid-j7pv25f6>Quantum Decay</span> <span class="y" data-astro-cid-j7pv25f6>20</span> </div> </a> </li><li class="lib-card" data-astro-cid-j7pv25f6> <a href="#books" data-jump-to-book="lightfoot" aria-label="Show Lightfoot in the carousel" data-astro-cid-j7pv25f6> <img src="/_astro/cover.CxBR2wVm_qV4GN.webp" alt data-astro-cid-j7pv25f6="true" loading="lazy" decoding="async" fetchpriority="auto" width="300" height="450"> <div class="cap" data-astro-cid-j7pv25f6> <span class="t" data-astro-cid-j7pv25f6>Lightfoot</span> <span class="y" data-astro-cid-j7pv25f6>20</span> </div> </a> </li><li class="lib-card" data-astro-cid-j7pv25f6> <a href="#books" data-jump-to-book="lightfoot-ii" aria-label="Show Lightfoot II in the carousel" data-astro-cid-j7pv25f6> <img src="/_astro/cover.DvCG0Sc9_2nq8lf.webp" alt data-astro-cid-j7pv25f6="true" loading="lazy" decoding="async" fetchpriority="auto" width="300" height="450"> <div class="cap" data-astro-cid-j7pv25f6> <span class="t" data-astro-cid-j7pv25f6>Lightfoot II</span> <span class="y" data-astro-cid-j7pv25f6>21</span> </div> </a> </li> </ul> </section> <section class="section" id="about" aria-labelledby="about-heading" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>dossier.bio</span><span class="id" data-astro-cid-j7pv25f6>// 0x02</span> </div> <h2 id="about-heading" class="section-title" data-astro-cid-j7pv25f6> <span class="glitch" data-text="About" data-astro-cid-j7pv25f6>About</span> </h2> <div class="about-grid" data-astro-cid-j7pv25f6> <div class="about-portrait" data-astro-cid-j7pv25f6> <img src="/_astro/joe-portrait.m3LdF786_Z1t1igj.webp" srcset="/_astro/joe-portrait.m3LdF786_Z175yxT.webp 400w, /_astro/joe-portrait.m3LdF786_ZeWXrj.webp 600w, /_astro/joe-portrait.m3LdF786_Z27M6zf.webp 800w" alt="Joe Kuster" sizes="(max-width: 880px) 100vw, 35vw" loading="lazy" decoding="async" data-astro-cid-j7pv25f6="true" fetchpriority="auto" width="1240" height="1268" class="portrait-img"> <span class="portrait-frame-tl" data-astro-cid-j7pv25f6></span> <span class="portrait-frame-tr" data-astro-cid-j7pv25f6></span> <span class="portrait-frame-bl" data-astro-cid-j7pv25f6></span> <span class="portrait-frame-br" data-astro-cid-j7pv25f6></span> </div> <div class="about-text" data-astro-cid-j7pv25f6> <p data-astro-cid-j7pv25f6>
Joe travels the world each week as a tech mercenary defending the mega-corporations of
          tomorrow from hackers. Over twenty years in IT, most of it centered around security and
          cutting-edge technology.
</p> <p data-astro-cid-j7pv25f6>
In his spare time, he plays video games and reads far too many pulpy books — the kind that
          involve the world going to heck, characters with complicated love lives, or both at once.
          Eventually he stopped just reading them and started writing them.
</p> <p data-astro-cid-j7pv25f6>
The result: hard sci-fi about how today's networks become tomorrow's cyberpunk dystopia,
          plus the occasional portal-fantasy escape hatch when the real-world threat models get too
          on-the-nose.
</p> <div class="stat-grid" data-astro-cid-j7pv25f6> <div class="stat-card" data-astro-cid-j7pv25f6> <div class="num" data-astro-cid-j7pv25f6>20+</div> <div class="lbl" data-astro-cid-j7pv25f6>Years in security</div> </div> <div class="stat-card" data-astro-cid-j7pv25f6> <div class="num" data-astro-cid-j7pv25f6>06</div> <div class="lbl" data-astro-cid-j7pv25f6>Novels published</div> </div> <div class="stat-card" data-astro-cid-j7pv25f6> <div class="num" data-astro-cid-j7pv25f6>02</div> <div class="lbl" data-astro-cid-j7pv25f6>Active series</div> </div> </div> </div> </div> </section>  <section class="section" id="updates" aria-labelledby="updates-heading" data-astro-cid-j7pv25f6> <div class="two-col" data-astro-cid-j7pv25f6> <div data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>changelog.log</span><span class="id" data-astro-cid-j7pv25f6>// 0x03</span> </div> <h2 id="updates-heading" class="section-title" data-astro-cid-j7pv25f6> <span class="glitch" data-text="Updates" data-astro-cid-j7pv25f6>Updates</span> </h2> <ul class="feed" role="list" data-astro-cid-j7pv25f6> <li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>07.15.2021</span> <span class="body" data-astro-cid-j7pv25f6><b>Lightfoot II</b> released — TJ's adventure continues into the King's Quest.</span> <span class="badge release" data-astro-cid-j7pv25f6>Release</span> </li><li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>06.04.2021</span> <span class="body" data-astro-cid-j7pv25f6><b>Lightfoot 1</b> audiobook released. Listen on Audible.</span> <span class="badge audio" data-astro-cid-j7pv25f6>Audio</span> </li><li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>12.08.2020</span> <span class="body" data-astro-cid-j7pv25f6><b>Quantum Escape</b> audiobook released.</span> <span class="badge audio" data-astro-cid-j7pv25f6>Audio</span> </li><li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>11.08.2020</span> <span class="body" data-astro-cid-j7pv25f6><b>Lightfoot</b> launched and quickly hit the Top 20 Best Seller list.</span> <span class="badge milestone" data-astro-cid-j7pv25f6>Milestone</span> </li><li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>07.21.2020</span> <span class="body" data-astro-cid-j7pv25f6><b>Quantum Decay</b> — Entangled Fates Book 4 — released.</span> <span class="badge release" data-astro-cid-j7pv25f6>Release</span> </li><li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>02.13.2020</span> <span class="body" data-astro-cid-j7pv25f6><b>Quantum Escape</b> — Entangled Fates Book 3 — released.</span> <span class="badge release" data-astro-cid-j7pv25f6>Release</span> </li><li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>11.10.2019</span> <span class="body" data-astro-cid-j7pv25f6><b>Quantum Proliferation</b> — Entangled Fates Book 2 — released.</span> <span class="badge release" data-astro-cid-j7pv25f6>Release</span> </li><li class="feed-item" data-astro-cid-j7pv25f6> <span class="date" data-astro-cid-j7pv25f6>08.09.2018</span> <span class="body" data-astro-cid-j7pv25f6><b>Quantum Beginnings</b> — Entangled Fates Book 1 — released. Series launches.</span> <span class="badge release" data-astro-cid-j7pv25f6>Release</span> </li> </ul> </div> <div data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>queue.cal</span><span class="id" data-astro-cid-j7pv25f6>// 0x04</span> </div> <h2 class="section-title" data-astro-cid-j7pv25f6> <span class="glitch" data-text="In Progress" data-astro-cid-j7pv25f6>In Progress</span> </h2> <p class="cal-disclaimer" data-astro-cid-j7pv25f6>// prone to change without notice</p> <ul class="calendar-list" role="list" data-astro-cid-j7pv25f6> <li class="cal-item" data-astro-cid-j7pv25f6> <div class="cal-head" data-astro-cid-j7pv25f6> <span class="cal-name" data-astro-cid-j7pv25f6>Nexus Traders</span> <span class="cal-type" data-astro-cid-j7pv25f6>Nexus Trader Series</span> </div> <p class="cal-desc" data-astro-cid-j7pv25f6>
A new universe at the seam of cyberpunk and the gates between worlds.
</p> <div class="progress" data-astro-cid-j7pv25f6><span class="bar" style="width:42%" data-astro-cid-j7pv25f6></span></div> <div class="cal-meta" data-astro-cid-j7pv25f6><span data-astro-cid-j7pv25f6>// drafting</span><span data-astro-cid-j7pv25f6><b data-astro-cid-j7pv25f6>42%</b> complete</span></div> </li> <li class="cal-item s2" data-astro-cid-j7pv25f6> <div class="cal-head" data-astro-cid-j7pv25f6> <span class="cal-name" data-astro-cid-j7pv25f6>Lightfoot 3</span> <span class="cal-type" data-astro-cid-j7pv25f6>Lightfoot Series // 03</span> </div> <p class="cal-desc" data-astro-cid-j7pv25f6>
TJ's saga continues — the next leg of the King's quest, with new realms and sharper
              teeth.
</p> <div class="progress" data-astro-cid-j7pv25f6><span class="bar" style="width:15%" data-astro-cid-j7pv25f6></span></div> <div class="cal-meta" data-astro-cid-j7pv25f6><span data-astro-cid-j7pv25f6>// drafting</span><span data-astro-cid-j7pv25f6><b data-astro-cid-j7pv25f6>15%</b> complete</span></div> </li> <li class="cal-item" data-astro-cid-j7pv25f6> <div class="cal-head" data-astro-cid-j7pv25f6> <span class="cal-name" data-astro-cid-j7pv25f6>Entangled Fates: Carla</span> <span class="cal-type" data-astro-cid-j7pv25f6>Side Story</span> </div> <p class="cal-desc" data-astro-cid-j7pv25f6>
Carla's perspective on the events between Quantum Escape and Quantum Decay.
</p> <div class="progress" data-astro-cid-j7pv25f6><span class="bar" style="width:10%" data-astro-cid-j7pv25f6></span></div> <div class="cal-meta" data-astro-cid-j7pv25f6><span data-astro-cid-j7pv25f6>// drafting</span><span data-astro-cid-j7pv25f6><b data-astro-cid-j7pv25f6>10%</b> complete</span></div> </li> <li class="cal-item s2" data-astro-cid-j7pv25f6> <div class="cal-head" data-astro-cid-j7pv25f6> <span class="cal-name" data-astro-cid-j7pv25f6>Entangled Fates: DoF</span> <span class="cal-type" data-astro-cid-j7pv25f6>Series Continuation</span> </div> <p class="cal-desc" data-astro-cid-j7pv25f6>Dawn of the next chapter for Alex and Sophie's war.</p> <div class="progress" data-astro-cid-j7pv25f6><span class="bar" style="width:5%" data-astro-cid-j7pv25f6></span></div> <div class="cal-meta" data-astro-cid-j7pv25f6><span data-astro-cid-j7pv25f6>// drafting</span><span data-astro-cid-j7pv25f6><b data-astro-cid-j7pv25f6>5%</b> complete</span></div> </li> </ul> </div> </div> </section>  <section class="section" id="dayjob" aria-labelledby="dayjob-heading" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>day_job.exe</span><span class="id" data-astro-cid-j7pv25f6>// 0x05</span> </div> <h2 id="dayjob-heading" class="section-title" data-astro-cid-j7pv25f6> <span class="glitch" data-text="Day Job" data-astro-cid-j7pv25f6>Day Job</span> </h2> <p class="section-subtitle" data-astro-cid-j7pv25f6>
When not writing about cyberpunk dystopias, Joe is helping prevent them.
</p> <div class="cred-grid" data-astro-cid-j7pv25f6> <div class="cred" data-astro-cid-j7pv25f6> <div class="cred-label" data-astro-cid-j7pv25f6>// security</div> <h3 class="cred-heading" data-astro-cid-j7pv25f6>Tech Mercenary</h3> <p class="cred-body" data-astro-cid-j7pv25f6>
Twenty-plus years defending Fortune 500 mega-corps from sophisticated threat actors.
          Travels the globe responding to incidents that don't make the news.
</p> </div> <div class="cred" data-astro-cid-j7pv25f6> <div class="cred-label" data-astro-cid-j7pv25f6>// speaking</div> <h3 class="cred-heading" data-astro-cid-j7pv25f6>Conference Speaker</h3> <p class="cred-body" data-astro-cid-j7pv25f6>
Keynotes on cybersecurity, AI threat modeling, and the blurring line between speculative
          fiction and the next breach.
</p> </div> <div class="cred" data-astro-cid-j7pv25f6> <div class="cred-label" data-astro-cid-j7pv25f6>// advisory</div> <h3 class="cred-heading" data-astro-cid-j7pv25f6>Strategic AI Advisor</h3> <p class="cred-body" data-astro-cid-j7pv25f6>
Strategic AI Advisor for the University of Colorado Colorado Springs Executive Education
          Program.
</p> </div> </div> </section>  <section class="section" id="newsletter" aria-labelledby="newsletter-heading" data-astro-cid-j7pv25f6> <div class="newsletter" data-astro-cid-j7pv25f6> <p class="nl-eyebrow" data-astro-cid-j7pv25f6>// transmission.subscribe</p> <h2 id="newsletter-heading" class="nl-h" data-astro-cid-j7pv25f6> <span class="glitch" data-text="Patch into the signal" data-astro-cid-j7pv25f6>Patch into the signal</span> </h2> <p class="nl-sub" data-astro-cid-j7pv25f6>
Release alerts, work-in-progress glimpses, and the occasional dispatch from the front lines
        of corporate cybersecurity. No spam, just signal.
</p> <form id="newsletter-form" class="nl-form" action="/api/newsletter" method="post" novalidate data-astro-cid-j7pv25f6> <input type="hidden" name="site" value="joekuster" data-astro-cid-j7pv25f6> <label for="newsletter-email" class="visually-hidden" data-astro-cid-j7pv25f6>Email address</label> <input type="email" id="newsletter-email" name="email" required placeholder="agent@quantum.net" data-astro-cid-j7pv25f6> <button type="submit" id="newsletter-submit" data-astro-cid-j7pv25f6>Subscribe ▸</button> <div class="cf-turnstile nl-turnstile" data-sitekey="0x4AAAAAADNPhMNfWwu77As9" data-theme="auto" data-astro-cid-j7pv25f6></div> </form> <div id="newsletter-status" class="nl-status" role="status" aria-live="polite" hidden data-astro-cid-j7pv25f6></div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> </div> </section>  <section class="section" id="contact" aria-labelledby="contact-heading" data-astro-cid-j7pv25f6> <div class="section-label" data-astro-cid-j7pv25f6> <span data-astro-cid-j7pv25f6>uplink.dir</span><span class="id" data-astro-cid-j7pv25f6>// 0x07</span> </div> <h2 id="contact-heading" class="section-title" data-astro-cid-j7pv25f6> <span class="glitch" data-text="Open a Channel" data-astro-cid-j7pv25f6>Open a Channel</span> </h2> <p class="section-subtitle" data-astro-cid-j7pv25f6>Reader, hacker, publisher, or producer — pick your protocol.</p> <div class="contact-grid" data-astro-cid-j7pv25f6> <a class="contact-card" href="https://discord.gg/PqVG5eJT5Z" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// discord</div> <div class="label" data-astro-cid-j7pv25f6>Discord</div> <div class="v" data-astro-cid-j7pv25f6>/PqVG5eJT5Z</div> </a><a class="contact-card" href="https://www.linkedin.com/in/joekuster" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// linkedin</div> <div class="label" data-astro-cid-j7pv25f6>LinkedIn</div> <div class="v" data-astro-cid-j7pv25f6>/in/joekuster</div> </a><a class="contact-card" href="https://www.facebook.com/joekusterauthor" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// facebook</div> <div class="label" data-astro-cid-j7pv25f6>Facebook</div> <div class="v" data-astro-cid-j7pv25f6>/joekusterauthor</div> </a><a class="contact-card" href="https://www.goodreads.com/author/show/19428540.Joe_Kuster" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// goodreads</div> <div class="label" data-astro-cid-j7pv25f6>Goodreads</div> <div class="v" data-astro-cid-j7pv25f6>Joe Kuster</div> </a><a class="contact-card" href="https://www.patreon.com/c/joekuster" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// patreon</div> <div class="label" data-astro-cid-j7pv25f6>Patreon</div> <div class="v" data-astro-cid-j7pv25f6>/joekuster</div> </a><a class="contact-card" href="https://www.amazon.com/author/joekuster" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// amazon</div> <div class="label" data-astro-cid-j7pv25f6>Amazon Author</div> <div class="v" data-astro-cid-j7pv25f6>/joekuster</div> </a><a class="contact-card" href="https://www.audible.com/search?keywords=Joe+Kuster" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// audible</div> <div class="label" data-astro-cid-j7pv25f6>Audible</div> <div class="v" data-astro-cid-j7pv25f6>Joe Kuster</div> </a><a class="contact-card" href="/contact" rel="noopener noreferrer" data-astro-cid-j7pv25f6> <div class="ico" data-astro-cid-j7pv25f6>// form</div> <div class="label" data-astro-cid-j7pv25f6>Direct Line</div> <div class="v" data-astro-cid-j7pv25f6>/contact</div> </a> </div> </section>  </main> <footer class="site-footer" role="contentinfo" data-astro-cid-gcn2mc3v> <div class="signoff" data-astro-cid-gcn2mc3v> <span data-astro-cid-gcn2mc3v>&copy; 2026 <b data-astro-cid-gcn2mc3v>Joe Kuster</b></span> <span aria-hidden="true" data-astro-cid-gcn2mc3v>//</span> <a href="/privacy" data-astro-cid-gcn2mc3v>Privacy</a> <a href="/cookies" data-astro-cid-gcn2mc3v>Cookies</a> <a href="/disclosure" data-astro-cid-gcn2mc3v>Disclosure</a> </div> <div class="meta" data-astro-cid-gcn2mc3v> <a href="/rss.xml" data-astro-cid-gcn2mc3v>RSS</a> <a href="/feed.json" data-astro-cid-gcn2mc3v>JSON</a> <span class="build" data-astro-cid-gcn2mc3v>BUILD://000000</span> </div> </footer>  <dialog id="search-dialog" aria-label="Search" data-astro-cid-qk3db3zz> <div class="search-inner" data-astro-cid-qk3db3zz> <div class="search-header" data-astro-cid-qk3db3zz> <span class="search-label" data-astro-cid-qk3db3zz>Search</span> <button class="search-close" id="search-close" type="button" aria-label="Close search" data-astro-cid-qk3db3zz> <svg aria-hidden="true" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-qk3db3zz> <line x1="18" y1="6" x2="6" y2="18" data-astro-cid-qk3db3zz></line> <line x1="6" y1="6" x2="18" y2="18" data-astro-cid-qk3db3zz></line> </svg> </button> </div> <div id="pagefind-ui" data-astro-cid-qk3db3zz></div> <p class="search-hint" id="search-hint" hidden data-astro-cid-qk3db3zz>
Run <code data-astro-cid-qk3db3zz>npm run build</code> then <code data-astro-cid-qk3db3zz>pagefind --site dist</code> to enable full-text search.
</p> </div> </dialog>  <!-- Same CSP rationale as carousel.js: loaded as an external same-origin
     file because `script-src 'self'` blocks every inline script. Source
     in packages/joekuster.com/public/scripts/search-dialog.js. --> <script src="/scripts/search-dialog.js" defer></script> </body></html> <!-- Carousel script lives in /public/scripts/carousel.js. We MUST load it as
     an external same-origin file because the production CSP is
     `script-src 'self'`, which blocks every inline script (classic AND
     module) on the deployed site. Astro inlines small `<script>` blocks by
     default; loading from /scripts/carousel.js side-steps that. `defer`
     so it runs after the carousel HTML is parsed. --> <script src="/scripts/carousel.js" defer></script> <script src="/scripts/newsletter.js" defer></script> 