<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>ZombieMutex</title>
    <description>ZombieMutex is Jeffrey Monica&apos;s personal engineering notebook: iOS, Android, backend systems, security research, experiments, practical writing, and life outside code.</description>
    <link>https://zombiemutex.com</link>
    <language>en-us</language>
    <lastBuildDate>Mon, 09 Nov 2026 05:39:59 GMT</lastBuildDate>
    <atom:link href="https://zombiemutex.com/rss.xml" rel="self" type="application/rss+xml" />
    <item>
          <title>I built a tiny neural audio codec. Then I listened to the results.</title>
          <description>A trained nonlinear encoder, vector-quantized codebook and decoder are interesting. An idealized low bitrate is not the same thing as good reconstructed speech.</description>
          <link>https://zombiemutex.com/blog/a-small-neural-audio-codec-and-a-large-reality-check</link>
          <guid>https://zombiemutex.com/blog/a-small-neural-audio-codec-and-a-large-reality-check</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Mon, 09 Nov 2026 05:39:59 GMT</pubDate>
          
          <category>Audio Codec</category><category>Neural Network</category><category>Vector Quantization</category><category>VQ</category><category>Compression</category><category>Machine Learning</category><category>Python</category><category>Signal Processing</category>
        </item>
<item>
          <title>Audio ML engineering: what the numbers actually mean</title>
          <description>I built five small speech and audio implementations and measured their behavior. ASR errors, turn detection, codecs, prosody and classifier ablations each have different ways to mislead you.</description>
          <link>https://zombiemutex.com/blog/audio-ml-what-the-numbers-actually-mean</link>
          <guid>https://zombiemutex.com/blog/audio-ml-what-the-numbers-actually-mean</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Mon, 09 Nov 2026 05:39:59 GMT</pubDate>
          
          <category>Audio ML</category><category>Speech Recognition</category><category>ASR</category><category>TTS</category><category>Neural Codec</category><category>Machine Learning</category><category>Streaming</category><category>Ablation</category><category>Inference</category>
        </item>
<item>
          <title>Mobile voice agents: keep the backend in charge</title>
          <description>How I connected Swift and Kotlin clients to agent workflows, built Core ML and TensorFlow Lite integration boundaries, and kept authorization on the backend.</description>
          <link>https://zombiemutex.com/blog/mobile-voice-agents-keep-the-backend-in-charge</link>
          <guid>https://zombiemutex.com/blog/mobile-voice-agents-keep-the-backend-in-charge</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Mon, 09 Nov 2026 04:51:49 GMT</pubDate>
          
          <category>Voice Agents</category><category>iOS</category><category>Android</category><category>Swift</category><category>Kotlin</category><category>Core ML</category><category>Mobile Security</category><category>Backend</category><category>AI</category><category>ML</category>
        </item>
<item>
          <title>Voice agents are distributed systems with microphones</title>
          <description>Building an agent that talks is the easy demo. The harder work is authenticated tools, retries, evaluation, telemetry, CRM synchronization and the people who have to operate it.</description>
          <link>https://zombiemutex.com/blog/voice-agents-the-real-work-behind-the-conversation</link>
          <guid>https://zombiemutex.com/blog/voice-agents-the-real-work-behind-the-conversation</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Mon, 09 Nov 2026 04:51:49 GMT</pubDate>
          
          <category>Voice Agents</category><category>LLM</category><category>AI</category><category>Backend</category><category>API Integration</category><category>Reliability</category><category>Security</category><category>Distributed Systems</category><category>Evaluation</category>
        </item>
<item>
          <title>Retry storms: when resilience multiplies a failure</title>
          <description>Retry logic looks harmless in isolation. When a gateway, application service and SDK each apply their own retry policy, a single failed operation can multiply into a dependency outage. That interaction is the starting point for my retry-storm analysis.</description>
          <link>https://zombiemutex.com/blog/architecture-retry-storm-jitter</link>
          <guid>https://zombiemutex.com/blog/architecture-retry-storm-jitter</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:12:00 GMT</pubDate>
          
          <category>Software Architecture</category><category>Distributed Systems</category><category>Retries</category><category>Backoff</category><category>Jitter</category><category>API</category>
        </item>
<item>
          <title>AEAD design review: ciphertext still needs an identity and context</title>
          <description>An encrypted database value can be perfectly unreadable to an attacker and still end up in the wrong record. If a service moves ciphertext between tenants without binding the record&apos;s context, the system may de</description>
          <link>https://zombiemutex.com/blog/aes-gcm-associated-data-tenant-boundaries</link>
          <guid>https://zombiemutex.com/blog/aes-gcm-associated-data-tenant-boundaries</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:11:00 GMT</pubDate>
          
          <category>Cryptography</category><category>AES GCM</category><category>AEAD</category><category>Architecture</category><category>Key Management</category><category>Security</category>
        </item>
<item>
          <title>ROS 2 node lifecycles: when a robot is allowed to become active</title>
          <description>When a robotics node starts, I don&apos;t want &quot;the process launched&quot; to be confused with &quot;the robot is ready to move.&quot; The ROS 2 managed-node design makes this difference explicit with lifecycle states. That&apos;s a be</description>
          <link>https://zombiemutex.com/blog/robotics-ros2-lifecycle-boundaries</link>
          <guid>https://zombiemutex.com/blog/robotics-ros2-lifecycle-boundaries</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:10:00 GMT</pubDate>
          
          <category>Robotics</category><category>ROS 2</category><category>Architecture</category><category>Lifecycle</category><category>Embedded Systems</category><category>Safety</category>
        </item>
<item>
          <title>Stuxnet: malware crossed from Windows into industrial control</title>
          <description>I traced Stuxnet as a boundary-crossing problem: from Windows software into industrial control commands. Calling it sophisticated Windows malware misses the physical-system risk. The attack path targeted software used to supervise and program indust</description>
          <link>https://zombiemutex.com/blog/stuxnet-plc-boundary</link>
          <guid>https://zombiemutex.com/blog/stuxnet-plc-boundary</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:09:00 GMT</pubDate>
          
          <category>Malware Analysis</category><category>Stuxnet</category><category>Industrial Security</category><category>Robotics</category><category>PLC</category><category>Architecture</category>
        </item>
<item>
          <title>Raspberry Robin: the USB worm and what came afterward</title>
          <description>Raspberry Robin showed why incident timelines need separate columns for initial access and what attackers do later. Microsoft&apos;s October 2022 research described a USB-propagating worm that was connected to a bro</description>
          <link>https://zombiemutex.com/blog/raspberry-robin-usb-worm</link>
          <guid>https://zombiemutex.com/blog/raspberry-robin-usb-worm</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:08:00 GMT</pubDate>
          
          <category>Malware Analysis</category><category>Raspberry Robin</category><category>Worms</category><category>USB</category><category>Windows</category><category>Persistence</category>
        </item>
<item>
          <title>Melissa: a document macro virus and an email outage</title>
          <description>Melissa demonstrates why I include document and user-interaction boundaries in propagation analysis, not only remotely exploitable network services. In March 1999, a Microsoft Word document with a malicious macro relied on someone o</description>
          <link>https://zombiemutex.com/blog/melissa-macro-virus-outbreak</link>
          <guid>https://zombiemutex.com/blog/melissa-macro-virus-outbreak</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:07:00 GMT</pubDate>
          
          <category>Malware Analysis</category><category>Melissa</category><category>Virus</category><category>Macro</category><category>Email</category><category>Windows</category>
        </item>
<item>
          <title>Mirai: what default passwords did to the IoT</title>
          <description>In my analysis of Mirai, the failure starts with a simple hardware assumption: devices that ship with weak or default remote-management credentials will eventually be found by automated scanners. In 2016, many cameras, recorders and routers were ex</description>
          <link>https://zombiemutex.com/blog/mirai-iot-default-password-botnet</link>
          <guid>https://zombiemutex.com/blog/mirai-iot-default-password-botnet</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:06:00 GMT</pubDate>
          
          <category>Malware Analysis</category><category>Mirai</category><category>Worms</category><category>IoT</category><category>Botnet</category><category>Robotics</category>
        </item>
<item>
          <title>NotPetya and the poisoned accounting software update</title>
          <description>The starting point I emphasized in my NotPetya review is a trusted enterprise distribution path: the update path for Ukrainian accounting software M.E.Doc. It then moved laterally and disrupted organizations well beyond its initial target geography.</description>
          <link>https://zombiemutex.com/blog/notpetya-medoc-supply-chain</link>
          <guid>https://zombiemutex.com/blog/notpetya-medoc-supply-chain</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:05:00 GMT</pubDate>
          
          <category>Malware Analysis</category><category>NotPetya</category><category>Supply Chain</category><category>Wiper</category><category>Ransomware</category><category>Architecture</category>
        </item>
<item>
          <title>WannaCry: the worm, the patch window and the SMB boundary</title>
          <description>In my review of WannaCry&apos;s propagation path, the network boundary matters as much as the payload. The May 2017 outbreak combined ransomware with self-propagation across vulnerable Windows SMB services.</description>
          <link>https://zombiemutex.com/blog/wannacry-smb-worm-2017</link>
          <guid>https://zombiemutex.com/blog/wannacry-smb-worm-2017</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:04:00 GMT</pubDate>
          
          <category>Malware Analysis</category><category>WannaCry</category><category>Worms</category><category>SMB</category><category>Ransomware</category><category>Windows</category>
        </item>
<item>
          <title>Android toll fraud: when the app can intercept consent</title>
          <description>The trust failure I examined in Android toll-fraud reporting is the confirmation step: an OTP does not protect a purchase if malicious software on the same device can intercept or submit it. Microsoft documented Android toll-fraud workflows in which malware tried to subscribe victim</description>
          <link>https://zombiemutex.com/blog/android-toll-fraud-otp-interception</link>
          <guid>https://zombiemutex.com/blog/android-toll-fraud-otp-interception</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:03:00 GMT</pubDate>
          
          <category>Android</category><category>Malware Analysis</category><category>Toll Fraud</category><category>OTP</category><category>Subscription</category><category>Network Security</category>
        </item>
<item>
          <title>Joker / Bread and the Android billing fraud problem</title>
          <description>In reviewing the Joker/Bread campaigns, I focused on the separation between an app doing its advertised job and subscription activity the owner never authorized. Google&apos;s 2020 report on Bread—often called Joker—documented that exact billing-fraud problem. The family kept adapting as defenses a</description>
          <link>https://zombiemutex.com/blog/joker-bread-android-billing-fraud</link>
          <guid>https://zombiemutex.com/blog/joker-bread-android-billing-fraud</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:02:00 GMT</pubDate>
          
          <category>Android</category><category>Malware Analysis</category><category>Joker</category><category>Bread</category><category>Billing Fraud</category><category>Google Play</category>
        </item>
<item>
          <title>Triada: the Android firmware supply-chain backdoor</title>
          <description>Triada challenges an app-centric mobile threat model in an important way. Google&apos;s Android security team described a malware family that moved from rooting attempts into compromised system images. The malicious cod</description>
          <link>https://zombiemutex.com/blog/triada-android-supply-chain-backdoor</link>
          <guid>https://zombiemutex.com/blog/triada-android-supply-chain-backdoor</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:01:00 GMT</pubDate>
          
          <category>Android</category><category>Malware Analysis</category><category>Triada</category><category>Firmware</category><category>Supply Chain</category><category>Mobile Security</category>
        </item>
<item>
          <title>FluBot: Android banking malware that spread by text</title>
          <description>The entry point I focused on in FluBot was the delivery-text lure, because the later banking and contact-abuse behavior depended on the permissions granted after that initial deception. But FluBot used exactly that: convince someone to follow a delivery or voicemail lure, install a malicious Android application, and grant it un</description>
          <link>https://zombiemutex.com/blog/flubot-android-sms-worm</link>
          <guid>https://zombiemutex.com/blog/flubot-android-sms-worm</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sat, 07 Nov 2026 21:00:00 GMT</pubDate>
          
          <category>Android</category><category>Malware Analysis</category><category>FluBot</category><category>Accessibility</category><category>Smishing</category><category>Banking</category>
        </item>
<item>
          <title>Idempotency under 100 competing requests: a reproducible in-process experiment</title>
          <description>I scheduled 100 calls against one in-process idempotency key. The side-effect callback ran once; a real crash or a second worker is still untested.</description>
          <link>https://zombiemutex.com/blog/idempotency-under-one-hundred-competing-requests</link>
          <guid>https://zombiemutex.com/blog/idempotency-under-one-hundred-competing-requests</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 04:09:06 GMT</pubDate>
          
          <category>Backend</category><category>API Reliability</category><category>Idempotency</category><category>Distributed Systems</category><category>Reproducible Tests</category>
        </item>
<item>
          <title>Refresh-token rotation under concurrent replay: 200 scheduled callers</title>
          <description>I sent 200 scheduled refresh attempts through one local token family. Only one issued a successor; multiple workers would need a different test.</description>
          <link>https://zombiemutex.com/blog/refresh-token-rotation-under-concurrent-replay</link>
          <guid>https://zombiemutex.com/blog/refresh-token-rotation-under-concurrent-replay</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 04:09:06 GMT</pubDate>
          
          <category>Authentication</category><category>Mobile Security</category><category>Backend</category><category>Concurrency</category><category>Session Recovery</category><category>Reproducible Tests</category>
        </item>
<item>
          <title>Reproducing a one-time challenge replay race with 200 contenders</title>
          <description>I tried consuming one action-bound challenge 200 times. My single-process guard accepted one call and rejected 199; shared-store races remain untested.</description>
          <link>https://zombiemutex.com/blog/reproducing-a-one-time-challenge-replay-race</link>
          <guid>https://zombiemutex.com/blog/reproducing-a-one-time-challenge-replay-race</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 04:09:06 GMT</pubDate>
          
          <category>Mobile Security</category><category>Backend</category><category>Replay Resistance</category><category>TypeScript</category><category>Reproducible Tests</category>
        </item>
<item>
          <title>Android Play Integrity request binding and backend verdict policy</title>
          <description>What requestHash protects, what the server must verify, and why an integrity verdict is not a substitute for authorization.</description>
          <link>https://zombiemutex.com/blog/android-play-integrity-request-binding</link>
          <guid>https://zombiemutex.com/blog/android-play-integrity-request-binding</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>Android</category><category>Kotlin</category><category>Play Integrity</category><category>Mobile Security</category><category>Backend</category><category>Authentication</category>
        </item>
<item>
          <title>Authentication telemetry without leaking tokens or recovery secrets</title>
          <description>Design privacy-conscious auth decision logs that help explain failures without recording the credentials that caused them.</description>
          <link>https://zombiemutex.com/blog/authentication-telemetry-without-secret-leaks</link>
          <guid>https://zombiemutex.com/blog/authentication-telemetry-without-secret-leaks</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>Backend</category><category>Observability</category><category>Authentication</category><category>Mobile Security</category><category>Logging</category>
        </item>
<item>
          <title>Device integrity is not authorization: an App Attest and Play Integrity decision model</title>
          <description>A valid App Attest or Play Integrity result cannot authorize a user. I walk through the server decisions separately and test them with synthetic inputs.</description>
          <link>https://zombiemutex.com/blog/device-integrity-is-not-authorization</link>
          <guid>https://zombiemutex.com/blog/device-integrity-is-not-authorization</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>iOS</category><category>Android</category><category>Mobile Security</category><category>App Attest</category><category>Play Integrity</category><category>Authentication</category>
        </item>
<item>
          <title>Idempotency when HTTP timeouts lie about server-side effects</title>
          <description>A timeout does not undo a committed write. Model retries, duplicate operations and correctly scoped idempotency keys.</description>
          <link>https://zombiemutex.com/blog/idempotency-when-http-timeouts-lie</link>
          <guid>https://zombiemutex.com/blog/idempotency-when-http-timeouts-lie</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>Backend</category><category>API Reliability</category><category>Idempotency</category><category>HTTP</category><category>Retries</category><category>Distributed Systems</category>
        </item>
<item>
          <title>Kotlin coroutine cancellation and lifecycle boundaries on Android</title>
          <description>Avoid orphaned jobs and stale UI state by understanding cooperative cancellation, scopes, and background work.</description>
          <link>https://zombiemutex.com/blog/kotlin-coroutines-cancellation-lifecycle</link>
          <guid>https://zombiemutex.com/blog/kotlin-coroutines-cancellation-lifecycle</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>Android</category><category>Kotlin</category><category>Coroutines</category><category>Jetpack Compose</category><category>Reliability</category>
        </item>
<item>
          <title>Object-level API authorization: why a valid JWT is not enough</title>
          <description>Practical tests for broken object-level authorization in authenticated mobile and backend APIs.</description>
          <link>https://zombiemutex.com/blog/object-level-api-authorization-review</link>
          <guid>https://zombiemutex.com/blog/object-level-api-authorization-review</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>Backend</category><category>API Security</category><category>Authorization</category><category>Threat Modeling</category><category>Mobile Security</category>
        </item>
<item>
          <title>Mobile session recovery as an explicit state machine</title>
          <description>Model sign-in, refresh rotation, expiry, step-up recovery, and revocation without creating a hidden authentication bypass.</description>
          <link>https://zombiemutex.com/blog/session-recovery-as-a-state-machine</link>
          <guid>https://zombiemutex.com/blog/session-recovery-as-a-state-machine</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>Mobile Security</category><category>Authentication</category><category>Session Recovery</category><category>iOS</category><category>Android</category><category>Backend</category>
        </item>
<item>
          <title>Swift concurrency cancellation is cooperative, not an automatic rollback</title>
          <description>How Task.checkCancellation, child tasks, stale results, and server-side effects interact in an iOS app.</description>
          <link>https://zombiemutex.com/blog/swift-concurrency-cancellation-in-real-apps</link>
          <guid>https://zombiemutex.com/blog/swift-concurrency-cancellation-in-real-apps</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Fri, 06 Nov 2026 01:28:41 GMT</pubDate>
          
          <category>iOS</category><category>Swift</category><category>Swift Concurrency</category><category>Async Await</category><category>Reliability</category>
        </item>
<item>
          <title>A place for work, life, and everything in between</title>
          <description>Why this corner of the internet isn&apos;t going to be only about code.</description>
          <link>https://zombiemutex.com/blog/a-place-for-work-life-and-everything-in-between</link>
          <guid>https://zombiemutex.com/blog/a-place-for-work-life-and-everything-in-between</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Thu, 05 Nov 2026 12:00:00 GMT</pubDate>
          
          <category>Life</category><category>Personal</category><category>Writing</category>
        </item>
<item>
          <title>Hardening iOS Device Trust Signals Against Hostile Clients</title>
          <description>A practical look at building and evaluating device trust signals under jailbreaks, instrumentation, replay, and tampered clients, with emphasis on server-side verification and failure-aware design.</description>
          <link>https://zombiemutex.com/blog/hardening-ios-device-trust-signals-against-hostile-clients</link>
          <guid>https://zombiemutex.com/blog/hardening-ios-device-trust-signals-against-hostile-clients</guid>
          <dc:creator>Jeffrey Monica</dc:creator>
          <pubDate>Sun, 29 Mar 2026 17:00:00 GMT</pubDate>
          <dc:date>2026-03-30T03:15:00.000Z</dc:date>
          <category>iOS Security</category><category>Mobile Security</category><category>Device Trust</category><category>Hostile Client</category><category>App Integrity</category><category>Fraud Detection</category><category>Reverse Engineering</category>
        </item>
  </channel>
</rss>