<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ferroman@systems</title><description>Notes from a platform engineer — infrastructure, type systems, and the release process, written the way I&apos;d explain them to a colleague.</description><link>https://ferroman.dev/</link><language>en</language><atom:link href="https://ferroman.dev/rss.xml" rel="self"/><item><title>Hello, world</title><link>https://ferroman.dev/blog/hello-world/</link><guid isPermaLink="true">https://ferroman.dev/blog/hello-world/</guid><description>Why this blog exists — notes from a platform engineer who spends most days keeping other people&apos;s systems boring and reliable.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Learn fundamentals, not tools</title><link>https://ferroman.dev/blog/learn-fundamentals-not-tools/</link><guid isPermaLink="true">https://ferroman.dev/blog/learn-fundamentals-not-tools/</guid><description>Most tools go stale faster than you can learn them. In twenty years the only thing that has not changed is TCP/IP. Learn what stays — what orchestration is, not the YAML — and remember the tell that a technology is about to start dying: it stops hurting.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Latency only matters where a human is waiting</title><link>https://ferroman.dev/blog/latency-only-matters-where-a-human-is-waiting/</link><guid isPermaLink="true">https://ferroman.dev/blog/latency-only-matters-where-a-human-is-waiting/</guid><description>Latency is mostly a psychological quantity. The only reason to fight it is that a person is waiting — so ask the question that has an answer: is there a human waiting on this? If the work takes three seconds, the network is noise, and people have thresholds, not curves.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The model stopped being the variable</title><link>https://ferroman.dev/blog/the-model-stopped-being-the-variable/</link><guid isPermaLink="true">https://ferroman.dev/blog/the-model-stopped-being-the-variable/</guid><description>I kept switching frontier models expecting to find a difference, and the spread turned out to be prose quality and verbosity, not capability. The real gap is judgement, and it is present in every model equally — so the leverage is below the model, in the context and weighting you bring.</description><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Engineering got faster, understanding did not</title><link>https://ferroman.dev/blog/engineering-got-faster-understanding-did-not/</link><guid isPermaLink="true">https://ferroman.dev/blog/engineering-got-faster-understanding-did-not/</guid><description>AI made writing code roughly ten times cheaper. Understanding code did not get cheaper at all. The bottleneck moved to QA capacity and product attention, and the only fix that scales is a compounding loop of automated regression.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>QA is supposed to annoy</title><link>https://ferroman.dev/blog/qa-is-supposed-to-annoy/</link><guid isPermaLink="true">https://ferroman.dev/blog/qa-is-supposed-to-annoy/</guid><description>A steady team has a steady flow of bugs. When the flow stops, it is not quality — it is a filter that runs before the ticket exists. QA should file everything, including &apos;this looks wrong&apos;: triage is cheap, and the observation is not recoverable.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>The TypeScript inheritance trap</title><link>https://ferroman.dev/blog/typescript-inheritance-trap/</link><guid isPermaLink="true">https://ferroman.dev/blog/typescript-inheritance-trap/</guid><description>Inheriting types from a library&apos;s own type hierarchy quietly couples your code to its internals — not just its runtime behavior. A smaller, hand-written type is usually the better trade.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Manage Cattle of Projects With Projen: Intro and Problem Statement</title><link>https://ferroman.dev/blog/manage-cattle-of-projects-with-projen-intro-and-pr/</link><guid isPermaLink="true">https://ferroman.dev/blog/manage-cattle-of-projects-with-projen-intro-and-pr/</guid><description>As an Ops engineer (SRE, DevOps whatever it called these days) I try to make developers life easier, so they can experiment more, do not be afraid of changes and move fast with everything they build. This is not easy to…</description><pubDate>Mon, 18 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Mastering Multiple AWS Accounts with AWS CLI: Navigating Role Delegation, MFA, and Automated Login Scripts</title><link>https://ferroman.dev/blog/mastering-multiple-aws-accounts-with-aws-cli-navig/</link><guid isPermaLink="true">https://ferroman.dev/blog/mastering-multiple-aws-accounts-with-aws-cli-navig/</guid><description>In my role as a platform engineer, I often work with multiple AWS accounts. This can get tricky, especially when setting up Terraform or writing scripts for different account resources. I&apos;ve learned some helpful tips…</description><pubDate>Wed, 15 Nov 2023 00:00:00 GMT</pubDate></item><item><title>README.md</title><link>https://ferroman.dev/blog/readme-md/</link><guid isPermaLink="true">https://ferroman.dev/blog/readme-md/</guid><description>We, engineers, don’t like writing documentation. I’m, personally, suck at it. But what we do like — is to have good documentation for the tools we use. Which is a little bit controversial, isn’t it? This means that most…</description><pubDate>Sat, 27 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Measuring software engineering competency</title><link>https://ferroman.dev/blog/measuring-software-engineering-competency/</link><guid isPermaLink="true">https://ferroman.dev/blog/measuring-software-engineering-competency/</guid><description>A checklist of Obligations and Merits for engineering teams — the Joel Test revised into a score you can compute: missing an obligation costs a point, earning a merit gains one.</description><pubDate>Sun, 05 Apr 2020 00:00:00 GMT</pubDate></item><item><title>Make Code Review Useful Again</title><link>https://ferroman.dev/blog/make-code-review-useful-again/</link><guid isPermaLink="true">https://ferroman.dev/blog/make-code-review-useful-again/</guid><description>Code Review has commonly used technique and it’s definitely one of the must-have processes to keep a high quality of code. But quite often it becomes a formal process or people experience different issues using it. So…</description><pubDate>Tue, 16 Apr 2019 00:00:00 GMT</pubDate></item><item><title>Continuous Deployment to AWS ECS from CircleCI</title><link>https://ferroman.dev/blog/continuous-deployment-to-aws-ecs-from-circleci/</link><guid isPermaLink="true">https://ferroman.dev/blog/continuous-deployment-to-aws-ecs-from-circleci/</guid><description>A dockerized site deployed to AWS ECS on every push to master with no maintenance window: CircleCI builds the image, pushes it to ECR, registers a new task definition, and updates the service.</description><pubDate>Sat, 23 Mar 2019 00:00:00 GMT</pubDate></item><item><title>BDD tests for Hadoop with Cucumber. Part II</title><link>https://ferroman.dev/blog/bdd-tests-for-hadoop-with-cucumber-part-ii/</link><guid isPermaLink="true">https://ferroman.dev/blog/bdd-tests-for-hadoop-with-cucumber-part-ii/</guid><description>Continuing from part I: acceptance tests with Cucumber for Java and Gherkin, which describe what the system should do in a form a new team member can read.</description><pubDate>Wed, 21 Dec 2016 00:00:00 GMT</pubDate></item><item><title>BDD tests for Hadoop with Cucumber. Part I</title><link>https://ferroman.dev/blog/bdd-tests-for-hadoop-with-cucumber-part-i/</link><guid isPermaLink="true">https://ferroman.dev/blog/bdd-tests-for-hadoop-with-cucumber-part-i/</guid><description>Big Data means more data than one machine can process in a reasonable time, so it runs in parallel on Hadoop with Cascading. Part I builds the application and the Docker container that isolates the test environment.</description><pubDate>Fri, 07 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Managing Technical Debt</title><link>https://ferroman.dev/blog/managing-technical-debt/</link><guid isPermaLink="true">https://ferroman.dev/blog/managing-technical-debt/</guid><description>Martin Fowler has a great explanation of this term and the problem behind</description><pubDate>Wed, 24 Dec 2014 00:00:00 GMT</pubDate></item></channel></rss>