<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>InfluentCoder</title><description>Tech blog for software developers</description><link>https://influentcoder.com/</link><item><title>Reading AWS IAM policies from first principles</title><link>https://influentcoder.com/posts/aws-iam/</link><guid isPermaLink="true">https://influentcoder.com/posts/aws-iam/</guid><description>I struggled to understand what I had access to in AWS, or which service could access what, when IAM wasn&apos;t managed by us. So I went back to the first principles of IAM policies.</description><pubDate>Sun, 08 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Backward compatibility lessons from a platform used by tens of thousands of applications</title><link>https://influentcoder.com/posts/backwards-comp/</link><guid isPermaLink="true">https://influentcoder.com/posts/backwards-comp/</guid><description>Building platforms, APIs and shared libraries isn&apos;t just about clean code. It&apos;s about not breaking people. Stories of what we broke without meaning to.</description><pubDate>Sun, 27 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Communicate, Communicate, Communicate: Lessons from a Platform Change Gone Wrong</title><link>https://influentcoder.com/posts/communicate/</link><guid isPermaLink="true">https://influentcoder.com/posts/communicate/</guid><description>When we make changes to a core platform component, running hundreds of millions of times a day, there&apos;s another responsibility that&apos;s just as important: communication.</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Envoy configuration in an enterprise ecosystem</title><link>https://influentcoder.com/posts/envoy/</link><guid isPermaLink="true">https://influentcoder.com/posts/envoy/</guid><description>Envoy configuration is tough to set up when some services use mTLS with short-lived SPIFFE certificates, some only speak HTTP/1, and some need custom auth.</description><pubDate>Sun, 01 Jun 2025 00:00:00 GMT</pubDate></item><item><title>FUSE: Building Filesystems in Userspace</title><link>https://influentcoder.com/posts/fuse/</link><guid isPermaLink="true">https://influentcoder.com/posts/fuse/</guid><description>When I first encountered FUSE, I didn&apos;t immediately realize how useful it could be. Then a colleague casually suggested: &quot;You could mount it with FUSE.&quot;</description><pubDate>Sun, 13 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Slicing and dicing JSON in the terminal with jq</title><link>https://influentcoder.com/posts/jq/</link><guid isPermaLink="true">https://influentcoder.com/posts/jq/</guid><description>The jq filters I use the most at work to query and debug JSON APIs from the terminal, and that I keep forgetting the syntax for.</description><pubDate>Sun, 25 May 2025 00:00:00 GMT</pubDate></item><item><title>Mount namespaces and mount propagation in Linux</title><link>https://influentcoder.com/posts/linux-mount/</link><guid isPermaLink="true">https://influentcoder.com/posts/linux-mount/</guid><description>Isolating workloads without containers, and making containers start fast, got me digging into mount namespaces and propagation. Here is what I learned, with experiments to run.</description><pubDate>Sun, 04 May 2025 00:00:00 GMT</pubDate></item><item><title>Understanding Diagnostics in Neovim</title><link>https://influentcoder.com/posts/nvim-diagnostics/</link><guid isPermaLink="true">https://influentcoder.com/posts/nvim-diagnostics/</guid><description>At some point, error and warning messages stopped appearing inline in Neovim. After some investigation, the cause was a disabled option: virtual_text.</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Walking untrusted directories with O_PATH and openat2()</title><link>https://influentcoder.com/posts/opath/</link><guid isPermaLink="true">https://influentcoder.com/posts/opath/</guid><description>How to walk a directory tree that someone else controls without ending up in /etc: what O_PATH file descriptors and openat2() do, with a race you can reproduce.</description><pubDate>Sun, 11 May 2025 00:00:00 GMT</pubDate></item><item><title>How overlay filesystems work, and what to watch out for</title><link>https://influentcoder.com/posts/overlayfs/</link><guid isPermaLink="true">https://influentcoder.com/posts/overlayfs/</guid><description>I looked into overlayfs while working on fast container startup. How copy-up, whiteouts and layers work, the gotchas, and what I found about eStargz, Nydus and fuse-overlayfs.</description><pubDate>Sun, 18 May 2025 00:00:00 GMT</pubDate></item><item><title>Reinstall GRUB on a dual boot setup with Arch Linux and Windows</title><link>https://influentcoder.com/posts/reinstall-grub-arch-linux/</link><guid isPermaLink="true">https://influentcoder.com/posts/reinstall-grub-arch-linux/</guid><description>A BIOS update from Windows messed up GRUB on my Arch Linux dual-boot laptop. Here&apos;s how I got it working again.</description><pubDate>Tue, 19 Dec 2023 00:00:00 GMT</pubDate></item><item><title>Walkthrough Guide: How to Set Up Kerberos Authentication on Linux</title><link>https://influentcoder.com/posts/walkthrough-setup-kerberos-linux/</link><guid isPermaLink="true">https://influentcoder.com/posts/walkthrough-setup-kerberos-linux/</guid><description>A walkthrough to set up Kerberos on Linux, and authenticate on a server via SSH using Kerberos, with three Ubuntu hosts.</description><pubDate>Sun, 12 Nov 2023 00:00:00 GMT</pubDate></item></channel></rss>