<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Devops on ferkakta.dev</title><link>https://ferkakta.dev/tags/devops/</link><description>Recent content in Devops on ferkakta.dev</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright fizz.</copyright><lastBuildDate>Fri, 03 Apr 2026 23:00:00 -0500</lastBuildDate><atom:link href="https://ferkakta.dev/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>I answered 114 AWS Well-Architected Review questions from my terminal</title><link>https://ferkakta.dev/well-architected-review-from-terminal/</link><pubDate>Fri, 03 Apr 2026 23:00:00 -0500</pubDate><guid>https://ferkakta.dev/well-architected-review-from-terminal/</guid><description>&lt;p&gt;I was fourteen questions into the AWS Well-Architected Review when my wrists told me to stop. Each question is a page: read the description, check the boxes, type notes into a 2084-character text field, click Next. The Container Build Lens alone has 28 questions. I had two more lenses queued — the main Well-Architected Framework (57 questions) and the Generative AI Lens (29). That&amp;rsquo;s 114 questions total, and the console wants me to click through every one.&lt;/p&gt;</description></item><item><title>Recovering Claude Code sessions from history.jsonl after index corruption</title><link>https://ferkakta.dev/recovering-claude-code-sessions-from-history-jsonl/</link><pubDate>Tue, 10 Mar 2026 09:00:00 -0600</pubDate><guid>https://ferkakta.dev/recovering-claude-code-sessions-from-history-jsonl/</guid><description>&lt;p&gt;I still have every email I&amp;rsquo;ve sent and received since 1998. I don&amp;rsquo;t lose data. So when Claude Code stopped resuming sessions for a project I&amp;rsquo;d used daily for months, I didn&amp;rsquo;t think &amp;ldquo;oh well.&amp;rdquo; I thought &amp;ldquo;where did it go.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The project directory still existed in &lt;code&gt;~/.claude/projects/&lt;/code&gt;. There was even a &lt;code&gt;sessions-index.json&lt;/code&gt; in it. But the actual per-session JSONL files — the ones that contain the conversation data — were gone. Every one of them. The index was a catalog pointing at empty shelves.&lt;/p&gt;</description></item><item><title>From eight manual steps to one command</title><link>https://ferkakta.dev/eight-manual-steps-to-one-command/</link><pubDate>Tue, 03 Mar 2026 09:00:00 -0600</pubDate><guid>https://ferkakta.dev/eight-manual-steps-to-one-command/</guid><description>&lt;p&gt;I provisioned two tenants by hand before I decided that nobody should ever provision a tenant by hand.&lt;/p&gt;
&lt;p&gt;The provisioning flow for our multi-tenant SaaS platform was 8 steps across 4 tools — a Python CLI, a shell script with 5 flags per invocation, a GitHub Actions workflow, and two Kubernetes job manifests requiring injected DB connection strings. Each step had different inputs, different env files, and subtly different flag names for the same concept. The two &lt;code&gt;populate&lt;/code&gt; runs used &lt;code&gt;--appname apiserver&lt;/code&gt; and &lt;code&gt;--appname tenant_auth_service&lt;/code&gt; — note the underscore in one and not the other. That naming inconsistency is a guaranteed typo on a Friday afternoon. Each flag is a chance to silently write 24 SSM parameters to the wrong path.&lt;/p&gt;</description></item></channel></rss>