<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Emerson Stewart: writing</title><description>Technology and security professional. I run business systems by day, and build security and intelligence tools through Covert Signals, my independent project.</description><link>https://emerson.sh/</link><language>en-us</language><atom:link href="https://emerson.sh/rss.xml" rel="self" type="application/rss+xml"/><item><title>PHP2Shell: the first 24 hours of a critical RCE</title><link>https://emerson.sh/writing/php2shell-first-24-hours/</link><guid isPermaLink="true">https://emerson.sh/writing/php2shell-first-24-hours/</guid><description>A critical flaw in PHP, two exposed services and no patch yet. What I closed first, why the order mattered, and the notice I sent.</description><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><category>Security &amp; Privacy</category><category>incident-response</category><category>php</category><category>vulnerability-management</category><category>reverse-proxy</category></item><item><title>One memory for two coding agents</title><link>https://emerson.sh/writing/one-memory-for-two-coding-agents/</link><guid isPermaLink="true">https://emerson.sh/writing/one-memory-for-two-coding-agents/</guid><description>fact-store: one shared SQLite memory for Claude Code and Codex, with trust scores, budgeted hook injection and agents that save facts unprompted.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>AI Agents &amp; Engineering</category><category>agents</category><category>claude-code</category><category>codex</category><category>mcp</category><category>sqlite</category><category>memory</category></item><item><title>No passwords anywhere</title><link>https://emerson.sh/writing/no-passwords-anywhere/</link><guid isPermaLink="true">https://emerson.sh/writing/no-passwords-anywhere/</guid><description>How I removed passwords from every sign-in path of my project&apos;s single sign-on, the trade-offs I accepted, and the rule I reversed a day later.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>Security &amp; Privacy</category><category>identity</category><category>passkeys</category><category>authentik</category><category>mfa</category><category>sso</category></item><item><title>A day in Kayori: the interface refresh</title><link>https://emerson.sh/writing/kayori-ui-refresh/</link><guid isPermaLink="true">https://emerson.sh/writing/kayori-ui-refresh/</guid><description>A year after I restarted Kayori in Rust, it has a quieter interface. A walk through an analyst&apos;s day, from the feed to a pinned finding.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>Building Companies</category><category>kayori</category><category>osint</category><category>ui-design</category><category>accessibility</category></item><item><title>Ransomware-proof backups, tested</title><link>https://emerson.sh/writing/ransomware-proof-backups-tested/</link><guid isPermaLink="true">https://emerson.sh/writing/ransomware-proof-backups-tested/</guid><description>Five questions about Kopia and Backblaze B2 Object Lock, how I tested each one, what happened, and the controls I put into production.</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate><category>Security &amp; Privacy</category><category>backups</category><category>ransomware</category><category>kopia</category><category>backblaze</category><category>object-lock</category></item><item><title>Plan, hand off, verify: how I run coding agents on a real product</title><link>https://emerson.sh/writing/plan-hand-off-verify/</link><guid isPermaLink="true">https://emerson.sh/writing/plan-hand-off-verify/</guid><description>The method I use to build Kayori with coding agents: written specs, narrow handoffs, CI-grade verification, and a human at the decision points.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate><category>AI Agents &amp; Engineering</category><category>agents</category><category>coding-agents</category><category>specs</category><category>testing</category><category>kayori</category></item><item><title>Structured analytic techniques: a working reference</title><link>https://emerson.sh/writing/structured-analytic-techniques/</link><guid isPermaLink="true">https://emerson.sh/writing/structured-analytic-techniques/</guid><description>The structured analytic techniques I actually use, grouped by family, with when to use each one, how to run it, and how it fails.</description><pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate><category>OSINT &amp; Intelligence</category><category>tradecraft</category><category>analysis</category><category>sats</category><category>osint</category></item><item><title>Building Kayori: an analyst&apos;s notebook, not a dashboard</title><link>https://emerson.sh/writing/building-kayori/</link><guid isPermaLink="true">https://emerson.sh/writing/building-kayori/</guid><description>Why I am building Kayori, a self-hosted OSINT workstation, what the first prototype taught me, and why I started again in Rust with a mesh in mind.</description><pubDate>Sat, 18 Oct 2025 00:00:00 GMT</pubDate><category>Building Companies</category><category>kayori</category><category>osint</category><category>rust</category><category>libp2p</category><category>architecture</category></item><item><title>A personal data classification system</title><link>https://emerson.sh/writing/personal-data-classification/</link><guid isPermaLink="true">https://emerson.sh/writing/personal-data-classification/</guid><description>A simple template for individuals and small teams to label information by harm, and to mark how it must be stored and shared.</description><pubDate>Sat, 14 Jun 2025 00:00:00 GMT</pubDate><category>Security &amp; Privacy</category><category>classification</category><category>opsec</category><category>privacy</category><category>data-handling</category></item><item><title>AnyTone AT-D878UVII Plus</title><link>https://emerson.sh/writing/anytone-at-d878uvii-plus/</link><guid isPermaLink="true">https://emerson.sh/writing/anytone-at-d878uvii-plus/</guid><description>Various programming notes for the AnyTone AT-D878UVII Plus radio.</description><pubDate>Sun, 04 May 2025 00:00:00 GMT</pubDate><category>Radio</category><category>two-way-radio</category><category>dmr</category></item><item><title>iOS hardening, with the reasons</title><link>https://emerson.sh/writing/ios-hardening-guide/</link><guid isPermaLink="true">https://emerson.sh/writing/ios-hardening-guide/</guid><description>A settings-by-settings checklist for an iPhone you depend on, and a one-line reason for every setting, so you can judge what fits your own risk.</description><pubDate>Sat, 19 Apr 2025 00:00:00 GMT</pubDate><category>Security &amp; Privacy</category><category>ios</category><category>iphone</category><category>privacy</category><category>hardening</category></item></channel></rss>