<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Yes Way Jose</title><link>https://JoseVillalta.github.io/</link><description>Recent content on Yes Way Jose</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>you@example.com (Jose Villalta)</managingEditor><webMaster>you@example.com (Jose Villalta)</webMaster><lastBuildDate>Mon, 20 Apr 2026 08:18:35 -0700</lastBuildDate><atom:link href="https://JoseVillalta.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Reading This Month</title><link>https://JoseVillalta.github.io/posts/reading-this-month/</link><pubDate>Mon, 20 Apr 2026 08:18:35 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/reading-this-month/</guid><description>&lt;p&gt;This month I&amp;rsquo;m listening to the audiobook &amp;ldquo;Influence: Science and Practice&amp;rdquo; by Dr. Robert Cialdini to understand the psychology of persuasion, why people say yes, through six core principles: reciprocation, commitment and consistency, social proof, liking, authority, and scarcity. Cialdini is an academic, not a salesman, and he provides compelling examples and anecdotes. I don&amp;rsquo;t like to be manipulated and I don&amp;rsquo;t want to get what I want through manipulative practices, but it pays to understand what makes people tick. Effective leaders seem to have an intuition about this. For some it may come as &amp;ldquo;common sense,&amp;rdquo; while others may feel like they just don&amp;rsquo;t get people. I&amp;rsquo;d put myself in the latter camp. I can even confess that I chose my university major based on that.&lt;/p&gt;</description></item><item><title>How I Make Hard Decisions Easy</title><link>https://JoseVillalta.github.io/posts/minimize-regret/</link><pubDate>Thu, 16 Apr 2026 07:09:40 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/minimize-regret/</guid><description>&lt;p&gt;One useful tool I use when I want to make a hard decision easy: I picture myself at 80 years old and ask, will I regret not doing this? If the answer is yes, I have to try it. If the answer is no, I can let it go and move on without losing sleep over it.&lt;/p&gt;
&lt;p&gt;I learned about this reading &lt;a href="https://www.amazon.com/Everything-Store-Jeff-Bezos-Amazon/dp/0316219266"&gt;The Everything Store&lt;/a&gt; by Brad Stone. The idea is called the Regret Minimization Framework. When Jeff Bezos was deciding whether to leave his job and start Amazon, he used this exact exercise. He imagined himself at 80 and realized he would regret not trying, even if it failed. The potential regret of not trying was worse than the potential regret of trying and failing.&lt;/p&gt;</description></item><item><title>How I Keep Track of Everything at Work</title><link>https://JoseVillalta.github.io/posts/my-daily-ritual/</link><pubDate>Wed, 15 Apr 2026 04:58:04 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/my-daily-ritual/</guid><description>&lt;p&gt;One of the things I learned at Amazon is how to manage a workload significantly larger than any other place I&amp;rsquo;ve ever worked at. I understand the reason for it: at Amazon the team that creates the service owns it. That means they are the operators and responders as well as designers and testers.&lt;/p&gt;
&lt;p&gt;As a result, senior engineers often have more than one project going on at any given time. So how do you keep track of it all? Well, I have a system of &amp;ldquo;rituals&amp;rdquo; or routines that I use. It&amp;rsquo;s very simple and I&amp;rsquo;ve taken inspiration from the &amp;ldquo;Getting Things Done&amp;rdquo; GTD method, as well as other time management books I&amp;rsquo;ve read.&lt;/p&gt;</description></item><item><title>Eisenhower Matrix</title><link>https://JoseVillalta.github.io/posts/eisenhower-matrix/</link><pubDate>Mon, 13 Apr 2026 07:51:31 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/eisenhower-matrix/</guid><description>&lt;p&gt;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&amp;rsquo;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&amp;rsquo;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.&lt;/p&gt;</description></item><item><title>Humble Book Bundle</title><link>https://JoseVillalta.github.io/posts/humble-book-bundle/</link><pubDate>Fri, 10 Apr 2026 08:34:08 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/humble-book-bundle/</guid><description>&lt;p&gt;I just started reading an early access ebook copy of &lt;a href="https://nostarch.com/linux-memory-manager"&gt;The Linux Memory Manager&lt;/a&gt; by Lorenzo Stoakes, thanks to the book bundle &lt;a href="https://www.humblebundle.com/books/linux-good-stuff-no-starch-books"&gt;Linux the Good Stuff&lt;/a&gt;. I am trying to learn all about memory management in Linux. This is deep stuff.&lt;/p&gt;
&lt;p&gt;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 &lt;code&gt;l33t hack3r&lt;/code&gt; even though I&amp;rsquo;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.&lt;/p&gt;</description></item><item><title>Being Oncall</title><link>https://JoseVillalta.github.io/posts/being-oncall/</link><pubDate>Tue, 07 Apr 2026 06:54:07 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/being-oncall/</guid><description>&lt;h1 id="being-oncall"&gt;Being Oncall&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;m primary oncall for my AWS Service this week, so I might not have enough time to write every day, but as promised here&amp;rsquo;s a quick thing, what&amp;rsquo;s oncall like? I&amp;rsquo;m not going to give you stories today, but I can tell you what concepts go through my head during oncall week.&lt;/p&gt;
&lt;h4 id="monitoring-distributed-systems"&gt;Monitoring Distributed Systems.&lt;/h4&gt;
&lt;p&gt;Logs, metrics, alarms, how to read them, troubleshoot issues, respond to alarms.&lt;/p&gt;
&lt;h4 id="ticket-response"&gt;Ticket Response&lt;/h4&gt;
&lt;p&gt;How to address customer tickets, making sure they have a good experience but have a bias toward self-service, otherwise the system doesn&amp;rsquo;t scale.&lt;/p&gt;</description></item><item><title>Working Backwards</title><link>https://JoseVillalta.github.io/posts/working-backwards/</link><pubDate>Mon, 06 Apr 2026 08:00:41 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/working-backwards/</guid><description>&lt;p&gt;There&amp;rsquo;s a mental model that comes up a lot in my day to day. When I&amp;rsquo;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&amp;rsquo;m solving the right problem. This is why I start with the goal in mind.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>How to Make Good Decisions</title><link>https://JoseVillalta.github.io/posts/how-to-make-good-decisions/</link><pubDate>Fri, 03 Apr 2026 11:10:27 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/how-to-make-good-decisions/</guid><description>&lt;p&gt;&lt;em&gt;&amp;ldquo;It&amp;rsquo;s tough to make predictions, especially about the future&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ndash;Yogi Berra&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Making decisions is a life skill, no doubt about that. Making decisions when you have limited info is common and it&amp;rsquo;s what eventually separates good leaders from the rest.&lt;/p&gt;
&lt;p&gt;On today&amp;rsquo;s episode of &amp;ldquo;One small thing per day&amp;rdquo; I want to mention a gem I learned reading &amp;ldquo;&lt;a href="https://www.amazon.com/Thinking-Bets-Making-Smarter-Decisions/dp/0735216355"&gt;Thinking in Bets&lt;/a&gt;&amp;rdquo; by Annie Duke.&lt;/p&gt;
&lt;h3 id="separate-decision-from-outcome"&gt;Separate Decision from Outcome&lt;/h3&gt;
&lt;p&gt;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&amp;rsquo;s decision to pass and not rush in &lt;a href="https://www.theguardian.com/sport/2015/feb/02/how-bad-was-the-seahawks-play-call-at-the-end-of-super-bowl-xlix"&gt;Super Bowl XLIX&lt;/a&gt; had a bad outcome but the decision making rationale was sound.&lt;/p&gt;</description></item><item><title>Emotional Math</title><link>https://JoseVillalta.github.io/posts/emotional-math/</link><pubDate>Thu, 02 Apr 2026 05:03:53 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/emotional-math/</guid><description>&lt;p&gt;I recently finished reading &lt;a href="https://www.amazon.com/Thanks-Feedback-Science-Receiving-Well/dp/0670014664"&gt;Thanks for the feedback&lt;/a&gt; by Douglas Stone and Sheila Heen and I can&amp;rsquo;t recommend it enough, especially now that it&amp;rsquo;s performance review season at many companies.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve taken many lessons from this book, but I want to focus on something that was super insightful when trying to understand people&amp;rsquo;s interactions.&lt;/p&gt;
&lt;p&gt;All of us have blind spots. Things that we don&amp;rsquo;t see and don&amp;rsquo;t realize that we don&amp;rsquo;t see them. One of the causes is that we judge ourselves differently than other people judge us.&lt;/p&gt;</description></item><item><title>Announcing a Small Update per Day</title><link>https://JoseVillalta.github.io/posts/announcing-a-small-update-per-day/</link><pubDate>Wed, 01 Apr 2026 08:56:25 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/announcing-a-small-update-per-day/</guid><description>&lt;h3 id="a-new-goal-publish-a-tiny-micro-post-every-day"&gt;A new goal: publish a tiny micro post every day&lt;/h3&gt;
&lt;p&gt;I have been meaning to write for a long time. I want to publish updates about what I&amp;rsquo;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&amp;rsquo; 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.&lt;/p&gt;</description></item><item><title>Understanding Container Networking</title><link>https://JoseVillalta.github.io/posts/understanding-container-networking/</link><pubDate>Sun, 09 Nov 2025 12:47:55 -0800</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/understanding-container-networking/</guid><description>&lt;h3 id="the-problem-containers-solve"&gt;The Problem Containers Solve&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h3 id="the-networking-challenge"&gt;The Networking Challenge&lt;/h3&gt;
&lt;p&gt;Without network connectivity, containers offer limited utility. Running a single container on host networking mode works fine - the process accesses the host machine&amp;rsquo;s network resources directly. But what happens when you need:&lt;/p&gt;</description></item><item><title>My AI and Machine Learning Reading Journey</title><link>https://JoseVillalta.github.io/posts/ai-readings/</link><pubDate>Wed, 22 Oct 2025 00:00:00 +0000</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/ai-readings/</guid><description>A look at the AI and ML books that shaped my understanding of artificial intelligence, data science, and the ethics of technology.</description></item><item><title>A Deep Dive into Network Namespaces in AWS ECS Containers</title><link>https://JoseVillalta.github.io/posts/network-namespaces-ecs-containers/</link><pubDate>Sun, 12 Oct 2025 17:12:00 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/network-namespaces-ecs-containers/</guid><description>Ever wondered what happens under the hood when you launch an ECS task with awsvpc networking? Let&amp;#39;s explore how network namespaces are put together when you run containers in ECS Managed Instances.</description></item><item><title>KPI for Career Success</title><link>https://JoseVillalta.github.io/posts/kpi-for-career-success/</link><pubDate>Mon, 17 Mar 2025 08:22:45 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/kpi-for-career-success/</guid><description>&lt;h2 id="what-is-the-one-metric-for-sucess-in-your-career"&gt;What is the one metric for sucess in your career?&lt;/h2&gt;
&lt;p&gt;Lately I&amp;rsquo;ve been thinking about what it means to grow in my career. Like, How do I know I am doing a good job? Is there a metric I can track? It turns out there&amp;rsquo;s people way smarter than me that have already thought about that and written about it.&lt;/p&gt;
&lt;p&gt;Tanya Reilly wrote an excellent book on that subject &lt;a href="https://www.amazon.com/Staff-Engineers-Path-Tanya-Reilly-ebook/dp/B0BG16Y553?ref_=ast_author_dp"&gt;The Staff Engineer&amp;rsquo;s Path&lt;/a&gt; which I reference a lot, specially when I try to figure out how I should approach my career path. I am clear in the fact that I want to stay technical, I don&amp;rsquo;t want to be a manager, not because there&amp;rsquo;s anything wrong with being a manager. The thing is: I don&amp;rsquo;t want to stop writing sofware. I want to design, implement, test, deploy, maintain and deprecate software systems. I don&amp;rsquo;t want to stop doing that, at least, not for now. So anyway, there&amp;rsquo;s a lot of good advice out there, there&amp;rsquo;s a lot of things you can optimize for. If you want to go from software engineer to senior you need to know things, you need to be responsible and reliable. If you want to grow in your career then you need to be a leader, a role model, you need to be the glue that facilitates collaboration. Since there&amp;rsquo;s so much to know, so many different ways to help a team. There are so many rabbit holes one can go down in depth: Business Domains, Customers, new fields developments. There&amp;rsquo;s so many good people to meet. So, you can&amp;rsquo;t know and do everyting. You have a limitied amount of time and everything counts. So then, how do you know you are doing a good job? What is the North Star?&lt;/p&gt;</description></item><item><title>How to be Right a Lot (or at least Not Wrong A Lot)</title><link>https://JoseVillalta.github.io/posts/right-a-lot/</link><pubDate>Fri, 14 Mar 2025 15:53:03 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/right-a-lot/</guid><description>&lt;p&gt;I&amp;rsquo;m lucky that I get to work with people who are good at what they do.
The corporate-speak term we use at Amazon is the Leadership Principle of &amp;ldquo;Right A Lot&amp;rdquo;&lt;/p&gt;
&lt;p&gt;For me it&amp;rsquo;s about having a scientific mindset, or more plainly, constantly wondering, &amp;ldquo;how does this work?&amp;rdquo;
&amp;ldquo;Why are things working this way, instead of that way?&amp;rdquo; or my favority &amp;ldquo;What would happen if I do this&amp;rdquo;
but wondering and inquiring is not the whole thing, is actively working to disconfirm your beliefs.
It&amp;rsquo;s about being open to the possibility that you might be wrong. I love that.&lt;/p&gt;</description></item><item><title>Practical Engineering</title><link>https://JoseVillalta.github.io/posts/practical-engineering/</link><pubDate>Wed, 05 Mar 2025 09:21:38 -0800</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/practical-engineering/</guid><description>&lt;h2 id="practical-engineering-by-peng-zhang"&gt;Practical Engineering by Peng Zhang&lt;/h2&gt;
&lt;p&gt;I want to give a quick shout out to Peng&amp;rsquo;s blog &lt;a href="peng.fyi"&gt;peng.fyi&lt;/a&gt;
Peng works with me writing software for AWS Fargate&amp;rsquo;s Dataplane. I have been following his posts the last few days and I really like this blog
because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Technical topics that apply to most folks in my team&lt;/li&gt;
&lt;li&gt;His posts are short and to the point.&lt;/li&gt;
&lt;li&gt;He illustrates his points with code.&lt;/li&gt;
&lt;li&gt;The code is formatted with beautifcul syntax highlits that makes it easy to read.&lt;/li&gt;
&lt;li&gt;I get inspired myself to share my insights in writing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks Peng!&lt;/p&gt;</description></item><item><title>The Sirens Call: How Attention Became the World's Most Endangered Resource</title><link>https://JoseVillalta.github.io/posts/the-sirens-call/</link><pubDate>Wed, 05 Mar 2025 08:49:27 -0800</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/the-sirens-call/</guid><description>&lt;h3 id="book-review"&gt;Book Review&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;m almost finished with &lt;a href="https://www.amazon.com/Sirens-Call-Attention-Endangered-Resource-ebook/dp/B0DDNGLSJP"&gt;The Siren&amp;rsquo;s Call by Chris Hayes&lt;/a&gt;
and it&amp;rsquo;s interesting enough to call out here.&lt;/p&gt;
&lt;p&gt;The book starts with an excellent explanation of what attention is and how it works. Then the book presents two analogies to use when thinking about attention.&lt;/p&gt;
&lt;p&gt;The first one is to think of Attention as a resource that drives the economy, like labor, it is commodified, it can be monetized, marketed bought and sold.
Since information is now pletiful, (there&amp;rsquo;s too much of it, really) attention is scarce, we have a limit of how much information we consume, how much we can pay attention to.
So now market forces, tech companies, politicians they are all competing for our attention. Our attention has value, it yields money, power and fame.&lt;/p&gt;</description></item><item><title>How do you architech change? The answer is simple, but not always easy</title><link>https://JoseVillalta.github.io/posts/useful-strategies-for-growing/</link><pubDate>Sat, 01 Mar 2025 16:13:55 -0800</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/useful-strategies-for-growing/</guid><description>&lt;p&gt;This week I had an Eureka moment at work. You see, there are many things I see at work that I would like to improve. Technical debt in our codebase. Inefficient processes. Communication silos across teams. The list of things one can improve never ends, this is true in all software shops. System complixity grows as new functionality gets added, inefficiencies optimized, bugs fixed. Secuirty hardened, etc.&lt;/p&gt;
&lt;p&gt;How do you increase the quality of your system without interrupting the flow? Well, obviously, you break it up, one tiny thing at time. That&amp;rsquo;s how. Yeah it&amp;rsquo;s obvious but (this is embarrasing to admit) I get the urge to make BIG changes, I&amp;rsquo;d like to rewrite whole chuncks of the codebase, I&amp;rsquo;d like to build a brand new release pipeline, and we might do that someday, but not today. When you have a team that&amp;rsquo;s busy doing the work, tidying up gets deprioritized. After all, that bug in prod needs to get fixed yesterday, that new feature needs to ship on time. Oh, by the way, the developer that was working on that thing your system depends on quit last week.&lt;/p&gt;</description></item><item><title>Understanding Container Port Mapping</title><link>https://JoseVillalta.github.io/posts/understanding-container-port-mapping/</link><pubDate>Thu, 19 Dec 2024 11:00:00 -0800</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/understanding-container-port-mapping/</guid><description>&lt;h3 id="the-problem-containers-solve"&gt;The Problem Containers Solve&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h3 id="the-networking-challenge"&gt;The Networking Challenge&lt;/h3&gt;
&lt;p&gt;Without network connectivity, containers offer limited utility. Running a single container on host networking mode works fine - the process accesses the host machine&amp;rsquo;s network resources directly. But what happens when you need:&lt;/p&gt;</description></item><item><title>Learning Go</title><link>https://JoseVillalta.github.io/posts/learning-go/</link><pubDate>Tue, 27 Aug 2024 08:32:11 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/learning-go/</guid><description>&lt;p&gt;I have been an official Go programmer for three years now. Unlike many people in my team, I remember the day Google announced go. I don&amp;rsquo;t remember if it was in Hacker News or /programming reddit, but I do remember watching the go math package compiling in less than a second, at the time, I was writing C++ for an embedded system. Building the whole model as we used to say took 45 minutes, this compiled our C/C++ project into a .out file for an ARM9 and a C55 DSP. When I saw how quickly Go built I was like, wow. To be fair, our build was for a Real Time OS so it didn&amp;rsquo;t even include the C++ standard library. Most of the time, if I remember right, was spent linking everything. THe linker was getting it&amp;rsquo;s poor butt kicked. Anyyway, I looked at Rob Pike (?) on YouTube and I was like,&lt;/p&gt;</description></item><item><title>Awesome Falsehoods Programmers Believe</title><link>https://JoseVillalta.github.io/posts/awesome-falsehoods/</link><pubDate>Wed, 08 Nov 2023 07:57:58 -0800</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/awesome-falsehoods/</guid><description>&lt;h3 id="a-curated-list-of-falsehoods-programmers-believe-in"&gt;A curated list of falsehoods programmers believe in.&lt;/h3&gt;
&lt;p&gt;The Code we write is a representation of the things we believe are true about the world. Every one has just one name, right? Well, most of the time, yes. All of the time? No. If you write an app for yourself, or your small business most of these assumptions are fine. If you write code for millions of users, you are going to find exceptions. Some of them surprise me. Dealing with Time sucks, dealing with addresses, names, supporting multiple languages it&amp;rsquo;s really hard to get it right 100% of the time.&lt;/p&gt;</description></item><item><title>Book Summary: Thinking in Systems by Donella Meadows</title><link>https://JoseVillalta.github.io/posts/systems-book-notes/</link><pubDate>Sat, 04 Nov 2023 16:18:25 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/systems-book-notes/</guid><description>&lt;h2 id="book-summary-thinking-in-systems"&gt;Book Summary: Thinking in Systems&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s say you want to build the perfect self-driving vehicle. This thing you want to make is composed of many parts. There&amp;rsquo;s the car itself made up of many subparts (engine, tires, transmission, etc) as well as the AI tech. Realistically you will need a bunch of speciallized embedded systems as well as a central computer to orchestrate everything. There&amp;rsquo;s sensors, actuators, orchestrators, etc.
In short, how does one person know if a design is good? How do you know how fast the visual recognition needs to be to handle controlling a car going 60 mph?&lt;/p&gt;</description></item><item><title>The top 3 podcasts for Software Developers</title><link>https://JoseVillalta.github.io/posts/best-podcasts/</link><pubDate>Tue, 31 Oct 2023 09:05:57 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/best-podcasts/</guid><description>&lt;h3 id="the-top-3-podcasts-for-software-developers"&gt;The Top 3 Podcasts for Software Developers&lt;/h3&gt;
&lt;h4 id="go-time-by-changelog"&gt;Go Time by Changelog&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://changelog.com/gotime"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the podcast to keep up-to-date with all things Go. The jokes are nerdy and the hosts are sometimes not as funny as they think they are, but the content is great and they have a wide set of guests in the show that make it a must for all people who write go for a living&lt;/p&gt;</description></item><item><title>Article Review: Lessons Learned from Twenty Years of Site Reliability Engineering</title><link>https://JoseVillalta.github.io/posts/twenty-years-of-sre-lessons-learned/</link><pubDate>Tue, 31 Oct 2023 08:29:26 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/twenty-years-of-sre-lessons-learned/</guid><description>&lt;h3 id="article-lessons-learned-from-twenty-years-of-site-reliability-engineering"&gt;Article: Lessons Learned from Twenty Years of Site Reliability Engineering&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://sre.google/resources/practices-and-processes/twenty-years-of-sre-lessons-learned/"&gt;Link to article&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The site realibility team at Google put together a summary of the lessons they have learned over the years. I am glad they decided to share. The best way to learn is by trial and error. Want your product or service to be better? Launch it, monitor it, and learn from the mistakes. It nice to learn from others, but there is no substitue to first hand experience. This is the list they came up with:&lt;/p&gt;</description></item><item><title>Staff Engineer Path</title><link>https://JoseVillalta.github.io/posts/staff-engineer-path/</link><pubDate>Mon, 24 Jul 2023 09:05:00 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/staff-engineer-path/</guid><description>&lt;h3 id="book-review-the-staff-engineers-path-by-tanya-reilly"&gt;Book Review: The Staff Engineer&amp;rsquo;s Path by Tanya Reilly&lt;/h3&gt;
&lt;p&gt;Tanya Reilly gives a guide for individual contributor software engineers who wish to grow their career but do not want to become managers. It gives insights about what a staff engineer does, and what you need to do to perform at that level. This is a technology-agnostic book. It gives the reader a high level view of the functional areas that matter.&lt;/p&gt;</description></item><item><title>Coroutines for Go</title><link>https://JoseVillalta.github.io/posts/coroutines-for-go/</link><pubDate>Tue, 18 Jul 2023 06:51:45 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/coroutines-for-go/</guid><description>&lt;h3 id="go"&gt;Go&lt;/h3&gt;
&lt;p&gt;Russ Cox put out an &lt;a href="https://research.swtch.com/coro"&gt;article&lt;/a&gt; yesteday about adding the abilities to run coroutines in go. Today I learned the difference
between a &lt;a href="https://go.dev/tour/concurrency/1"&gt;goroutine&lt;/a&gt; and a &lt;a href="https://en.wikipedia.org/wiki/Coroutine"&gt;coroutine&lt;/a&gt;. Coroutine is a concurrency pattern in which only one runs at a time. Say we have coroutine A and B. B waits while A runs then A yields to B and A waits while B runs. It turns out this is useful in a few scenarios.&lt;/p&gt;</description></item><item><title>Learning File Systems</title><link>https://JoseVillalta.github.io/posts/learning-file-systems/</link><pubDate>Sat, 15 Jul 2023 21:21:31 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/learning-file-systems/</guid><description>&lt;p&gt;Lately I have been learning about File Systems from the book &amp;ldquo;Operating Systems. Three Easy Pieces&amp;rdquo; by Remzi Arpaci-Dusseau.&lt;/p&gt;
&lt;p&gt;I used to think that I knew how file systems worked because the interface open, read and write is so straight forward, what else could there be to it? But then at work some weird issues come up where some weird behaviour happens, like, du says the disk has space but df says the disk is full, what could make that happen? Or when an issue mounting a volume occurs and you realize that you don&amp;rsquo;t know the difference between mounting a block device versus mounting a file system. Are they both the same thing? I need to have a mental model of what the system is doing in order to debug it. Knowing the data structures in the file system and having an idea of what happens when you open a file, how does the operating system find the file? how does it traverse the file tree? What is in memory versus disk?
I must confess I am still in the dark when it comes to container images and union file systems. I understand how a container is made up of many layers over imposed on top of each other. An image is essentially a tar file of different file systems on top of each other. But, how is it implemented? how do you, can you just put a whole other /proc and other system files on top of a kernel?
So anyway, that&amp;rsquo;s what I have been up to.&lt;/p&gt;</description></item><item><title>My Tsundoku Pile</title><link>https://JoseVillalta.github.io/posts/my-tsundoku-pile/</link><pubDate>Sun, 22 Jan 2023 20:02:32 -0800</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/my-tsundoku-pile/</guid><description>&lt;figure&gt;
&lt;img loading="lazy" src="https://JoseVillalta.github.io/img/pile.jpg"/&gt;
&lt;/figure&gt;
&lt;p&gt;I&amp;rsquo;m trying to get through all my technical books that I&amp;rsquo;ve adquired, and never gotten around to.
Not going to lie, the Knuth books are intimidating. They are actually not that bad to get through, but they are books that I pick up, read a few pages on a specfic project, try to do a problem or two, and that&amp;rsquo;s it.&lt;/p&gt;
&lt;p&gt;The other books are less intimidating, more doable, I&amp;rsquo;m pretty sure al but one of these books were lying around the Amazon campus just sitting on shelves.&lt;/p&gt;</description></item><item><title>Paper every Day. Day ten: The Unix Timesharing System by Dennis Ritchie and Ken Thompson</title><link>https://JoseVillalta.github.io/posts/day-ten-unix-timesharing/</link><pubDate>Sun, 31 Jul 2022 10:40:30 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-ten-unix-timesharing/</guid><description>&lt;p&gt;&lt;a href="https://dsf.berkeley.edu/cs262/unix.pdf"&gt;Link to Paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This paper, published in July 1974 is remarkable because the design decisions that were made back then by these guys working at Bell Labs on an operating system for the &lt;a href="https://en.wikipedia.org/wiki/PDP-11"&gt;PDP-11 &lt;/a&gt; are still relevant.&lt;/p&gt;
&lt;p&gt;I am still struggling to create a mental model of the unix file system, the fact that it looks like a single tree with the root at the top while simultaneously you can have multiple devices &lt;a href="https://en.wikipedia.org/wiki/Mount_(Unix)"&gt;mounted&lt;/a&gt; dates back to these guys at Bell Labs.&lt;/p&gt;</description></item><item><title>Paper every day: Day Nine: An Analysis of Linux Scalability to Many Cores</title><link>https://JoseVillalta.github.io/posts/day-nine-linux-scalability/</link><pubDate>Mon, 25 Jul 2022 09:13:41 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-nine-linux-scalability/</guid><description>&lt;p&gt;&lt;a href="https://pdos.csail.mit.edu/papers/linux:osdi10.pdf"&gt;Link to Paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From the abstract:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;This paper analyzes the scalability of seven system applications running on Linux on a 48-core computer&amp;hellip;using mostly standard parallel programming techniques -this paper introduces one new technique &lt;strong&gt;sloppy counters&lt;/strong&gt; these bottlencek can be removed from the kernl or avoided by changing the application slightly&amp;rdquo;&lt;/p&gt;
&lt;p&gt;This paper has an excellent system level tutorial on scalability. They explain that you don&amp;rsquo;t get linear increase in performance because in real life applications parallel tasks usually interact, an interaction forces serial execution. Then they list the common causes with common solutions. This paper is throughly written and researched. Writing truly parallel code is difficult and even then applications still compete for some shared resouce, be it a local cache, network access or disk I/O.&lt;/p&gt;</description></item><item><title>Lets Go</title><link>https://JoseVillalta.github.io/posts/lets-go/</link><pubDate>Sun, 24 Jul 2022 21:42:07 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/lets-go/</guid><description>&lt;h3 id="go"&gt;Go&lt;/h3&gt;
&lt;p&gt;I have been writing go since a little after last year. I actually remember hearing about go when it first came out, back then I honestly never thought I&amp;rsquo;d be getting paid to work in it.&lt;/p&gt;
&lt;p&gt;Even though I&amp;rsquo;ve been writing code in go for a while, I don&amp;rsquo;t think I know the language in enough depth to consider myself a go expert. I want to change that. So I am going to start writing about go here as a way to &amp;ldquo;learn in public&amp;rdquo;
Expect posts on the following topics:&lt;/p&gt;</description></item><item><title>Paper every day. Day Eight. Omega: flexible scalable scheduler for large compute clusters</title><link>https://JoseVillalta.github.io/posts/day-eight-omega/</link><pubDate>Sun, 24 Jul 2022 21:30:27 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-eight-omega/</guid><description>&lt;h3 id="omega"&gt;Omega&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41684.pdf"&gt;Link to paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Omega was the second cluster manager system built by Google. It is Borg&amp;rsquo;s sucessor and it was designed as a happy medium between Borg&amp;rsquo;s centralized scheduler architecture and Mesos&amp;rsquo;s two-level approach where the placement is delegated to the running framework. Omega shares the state of the cluster among leaders and uses optimistic concurrency control (detect when different cluster schedulers are competing for the same resource)&lt;/p&gt;
&lt;p&gt;The premise of the whole paper is that a centralized scheduler does not scale well, so there must be a better way to handle scheduling different types of workloads in a fast and conrrect manner. The two main types of workloads, services and batches have different requriements and present their unique challenges. The paper explains the type of simulations the engineer at Google used to determine that conflicts among different scheduler is not that common and that Omega manages to fit more tasks in the clusters than Mesos.&lt;/p&gt;</description></item><item><title>Paper every day. Day Seven: Large-scale cluster management at Google with Borg</title><link>https://JoseVillalta.github.io/posts/day-seven-borg/</link><pubDate>Sat, 23 Jul 2022 18:56:09 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-seven-borg/</guid><description>&lt;h3 id="borg"&gt;Borg&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://storage.googleapis.com/pub-tools-public-publication-data/pdf/43438.pdf"&gt;Link to Paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Borg is the cluster management system that runs hundreds of thousands of jobs at Google, it is the original system, it&amp;rsquo;s sucessor Omega was written as a reaction to the lessons learned from it. Kubernetes is the third system written with the lessons from those two. This paper helped me understand a few things about my own system since we have our own cluster managenet and scheduler system that work a little different but in general do the same job.&lt;/p&gt;</description></item><item><title>Paper every day. Day Six: Hints for Computer Design</title><link>https://JoseVillalta.github.io/posts/day-six-hints-computer-design/</link><pubDate>Fri, 22 Jul 2022 08:13:55 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-six-hints-computer-design/</guid><description>&lt;p&gt;&lt;a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/acrobat-17.pdf"&gt;Link to Paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This paper was published originally in 1983 by the legendary folks from the Xerox Palo Alto Research Center.
The hints and tips should sound familiar but it&amp;rsquo;s interesting to notice the &lt;strong&gt;layer&lt;/strong&gt; the author is talking about, these guys were designing at very low level.
The fact that the same rules apply now it&amp;rsquo;s remarkable. It turns out breaking up a system into the right abstraction with a good interface it&amp;rsquo;s rather hard.&lt;/p&gt;</description></item><item><title>Paper every day. Day Five: On Designing and Deploying Internet Scale Services</title><link>https://JoseVillalta.github.io/posts/day-five-design-internet-scale/</link><pubDate>Thu, 21 Jul 2022 07:07:19 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-five-design-internet-scale/</guid><description>&lt;p&gt;&lt;a href="https://s3.amazonaws.com/systemsandpapers/papers/hamilton.pdf"&gt;Link to Paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This paper is a list of recommendations for running a large-scale system that aims to keep quality high and costs low. The author comes from the Windows Live Services Platform but this might as well be read as an Amazon internal guide since I didn&amp;rsquo;t see a thing in this list that we don&amp;rsquo;t do (or aim to do) in AWS. EDIT: Of course all these things sound familiar! The author is &lt;a href="https://perspectives.mvdirona.com/"&gt;James Hamilton!&lt;/a&gt; He&amp;rsquo;s a VP and distinguished engineer here at AWS, I know him from leading the weekly AWS Ops Review meeting.&lt;/p&gt;</description></item><item><title>Paper every day. Day Four: Harvest, Yield, and Scalable Tolerant Systems</title><link>https://JoseVillalta.github.io/posts/day-four-harvest-yield/</link><pubDate>Wed, 20 Jul 2022 06:28:24 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-four-harvest-yield/</guid><description>&lt;p&gt;&lt;a href="https://s3.amazonaws.com/systemsandpapers/papers/FOX_Brewer_99-Harvest_Yield_and_Scalable_Tolerant_Systems.pdf"&gt;Link to paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Today&amp;rsquo;s paper comes thanks to &lt;a href="https://lethain.com/"&gt;Will Larson&lt;/a&gt; this is a recommended paper in his book &lt;a href="https://www.amazon.com/dp/B07QYCHJ7V/"&gt;Elegant Puzzle&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This paper builds on the concepts from the the &lt;a href="https://en.wikipedia.org/wiki/CAP_theorem"&gt;CAP Theorem&lt;/a&gt; which essentially says that when it comes to distributed systems you can only have 2 out of these 3 qualities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Consistency&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Avalaibility&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Partition Tolerance&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then it introduces two concepts &lt;strong&gt;harvest&lt;/strong&gt; and &lt;strong&gt;yield&lt;/strong&gt; which is interesting because it&amp;rsquo;s not something you usually hear in distributed systems (this is a paper from the &amp;rsquo;90s) and yet I think it&amp;rsquo;s import to know and to think in these terms.&lt;/p&gt;</description></item><item><title>Paper every day. Day Three: Container Design Patterns</title><link>https://JoseVillalta.github.io/posts/day-three-container-design-patterns/</link><pubDate>Tue, 19 Jul 2022 07:23:34 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-three-container-design-patterns/</guid><description>&lt;h3 id="day-three-design-patterns-for-container-based-distributed-systems"&gt;Day three: Design patterns for container-based distributed systems&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45406.pdf"&gt;Link to paper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Containers provide the ability to package, deploy and reuse applications using a natural isolation boundary. Developers can expose application-specific functionality as interfaces as well as more generic hooks for many systems like metrics, health, etc.&lt;/p&gt;
&lt;p&gt;In this paper the authors present the readers with two types of container design patterns: Patterns for container in the same machine (Single node) and patterns where the containers are spread out in different machines (multi node)&lt;/p&gt;</description></item><item><title>Paper every day. Day Two: Kubernetes</title><link>https://JoseVillalta.github.io/posts/day-two-k8s/</link><pubDate>Mon, 18 Jul 2022 06:33:49 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-two-k8s/</guid><description>&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;Welcome to day 2 of my paper-every-day journey. Today we&amp;rsquo;re going to cover &lt;a href="https://storage.googleapis.com/pub-tools-public-publication-data/pdf/44843.pdf"&gt;Borg, Omega and Kubernetes&lt;/a&gt; This paper goes over how Kubernetes, the de-facto, open-source orchestrator of containers was developed using the lessons learned from building Borg and Omega, Google&amp;rsquo;s internal job orchestrator.&lt;/p&gt;
&lt;p&gt;Kubernetes is a container orchestration system that aims to make developing and deploying complex distributed systems easier.
The Borg and Omega papers are excellent papers on their own right, but this explanation original published in ACM Queue is very insightful. These are the lessons I gathered:&lt;/p&gt;</description></item><item><title>Goal: A Paper Every Day. Day One: Mesos Paper</title><link>https://JoseVillalta.github.io/posts/day-one-paper/</link><pubDate>Sun, 17 Jul 2022 13:04:01 -0700</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/day-one-paper/</guid><description>&lt;p&gt;I&amp;rsquo;ve decided to read a research paper each day. I am doing this in order to get better at my craft.
I want to be better at designing software and it has been shown in research that the people who are really good at what they do
are those that do &amp;ldquo;delibarate practice&amp;rdquo; I am most definitely NOT the best software system designer out there, but talent is overated and I
intend to improve my knowledge one day at time. You are welcome to follow along.&lt;/p&gt;</description></item><item><title>About Me</title><link>https://JoseVillalta.github.io/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/about/</guid><description>&lt;h2 id="about-me"&gt;About Me&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m Jose Villalta, an infrastructure engineer at Amazon Web Services building the systems that power millions of containerized workloads. I maintain the Fargate agent - the data plane that creates and manages serverless containers at AWS scale.&lt;/p&gt;
&lt;h3 id="my-path-to-infrastructure"&gt;My Path to Infrastructure&lt;/h3&gt;
&lt;p&gt;My career has been about building systems that work when it matters most. I spent seven years at Motorola writing embedded software for P25 radios - the devices that first responders depend on when lives are on the line. Police and firefighters still use radios running code I helped build.&lt;/p&gt;</description></item><item><title>New blog!</title><link>https://JoseVillalta.github.io/posts/sample/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/posts/sample/</guid><description>&lt;p&gt;Started a new page to write about tech stuff. Work in Progress&lt;/p&gt;</description></item><item><title>Professional Experience and Education</title><link>https://JoseVillalta.github.io/experience/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>you@example.com (Jose Villalta)</author><guid>https://JoseVillalta.github.io/experience/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;h4 id="amazon-2018---present"&gt;Amazon 2018 - present&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;AWS Fargate: Dataplane team. Writing Golang mostly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Worked on retail site for 2.5 years using the away team model.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="impinj-2014---2018"&gt;Impinj 2014 - 2018&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Wrote Ruby on Rails&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="motorola-2007---2014"&gt;Motorola 2007 - 2014&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Low level firmware&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="co-op-intern-at-ibm-2005---2006"&gt;Co-op Intern at IBM 2005 - 2006&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ASIC design model testing&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="education"&gt;Education&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Master&amp;rsquo;s Degree in Electrical and Computer Engineer from the University of Florida&lt;/li&gt;
&lt;li&gt;Bachelor&amp;rsquo;s Degree in Computer Engineering from Florida Atlantic University&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="my-career-journey"&gt;My Career Journey&lt;/h2&gt;
&lt;p&gt;This is a more detailed narrative of my carreer so far. I&amp;rsquo;ve been lucky to work on cool projects solving interesting problems.&lt;/p&gt;</description></item></channel></rss>