<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Jimmy Maina-Building Production Systems]]></title><description><![CDATA[16 weeks: code → production → platform thinking. Building services, breaking them deliberately, documenting every failure. Learning in public.]]></description><link>https://jimmymaina.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 01:27:24 GMT</lastBuildDate><atom:link href="https://jimmymaina.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Week 0: Starting a 16-Week Journey to Platform Engineering]]></title><description><![CDATA[Why This Journey?
Over the next 16 weeks, I'm building the foundation I'll need to become a Backend/Platform Engineer with genuine SRE ownership. This isn't about arriving fully formed at the end of four months. It's about constructing a base of prod...]]></description><link>https://jimmymaina.hashnode.dev/week-0-starting-a-16-week-journey-to-platform-engineering</link><guid isPermaLink="true">https://jimmymaina.hashnode.dev/week-0-starting-a-16-week-journey-to-platform-engineering</guid><category><![CDATA[backend]]></category><category><![CDATA[Platform Engineering ]]></category><category><![CDATA[#learning-in-public]]></category><category><![CDATA[SRE]]></category><category><![CDATA[Career]]></category><dc:creator><![CDATA[Jimmy Maina]]></dc:creator><pubDate>Sun, 11 Jan 2026 11:33:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/x7FKy0jRpWs/upload/80b5194b87f53532790a71ae13283cad.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-why-this-journey">Why This Journey?</h1>
<p>Over the next 16 weeks, I'm building the foundation I'll need to become a Backend/Platform Engineer with genuine SRE ownership. This isn't about arriving fully formed at the end of four months. It's about constructing a base of production-ready skills that I'll iterate on for years, starting with real systems that I'll intentionally break to understand how they fail.</p>
<p>Let me be honest about what 16 weeks actually means. By the end of this journey, I won't have mastered platform engineering. What I will have is something more valuable for where I am right now: demonstrable experience operating systems under pressure, a portfolio that shows I think like an engineer who owns production services, and the foundation I need to learn at full velocity when I get into a real production environment. The mentor’s guide guiding this plan is explicit, mastery comes from years of applying these skills across different systems and contexts. These 16 weeks get me ready to learn those real lessons.</p>
<h2 id="heading-what-makes-this-different">What Makes This Different?</h2>
<p>Most learning paths teach you how to build features and stop there. I'm learning something harder and more valuable: how to operate systems when things go wrong. There's a fundamental difference between code that works on your laptop and services that stay reliable under production pressure.</p>
<p>This isn't a linear path where I master one thing and move to the next. It's a spiral where I'll keep coming back to earlier concepts with deeper understanding each time. I'll build something in week 2, think I understand it, then in week 8 when I'm running chaos experiments, I'll realize I didn't understand it nearly as well as I thought. That moment of realization is progress, not failure. The phases are structured specifically to create these moments, to push me forward before I feel fully comfortable, because comfort is the enemy of growth in technical skills.</p>
<p>Instead of just building a service, I'm learning to operate it when dependencies fail and load spikes happen. Instead of just writing code, I'm deploying it, monitoring its behavior in real cloud environments, and practicing recovery when things break. Instead of memorizing patterns from tutorials, I'm making architectural choices and living with their consequences long enough to understand the trade-offs viscerally.</p>
<h2 id="heading-the-plan">The Plan</h2>
<p>The journey breaks into four phases, each building on what came before. These phases aren't about achieving mastery in four-week chunks. They're about building layers of understanding that I'll carry forward and refine throughout my career.</p>
<p><strong>Phase 1 (Weeks 1-4): Service Foundations</strong> starts with building a backend service with explicit attention to boundaries and contracts. I'm implementing comprehensive failure handling from the beginning, not as an afterthought. Observability isn't something I'll add later, it's part of the foundation. By the end of this phase, I'll have what the plan calls "novice competence," meaning I can do these things with reference materials and careful thought. I won't feel confident about it yet, and that's expected.</p>
<p><strong>Phase 2 (Weeks 5-8): Production Reality</strong> takes that service and deploys it to an actual cloud environment where real costs and real failure modes exist. This is where chaos engineering enters: deliberately injecting failures to see what breaks and how. I'll practice incident response and recovery, building muscle memory for staying calm when alerts fire. This phase will teach me more about my Phase 1 work than Phase 1 itself did, because I'll see where my assumptions were wrong. I'll develop what the plan calls "developing competence," where I can do things with less reference and start seeing patterns.</p>
<p><strong>Phase 3 (Weeks 9-12): Platform Thinking</strong> shifts perspective from single services to reusable components. I'll define Service Level Objectives and error budgets, treating reliability as a product feature with explicit trade-offs. This is where I start thinking like a platform engineer: how do I make it easier for other engineers to build reliable services? The goal is "functional competence," where I can do the thing reliably and explain it to others, but I'll still be discovering gaps in my abstractions.</p>
<p><strong>Phase 4 (Weeks 13-16): Communication</strong> recognizes that technical work needs clear documentation and explanation. I'll create technical writing that demonstrates ownership, build documentation that's actually useful to others, and position my work in ways that are legible to hiring managers. This develops "teaching competence," where I can explain why things matter and help others avoid my mistakes. But even teaching competence isn't mastery. That comes later, in real production environments.</p>
<h2 id="heading-learning-in-public">Learning in Public</h2>
<p>Everything I do will be visible and documented, creating a portfolio that shows not just what I can build, but how I think about reliability and operations. Each week, I'll publish posts covering what I built, what broke, and what I learned from it. Every Friday is "Failure Friday," where I write honest postmortems about that week's problems. I'm keeping decision logs that explain why I chose one approach over another, including the trade-offs I considered. All the code lives in GitHub where anyone can see the actual work and my iterative improvements, not just polished final versions.</p>
<p>This documentation serves a dual purpose. First, it forces me to clarify my thinking by explaining it to others. Second, it creates artifacts I can discuss in technical interviews. When someone asks "tell me about a time something broke," I'll have detailed incident reports with timelines, root cause analysis, and lessons learned. When they ask "what would you do differently if you built this again," I'll have specific answers because I've been critiquing my own work throughout these 16 weeks.</p>
<h2 id="heading-the-three-questions">The Three Questions</h2>
<p>Every Friday, I'm answering three specific questions that keep me honest about whether I'm pushing hard enough and learning deeply enough.</p>
<p>First, what failed or almost failed this week? If my answer is "nothing," then I know I didn't push hard enough or I'm not being honest with myself. Failure is information, and information is how learning happens. The plan is designed to make me uncomfortable, to put me in situations slightly beyond my current ability, because that's where growth occurs.</p>
<p>Second, what signal caught the failure, or what signal should have caught it but didn't? This forces me to think about observability and whether I would have known there was a problem in a real production environment. The quality of my monitoring directly determines how quickly I can respond to actual incidents. This question reveals gaps in my instrumentation.</p>
<p>Third, what human decision mattered most? Technology choices matter, but often the critical moment comes down to a judgment call—how I prioritized investigating a signal, what I decided to simplify instead of adding complexity, when I chose to stop and rethink rather than push forward. Understanding which human judgments matter is how I develop better judgment myself over time.</p>
<h2 id="heading-following-along">Following Along</h2>
<p>You can watch this unfold in several places. My GitHub repository contains all the code and documentation as it develops, showing the messy reality of iteration and improvement rather than just final products. I'm using Notion as my learning system, tracking progress and organizing notes. This blog will have weekly updates capturing both successes and struggles. There's also a spreadsheet tracking my progress against the plan so I can see where I'm spending time and where I'm moving faster than expected.</p>
<p>I want to be crystal clear about something: I'm not starting this as an expert, and I won't finish it as one either. I'm documenting the journey from being a competent developer to building the foundation I need to become a platform engineer who can operate production systems with confidence. The mentor guide guiding this plan is explicit that the real learning happens after these 16 weeks, when I get into a role where I'm operating actual production systems with stakeholders, business constraints, and real consequences for failures. The learning velocity in production is ten times what it is in personal projects. These 16 weeks are about getting ready for that acceleration.</p>
<h2 id="heading-whats-next">What's Next?</h2>
<p>Week 1 begins tomorrow. I have been setting up the learning system that will carry me through these 16 weeks, defining the first service I'm building, and writing its OpenAPI specification before touching code. This discipline, thinking through contracts and interfaces before implementation, is one of the patterns that separates platform thinking from feature thinking.</p>
<p>The timeline is aggressive on purpose. It's designed to push me forward before I'm fully comfortable, to create forcing functions that prevent me from getting stuck in tutorial hell or perfectionism paralysis. Some weeks will take longer than planned, and that's fine. The goal isn't to finish in exactly sixteen weeks. The goal is to avoid the trap of studying the same material for months without ever testing it under realistic pressure.</p>
<p>If this resonates with you, subscribe to follow the journey. If you're learning similar skills or have been through this transition yourself, I'd value hearing your perspective in the comments. If you're further along such a path and see me making mistakes in my approach, I especially want to hear that, course corrections early save time later.</p>
<hr />
<p><strong>Series</strong>: 16 Weeks to Platform Engineering<br /><strong>GitHub</strong>: platform-engineering-portfolio<br /><strong>Week</strong>: 0 of 16<br /><strong>Hours invested</strong>: 0</p>
]]></content:encoded></item></channel></rss>