Infrastructure engineer at AWS building container orchestration at scale. Marine Corps veteran and immigrant who learned to build resilient systems by thriving through adversity.

Eisenhower Matrix
One big challenge that comes up a lot at work is that there are always more things to do than time and people to do them. There’s always tech debt that we want to pay off. Long-term migrations away from systems that are going to reach their end of life, that weird bug that nobody knows for sure what’s causing it, the big project announced publicly that has a lot of visibility. Meetings to attend, Slack messages, emails to reply to, conferences, patents, books to write. You get the picture. ...

Humble Book Bundle
I just started reading an early access ebook copy of The Linux Memory Manager by Lorenzo Stoakes, thanks to the book bundle Linux the Good Stuff. I am trying to learn all about memory management in Linux. This is deep stuff. One time, long ago, at a different job, I implemented malloc for an embedded system running on a custom-made RTOS. At the time I felt like a l33t hack3r even though I’m pretty sure I copy pasted the code from somewhere, tested that the system boots, and called it good. Comparing that to Linux memory management is like comparing a tree house to the Empire State Building. So anyway, I need to dive deep and really grok Linux; it comes up a lot when debugging issues at work.

Being Oncall
Being Oncall I’m primary oncall for my AWS Service this week, so I might not have enough time to write every day, but as promised here’s a quick thing, what’s oncall like? I’m not going to give you stories today, but I can tell you what concepts go through my head during oncall week. Monitoring Distributed Systems. Logs, metrics, alarms, how to read them, troubleshoot issues, respond to alarms. Ticket Response How to address customer tickets, making sure they have a good experience but have a bias toward self-service, otherwise the system doesn’t scale. ...
Working Backwards
There’s a mental model that comes up a lot in my day to day. When I’m solving a problem, I start by thinking about the result I want, and work backwards from there. The challenge is having the clarity to define the problem and taking care that I’m solving the right problem. This is why I start with the goal in mind. I use the working backwards method when designing a feature. We start by writing a PRFAQ document, a document that specifies the public announcement of the feature with a section for frequently asked questions. When doing a small change or a simple bug fix, I also do the same thing, but instead of a PRFAQ doc I imagine sending an email to the team or a message on Slack saying what was fixed and what customers experience after the change. ...

How to Make Good Decisions
“It’s tough to make predictions, especially about the future” –Yogi Berra Making decisions is a life skill, no doubt about that. Making decisions when you have limited info is common and it’s what eventually separates good leaders from the rest. On today’s episode of “One small thing per day” I want to mention a gem I learned reading “Thinking in Bets” by Annie Duke. Separate Decision from Outcome Do not use the result as a perfect signal of decision quality, especially when the sample size is small. A bad result can come from a good decision. For example Pete Carroll’s decision to pass and not rush in Super Bowl XLIX had a bad outcome but the decision making rationale was sound. ...
Emotional Math
I recently finished reading Thanks for the feedback by Douglas Stone and Sheila Heen and I can’t recommend it enough, especially now that it’s performance review season at many companies. I’ve taken many lessons from this book, but I want to focus on something that was super insightful when trying to understand people’s interactions. All of us have blind spots. Things that we don’t see and don’t realize that we don’t see them. One of the causes is that we judge ourselves differently than other people judge us. ...

Announcing a Small Update per Day
A new goal: publish a tiny micro post every day I have been meaning to write for a long time. I want to publish updates about what I’ve been learning in real time, but I always want to give beefy, meaningful, and helpful content, and that makes me put things off. So I think that starting now (bad timing, I know, this is not an April Fools’ joke, I promise), I will publish daily: one small thing I have learned. This way I can document my journey and my growth. I promise you this will be my real voice, not a chatbot instructed to give some buzzword-riddled slop. ...
Understanding Container Networking
The Problem Containers Solve Docker emerged as a lightweight alternative to virtual machines. VMs consumed significant resources and took 3-5 minutes to boot, making horizontal scaling expensive. Containers package applications with dependencies into images that start in seconds, not minutes. The Networking Challenge Without network connectivity, containers offer limited utility. Running a single container on host networking mode works fine - the process accesses the host machine’s network resources directly. But what happens when you need: ...
My AI and Machine Learning Reading Journey
Introduction Over the years, I’ve explored a range of books covering artificial intelligence, machine learning, data science, and the broader societal implications of automation. Below is a curated list of some standout reads from my Goodreads library, along with a few thoughts and takeaways. I asked ChatGpt to create a post from my GoodReads reading list 📚 Featured AI & ML Books The Alignment Problem: Machine Learning and Human Values Author: Brian Christian Published: 2020 Average Rating: 4.34 My Rating: — A deep dive into the ethical and philosophical challenges of aligning AI systems with human values. Brian Christian connects cutting-edge research with real-world implications. ...
A Deep Dive into Network Namespaces in AWS ECS Containers
What goes into a network namespace? What’s a CNI plugin? This blog post explores the contents of a network namespace and then provides links to the open source code that creates and configures namespaces for containarized workloads running on Fargate and ECS Managed Instances. Background and Motivation When you launch a task in ECS Managed Instances you can pick two network modes, awsvpc and host. In this series of post I want to explain the role in the CNI plugins have in creating and setting up network namespaces for customer tasks. In awsvpc each task receives its own elastic network interface (ENI) and private IPv4 address. Under the hood the code that creates and manages network namespaces (netns) for Fargate also handles Managed Instances. The plugins that handles this setup are open source but they are somewhat hidden behind the netlib platform API (as they should) so the typical dataplane engineer does not see the plugin code on day-to-day therefore i’s’ kind of a black box to most folks in my team, but it doesn’t have to be. ...