<?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" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[BUILD WHAT'S NEXT: Builds]]></title><description><![CDATA[Practical cloud labs, architecture notes, and project case studies from the work of building real systems
One useful skill at a time.]]></description><link>https://www.rateb.cc/s/builds</link><image><url>https://substackcdn.com/image/fetch/$s_!J2zW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F943b7c65-349a-4ece-909f-7616adef45fe_1280x1280.png</url><title>BUILD WHAT&apos;S NEXT: Builds</title><link>https://www.rateb.cc/s/builds</link></image><generator>Substack</generator><lastBuildDate>Sat, 07 Nov 2026 05:58:01 GMT</lastBuildDate><atom:link href="https://www.rateb.cc/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Rateb Lab]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[rateb@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[rateb@substack.com]]></itunes:email><itunes:name><![CDATA[Rateb Slik]]></itunes:name></itunes:owner><itunes:author><![CDATA[Rateb Slik]]></itunes:author><googleplay:owner><![CDATA[rateb@substack.com]]></googleplay:owner><googleplay:email><![CDATA[rateb@substack.com]]></googleplay:email><googleplay:author><![CDATA[Rateb Slik]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Attack Surface Is the Workflow]]></title><description><![CDATA[AI risk becomes concrete when a model is connected to credentials, tools, and unattended loops.]]></description><link>https://www.rateb.cc/p/the-attack-surface-is-the-workflow</link><guid isPermaLink="false">https://www.rateb.cc/p/the-attack-surface-is-the-workflow</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Sun, 01 Nov 2026 08:01:41 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a353b424-787c-4d0b-ac81-5b54d0b3720e_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>The Attack Surface Is the Workflow</h1><p><em>AI risk becomes concrete when a model is connected to credentials, tools, and unattended loops.</em></p><p>The most useful AI safety question is not whether a model has hidden intentions.</p><p>It is what the workflow around the model can reach.</p><p>That sounds less dramatic than a debate about superintelligence. It is also more useful for anyone building with models today. A capable model inside a narrow sandbox is one system. The same model connected to production credentials, browser sessions, code repositories, databases, queues, and retry loops is another.</p><p>The model is one component. The workflow sets the blast radius.</p><h2>The chat window is not the system</h2><p>A model can generate text, reason over a problem, write code, or propose a plan. None of those abilities tells you what the surrounding system will do with the output.</p><p>The surrounding system may let the model call tools, inspect files, query a database, open a browser session, create tickets, deploy code, or pass a result to another agent. It may also let the model retry after a failed action, change the method after a block, or keep working while a human reviews the results later.</p><p>Those details are not implementation trivia. They are part of the security boundary.</p><p>A useful review therefore starts with questions that sound almost boring:</p><p>What can the agent read?</p><p>What can it write?</p><p>Which identities and credentials can it use?</p><p>Where are those credentials stored?</p><p>What is the largest change it can make without approval?</p><p>What stops the loop, and can that stop action work independently of the agent?</p><p>What evidence does a human inspect before the next consequential step?</p><p>If the answers are unclear, the system is not autonomous in some mysterious philosophical sense. It is simply underspecified.</p><h2>AI changes the cost of persistence</h2><p>Recent threat reporting has made this distinction concrete. The important change is not that a model suddenly became an independent attacker with its own target list. In the cases described, humans still set objectives and reviewed important results.</p><p>The change is that a model can now handle more of the intermediate work.</p><p>It can search, classify, rewrite, test, sort, document, and try again. It can move between tools without requiring a specialist to perform every small step. That gives a human directed operation more speed, breadth, and persistence.</p><p>Security teams have traditionally gained something when a defense forced an attacker to stop and rebuild. A blocked technique cost time. A failed attempt required another specialist. A new target required another round of research.</p><p>A workflow that can notice a block, change its approach, and retry reduces some of that cost. It does not make the system magical. It changes the economics of the operation.</p><p>That is why the word autonomous can be misleading. The relevant question is not whether the model has become a person. The relevant question is how much work the workflow can continue doing after a human starts it.</p><h2>A stolen AI key is a security event</h2><p>Many teams still treat an exposed AI key as mainly a billing problem. The immediate symptom may be an unexpected invoice, but the larger risk is the identity and access chain around the key.</p><p>An attacker may use the key to obtain compute, hide activity inside a legitimate service, operate a wrapper, reach a reseller, or move through an integration that was never designed as a security boundary. A token can also become valuable because it opens access to another system, not because the model itself is special.</p><p>This is especially relevant for applications built quickly. A key can end up in a client bundle, a public repository, a screenshot, a build log, or a copied configuration file. An integration can quietly give an agent more access than its author intended. A sandbox can contain production credentials because the boundary was never tested under pressure.</p><p>The basic controls are not glamorous, but they are concrete:</p><p>Scope keys and tokens narrowly.</p><p>Keep them on the server.</p><p>Rotate them when exposure is possible.</p><p>Log their use.</p><p>Separate test identities from production identities.</p><p>Make the system fail closed when a credential is revoked.</p><p>A credential review is not a detour from AI safety. It is AI safety at the level where a deployment can actually fail.</p><h2>Human in the loop is not a control model</h2><p>"There is a human in the loop" can describe two completely different systems.</p><p>In the first, a human approves each consequential action. The agent can prepare a change, but it cannot apply the change until a person reviews the exact target, scope, and evidence.</p><p>In the second, an agent performs dozens of actions, follows retries, changes tools, and produces a summary. A human reads the summary at the end.</p><p>Both systems contain a human. Their blast radii are not comparable.</p><p>The phrase matters only when it is followed by a description of the human's position in the loop. What can happen before approval? What can happen after a failed check? Which action requires a fresh decision? What does the reviewer actually see?</p><p>A final answer is not the whole operation. If an agent can make consequential tool calls, then those calls, permissions, retries, and intermediate results are part of the output that needs review.</p><p>This is also why audit logs should not be treated as decorative observability. A log that records only the final answer cannot explain how the system reached it. Useful evidence includes the identity used, the tool called, the arguments passed, the returned result, the retry count, and the approval boundary crossed.</p><h2>Refusal is useful, but it is not an architecture</h2><p>Model refusal is one layer of defense. It can reduce some harmful requests. It can also fail when the surrounding system changes the prompt, the tool, the account, or the path by which the action is requested.</p><p>That does not make refusal pointless. It means refusal cannot carry the whole system.</p><p>Access control answers what an identity can reach. Rate limits constrain how quickly it can act. Sandboxing constrains where it can operate. Approval gates slow down consequential changes. Monitoring creates a chance to notice drift. Incident response determines what happens after a control fails.</p><p>The strongest design assumes that any one layer can be wrong.</p><p>A model can misunderstand the task. A classifier can miss the risk. A credential can be stolen. A reviewer can approve the wrong screen. A queue can retry an action that a person thought had stopped.</p><p>Good security design does not require every layer to be perfect. It makes failure visible, bounded, and recoverable.</p><h2>Dual use makes simple filters insufficient</h2><p>The hardest cases are not always obviously malicious prompts. The same technical knowledge can support a legitimate experiment, defensive research, or harmful work. A classifier sees language. The surrounding system determines identity, permission, context, and consequence.</p><p>That is why sensitive domains need more than a content filter. The design has to account for who is asking, what the system can access, which actions are possible, and whether a person can intervene before the point of no return.</p><p>This is also where broad claims about AI risk can become unhelpful. Catastrophic scenarios deserve serious attention. They do not remove the need to secure ordinary deployments. The forgotten wrapper, the broad sandbox, the token in a client, and the unreviewed retry loop are already concrete engineering problems.</p><p>The near term and the long term are not competing conversations. The same infrastructure choices affect both.</p><h2>Distillation turns access into a supply chain problem</h2><p>Another issue is model distillation. A model provider can lose more than a single answer when another system repeatedly harvests its outputs to improve a competing model.</p><p>That creates a different kind of security boundary. The question is no longer only whether a user can make one harmful request. It is whether access can be automated at scale, whether identities are real, whether requests are being proxied, and whether the output is being collected as training data.</p><p>The details vary by case, and allegations need to remain allegations. The general lesson is still clear: model access is part of a supply chain. Rate limits, account controls, monitoring, output policy, and abuse detection protect not only the service itself but also the capability encoded in its responses.</p><p>A useful system has to know the difference between a person using a model and a pipeline quietly turning that model into a data source.</p><h2>What I would inspect first</h2><p>I would not start an AI safety review by asking whether a model secretly wants anything. I would start by drawing the workflow.</p><p>Put the model in the middle of a page. Around it, write every tool, identity, credential, data store, queue, browser session, and external service it can reach. Mark which actions are read only and which actions change state. Mark where retries happen. Mark where a person must approve. Mark how the system can be stopped.</p><p>Then make the first experiment smaller than the proposed deployment:</p><p>Use a test account.</p><p>Start with read only access.</p><p>Log every tool call.</p><p>Set a time limit.</p><p>Require approval for state changes.</p><p>Test the external stop action before adding another tool.</p><p>Review the log, not only the final answer.</p><p>This does not eliminate risk. It makes the risk legible. It gives the team evidence about what the workflow actually does rather than what the prompt suggests it should do.</p><p>Autonomy should be earned through that evidence. It should not be granted because a model sounds confident, because a demo worked once, or because a human remains somewhere in the process.</p><p>The next serious AI security boundary may not look like an advanced model. It may look like an ordinary integration with a broad token, a queue that never gives up, and nobody who can stop it from outside.</p><p>That is why the workflow deserves as much attention as the model.</p>]]></content:encoded></item><item><title><![CDATA[What I Am Actually Learning in Cloud]]></title><description><![CDATA[Cloud learning becomes useful when services fit into a system, a responsibility boundary, and a proof path.]]></description><link>https://www.rateb.cc/p/what-i-learned-this-week-choose-the-boundary-before-the-database</link><guid isPermaLink="false">https://www.rateb.cc/p/what-i-learned-this-week-choose-the-boundary-before-the-database</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Fri, 30 Oct 2026 07:01:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_WGT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_WGT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_WGT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_WGT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_WGT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_WGT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_WGT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_WGT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_WGT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_WGT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa67eda85-e159-4ef1-a83a-da51af277276_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I started this week by studying databases. I expected to remember more service names. Instead, I left with a clearer picture of what cloud engineering actually asks me to learn.</p><p>A service is only one piece of the decision. The larger skill is learning to move from a real problem to a system, then from that system to evidence that it works.</p><h2>The map I was missing</h2><p>A relational database, a key-value store, a cache, a graph database, and a warehouse are not different answers to the same question. They fit different workloads.</p><p>The service appears after the workload is clear. It should not be the starting point.</p><h2>The boundary is ownership</h2><p>If I run MariaDB on EC2, I get control, but I also own the operating system, patching, backups, scaling, hardening, and recovery. RDS or Aurora moves much of that infrastructure work to AWS. I still own the data, schema, permissions, queries, cost, and application behavior.</p><p>Managed does not mean responsibility disappears. It means the boundary moves.</p><h2>From services to system paths</h2><p>A cloud system is not a list of products. It is a path. A user request may move through a browser, a public endpoint, a web server, application code, a database, and a response back to the user.</p><h2>Migration is a sequence</h2><p>DMS is not a magic copy button. Assess the source and target, convert when needed, review the result, apply the target schema, move the data, and validate the application.</p><p>A completed migration task proves something about the task lifecycle. It does not prove that the application still behaves correctly.</p><h2>The smallest application made the map visible</h2><p>The WordPress exercise exposed a dependency chain: browser, then EC2, then HTTPD, then PHP, then WordPress, then MariaDB. A page can fail even when HTTPD is installed.</p><p>systemctl status proves service-manager state. A local curl proves a local HTTP response. A browser request proves the public path that was actually tested. None of those checks proves persistence, scaling, backup quality, recovery, or production security.</p><h2>The progress is a change in questions</h2><p>I am moving from service vocabulary, to workload fit, to ownership boundaries, to system dependencies, to migration paths, and finally to verification.</p><p>The next time a database-backed application fails, I want to locate the failure first: engine, credentials, network path, web service, application behavior, or persistence.</p><p>The service choice matters. The system around the service matters more. And the evidence that connects the two is where the real learning begins.</p>]]></content:encoded></item><item><title><![CDATA[Permissions Are Inherited, Not Personal]]></title><description><![CDATA[Three users. Three permission walls. The whole IAM model fits in one sentence: a user can do only what the policies attached to their groups allow.]]></description><link>https://www.rateb.cc/p/permissions-are-inherited-not-personal</link><guid isPermaLink="false">https://www.rateb.cc/p/permissions-are-inherited-not-personal</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Sun, 25 Oct 2026 07:00:52 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9e932109-645e-4513-ab06-c849265d10cc_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KJ2v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KJ2v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KJ2v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KJ2v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KJ2v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KJ2v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KJ2v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KJ2v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KJ2v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KJ2v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3093c94f-7760-4347-a6da-64f5a547eb81_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Three users. Three permission walls. The whole IAM model fits in one sentence: a user can do only what the policies attached to their groups allow.</em></p><p>The IAM lab gave me three users and one instruction: sign in as each of them and see what changes.</p><p>The first user could open S3 and nothing else. The second could inspect EC2 and nothing else. The third could do almost anything in the account. Same console, same password rules, same sign-in page. The only difference was the group each user belonged to.</p><p>This is the whole mental model. Permissions are inherited, not personal. A user is not given abilities directly. The user belongs to a group, the group carries policies, and the policies decide what the user can do. A user with a valid password and no group memberships is a user who can sign in and immediately meet a wall.</p><p>I did not understand this the first time I touched IAM. I assumed the console was showing me what each person was allowed to do, as if permissions were a property of the person, like a level in a game. They are not. Permissions are a property of the attachments: user to group, group to policy, policy to actions.</p><h2>The three-user experiment</h2><p>The lab hands you three users and three groups:</p><ul><li><p><code>s3-user</code> in the S3-ReadOnly group. Sees buckets. Cannot touch EC2.</p></li><li><p><code>ec2-user</code> in the EC2-ReadOnly group. Sees instances. Cannot touch S3.</p></li><li><p><code>admin-user</code> in the Admin group. Sees everything.</p></li></ul><p>Signing in as each one feels like three different accounts. The console literally renders different menus. The moment that made it click for me was the fourth user. The lab also gives you a user with a valid password and no group at all. The password worked. The sign-in URL worked. The console opened. And behind it there was nothing. No services, no buttons, no access. Just an empty dashboard and the quiet truth of implicit deny.</p><p>Nothing is allowed unless something explicitly allows it. That single rule is why an empty user stays empty no matter how long they have been in the account.</p><h2>How a policy actually works</h2><p>Every IAM policy is a list of statements, and every statement has three parts:</p><ul><li><p>Effect. Allow or Deny, and a Deny always wins over an Allow.</p></li><li><p>Action. The API actions it covers, like <code>s3:GetObject</code> or <code>ec2:DescribeInstances</code>.</p></li><li><p>Resource. What those actions can be applied to.</p></li></ul><p>A read-only S3 policy looks like this:</p><pre><code>{
  "Effect": "Allow",
  "Action": ["s3:ListBucket", "s3:GetObject"],
  "Resource": "*"
}</code></pre><p>That statement says: this identity can list and read objects. It cannot delete anything, because deletion was never allowed. It cannot touch EC2, because EC2 was never mentioned. The policy is the entire world, and anything outside it does not exist for that identity.</p><p>Two consequences follow from this design, and both matter in real work.</p><p>Least privilege is the default shape of the system, not a special discipline. Attach nothing and the user gets nothing. The actual work is deciding how much to attach, and the safe answer is almost always the smallest set that does the job. Read-only groups are the best starting point, and write access should be the exception that gets reviewed.</p><p>Groups exist so permissions stay maintainable. Three people doing the same job means one group, one policy, three memberships. When the job changes, you edit one policy, not three users. This is also why the answer to most access questions is a group, not a user.</p><h2>The distinction that saves you later: identity policy versus resource policy</h2><p>There is a second layer that confuses people right after they understand groups. An identity policy is attached to a user, group, or role and says what that identity can do. A resource policy is attached to the resource itself and says who can use it. S3 bucket policies are the classic example: the bucket can carry its own policy that grants access to specific accounts or roles, separate from what any user's identity policy allows.</p><p>Both must agree before access happens. A user with full S3 permissions in their identity policy still hits a wall if the bucket policy denies them. A bucket policy that grants everyone access does nothing for a user whose identity policy never allows S3 in the first place. This is why the question "can this person read that bucket?" has two answers to check, and why the fastest diagnosis is to trace both sides of the attachment.</p><h2>How machines get permissions</h2><p>Users are not the only identities in an account. An EC2 instance often needs to call AWS APIs, to read from S3, or to write logs. It cannot type a password, and it should never carry long-lived access keys. The AWS answer is a role.</p><p>You create a role, attach a policy to it, and assign the role to the instance through an instance profile. AWS then issues the instance short-lived temporary credentials automatically. The instance inherits permissions the same way a user does, through attachments: instance to role, role to policy, policy to actions.</p><p>Two habits come from this. Never put access keys inside scripts or user data, because a role removes the need. And remember that temporary credentials expire, which is a feature. A stolen temporary key stops working; a stolen long-lived key does not.</p><h2>Reading a permission problem like a support engineer</h2><p>The most common support question in any cloud environment is some version of "why can this person not do X?" The wrong way to answer it is to stare at the user and wonder. The right way is to trace the chain: which groups does the user belong to, which policies do those groups carry, and does any statement allow the action in question?</p><p>A concrete trace makes the habit visible. Say <code>s3-user</code> opens the console, finds EC2 missing, and opens a ticket. The trace runs in three steps. <code>s3-user</code> belongs to the S3-ReadOnly group. That group carries the s3-readonly policy. That policy mentions only <code>s3:</code> actions. The action <code>ec2:LaunchInstances</code> appears nowhere, so implicit deny explains the wall in one sentence. No console setting, no account flag, no password reset would have changed it.</p><p>If the answer is no, the fix is rarely "give the user more access." It is "find the group that owns the job and check its policy." Sometimes the policy is missing an action. Sometimes the user is in the wrong group. Sometimes the user is in no group at all. All three look identical from the user's side, a wall. All three are different questions from the policy side.</p><p>One more scope detail is worth keeping straight: IAM is global, while most services are regional. An IAM user exists once for the whole account, but an EC2 instance lives in a specific Region. When something looks inconsistent between identities and resources, check whether the confusion is really a Region problem wearing an IAM costume.</p><h2>The wall is the feature</h2><p>IAM feels restrictive until you see the walls as the point. A cloud account is a shared building, and the walls are what let many people work in it without stepping on each other. The user who can only read S3 is not a limited user. They are a user with a bounded blast radius. If their credentials ever leak, the damage is contained by the same walls that felt annoying.</p><p>Which is why the admin user is the least safe identity in the lab, not the most important one. Full access is a liability you assign to the fewest people possible, and you audit it constantly. The console may call it power. The security model calls it exposure.</p><h2>Try it yourself</h2><p>If you have any AWS account, even a training sandbox: create three groups with small policies, one that can read S3, one that can read EC2, one with full access. Add one user to each group. Sign in as all three in separate browser sessions. Then create a fourth user, add them to no group, and sign in as them.</p><p>You will learn more from that empty dashboard than from any diagram. Write down, for each user, one action they can perform and one action they cannot, then find the policy line that explains both. When you are unsure whether a policy allows an action, the IAM Policy Simulator can test a user, an action, and a resource combination before you change anything. When you are done, delete the users and groups. The lab creates nothing else, and cleanup is part of the habit.</p><h2>The durable lesson</h2><p>When you look at an IAM screen, do not ask who the user is. Ask what is attached to them. Every permission question in AWS answers to the same sentence: permissions are inherited, not personal. The earlier that sentence becomes instinct, the faster policies, tickets, and consoles start making sense.</p>]]></content:encoded></item><item><title><![CDATA[The Interview Showed Me Where My Cloud Learning Was Still Thin]]></title><description><![CDATA[I could reason through a real failure, but I could not always retrieve the Linux basics under pressure.]]></description><link>https://www.rateb.cc/p/the-interview-showed-me-where-my-cloud-learning-was-still-thin</link><guid isPermaLink="false">https://www.rateb.cc/p/the-interview-showed-me-where-my-cloud-learning-was-still-thin</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Tue, 13 Oct 2026 07:01:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fa41a1d8-9f12-4558-a659-cc8bc71672f9_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fqN8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fqN8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fqN8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fqN8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fqN8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fqN8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fqN8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fqN8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fqN8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fqN8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09370c66-73aa-4b79-a927-8768a05d5f8f_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I left a cloud support interview with two opposite impressions.</p><p>I could reason through a real troubleshooting story. I could explain how I followed a failure across several systems, documented what I found, and escalated to the team that owned the code.</p><p>Then I was asked what swap memory was.</p><p>I could not retrieve the answer quickly.</p><p>That contrast was more useful than a simple pass-or-fail feeling. It showed me that I had built a reasonable troubleshooting mindset, but I had not made the Linux fundamentals reliable under pressure.</p><h2>The questions were basic on purpose</h2><p>The technical part moved through ordinary support-engineering territory:</p><ul><li><p>What would you check when an application reports <code>no space left on device</code>?</p></li><li><p>What if <code>df -h</code> still shows free space?</p></li><li><p>How would you know whether customers are reaching a web application?</p></li><li><p>Which logs contain HTTP status codes?</p></li><li><p>What does <code>404</code> mean?</p></li><li><p>What does <code>dig</code> tell you?</p></li><li><p>What is an inode?</p></li><li><p>How do you inspect and change Linux permissions?</p></li><li><p>What are <code>chmod</code> and <code>chown</code> for?</p></li><li><p>How do you check memory?</p></li><li><p>What is swap?</p></li><li><p>What does load average mean, and what are the 1, 5 and 15 minute values?</p></li></ul><p>None of these questions required advanced architecture. They tested whether the basic tools and distinctions were available when I needed them.</p><p>That matters in support work. An engineer may have a runbook, documentation and an AI assistant available. But the first response still depends on recognising the layer of the failure and choosing a safe next check without turning every simple question into a long search.</p><h2>Where I was stronger</h2><p>The interviewer also asked for the most difficult technical issue I had handled. My strongest example came from customer support, not AWS.</p><p>A client's page-view events were working, but the purchase event failed during checkout. The symptom appeared in the advertising account, but the failure could have been in the platform, the tracking code or the e-commerce system.</p><p>I compared the working and failing paths. Events Manager showed that the pixel was active and receiving page-view signals. Pixel Helper showed that the purchase event did not fire at checkout. That narrowed the fault to the e-commerce trigger path.</p><p>I documented the evidence and escalated it to the team that owned the website code. I did not claim to know the exact internal defect, and I did not make unrelated changes just to look active.</p><p>That answer reflected real work I had done. The sequence was clear because the experience was real:</p><ol><li><p>define the scope;</p></li><li><p>compare a healthy path with a failing path;</p></li><li><p>isolate the layer;</p></li><li><p>document what the evidence proved;</p></li><li><p>hand the problem to the right owner with the evidence documented.</p></li></ol><p>This is the part of my background I should carry forward. Moving into cloud engineering does not erase the operational habits I built in customer support.</p><h2>Where the gap appeared</h2><p>The gap appeared when the interviewer wanted a short factual answer and I returned to a general method.</p><p>When asked where I would see customers accessing a website, I discussed health checks and DNS. Those can be useful checks, but the direct answer was access logs and request telemetry. When asked about CloudTrail, I mixed AWS API activity with external customer activity. The interviewer had to clarify that CloudTrail records actions in the AWS account, not ordinary website browsing.</p><p>When asked about DNS, I knew <code>dig</code> belonged to DNS, but I described it partly as if it showed traffic. The precise boundary is simpler: <code>dig</code> tells me what DNS answer was returned. It does not prove that the route, port, TLS handshake or application is healthy.</p><p>When asked about permissions, I knew the commands were similar but initially confused <code>chmod</code> and <code>chown</code>. When asked about logs, I mentioned <code>/var/log</code> but also associated <code>top</code> with logs. <code>top</code> is a live process and resource view. It is not a historical log search.</p><p>These were not dramatic mistakes. They were retrieval failures and evidence-boundary failures. In a support role, both still matter.</p><h2>The small distinctions I need to own</h2><p>I wrote the corrections down after the interview because they are exactly the kind of facts that should become automatic:</p><ul><li><p><code>df -h</code> checks filesystem byte usage.</p></li><li><p><code>df -i</code> checks inode usage.</p></li><li><p>An inode stores filesystem metadata associated with a file.</p></li><li><p><code>chmod</code> changes permission bits.</p></li><li><p><code>chown</code> changes ownership or group ownership.</p></li><li><p><code>dig</code> checks DNS resolution.</p></li><li><p>Access logs show requests and recorded HTTP status codes.</p></li><li><p><code>journalctl</code> queries the systemd journal.</p></li><li><p>CloudTrail records AWS API activity.</p></li><li><p><code>401</code> means authentication is missing or invalid.</p></li><li><p><code>403</code> means the request was understood but access is forbidden.</p></li><li><p><code>404</code> means the server was reached but the resource was not found.</p></li><li><p>Load average shows recent runnable or waiting work over 1, 5 and 15 minutes.</p></li><li><p>Swap is disk space used for less-active memory pages when RAM is under pressure.</p></li></ul><p>The point is not to memorise a glossary for its own sake. Each distinction changes the next safe action.</p><p>If <code>df -h</code> shows free bytes but the application cannot create a file, I should check inodes, the actual mount and deleted-but-open files. If DNS resolves but HTTPS fails, I should move to the port, route, security controls, TLS and application layers. If access logs contain no requests, I should not immediately conclude that there are no customers. I should check the logging path, time range and layer I am inspecting.</p><h2>Exposure is not retrieval</h2><p>I had studied these topics. I had seen the commands. I had written notes about them. That created a feeling of familiarity.</p><p>The interview exposed the difference between recognising a concept on a page and producing the answer with the notes closed.</p><p>My study system had been good at collecting and organising information. It was weaker at forcing short, timed retrieval. I could explain a long troubleshooting method, but that method sometimes became a way to avoid the smaller question in front of me.</p><p>The repair is not another giant document.</p><p>The repair is a loop:</p><ol><li><p>close the notes;</p></li><li><p>answer one exact question in one or two sentences;</p></li><li><p>name the check or command;</p></li><li><p>state what the evidence proves and what it does not prove;</p></li><li><p>test the idea in a small safe environment when needed;</p></li><li><p>record the correction;</p></li><li><p>repeat it later without looking.</p></li></ol><p>This is less satisfying than reading another course module. It is also closer to the pressure of the job.</p><h2>The behavioral lesson was similar</h2><p>The behavioral part showed the same pattern in a different form.</p><p>I had credible experiences and a strong customer-support example, but I sometimes answered a specific question with the story of my entire transition into cloud engineering. When the interviewer asked for one recent thing I had learned, I described Hermes, AI-assisted learning, documentation and my second brain instead of naming one bounded topic, one obstacle, one exercise and one result.</p><p>The interviewer kept asking for one real example. That was useful feedback. A learning system is not the same as a learning event.</p><p>A hypothetical answer template, not a claim about what I actually did, would be something like:</p><blockquote><p>I recently learned how VPC route tables and security controls work together. I chose the topic because networking was still unfamiliar. I studied the AWS material, tested one small path in a controlled lab, compared the expected route with the observed result, and wrote down what each layer proved. The result was that I could explain why a correct route table alone does not prove end-to-end connectivity. This was training, not production AWS work.</p></blockquote><p>That answer is smaller, but it gives the listener something they can evaluate.</p><h2>What I will do differently</h2><p>Before another technical interview, I will use closed-notes Linux drills instead of another passive reading cycle. I will answer the direct question first, state what the check proves and what it does not prove, and practise one bounded learning story. The cloud transition is context, not the example. The example needs one topic, one difficulty, one small action, evidence and a result.</p><p>The interview also confirmed that my previous support experience is relevant. I should not present it as cloud production experience, but I should not throw it away either. Customer impact, investigation, documentation, escalation and careful ownership are the operating habits on which the technical layer can grow.</p><h2>The useful outcome</h2><p>I still do not know whether the interview will lead to another stage. The transcript cannot prove that.</p><p>But it gave me a more precise map than another week of broad studying would have given me.</p><p>I do not need to become a different person before I can work in cloud support. I need to make the fundamentals more retrievable, the answers more direct and the evidence boundaries more precise.</p><p>The interview did not only ask whether I knew AWS. It asked whether I could notice what a check actually tells me, choose the next safe action and explain it without hiding behind a framework.</p><p>That is the work now.</p>]]></content:encoded></item><item><title><![CDATA[Your AWS certification is not the career move]]></title><description><![CDATA[The badge proves exam knowledge, but cloud careers move through evidence, feedback, and decisions outside the study plan.]]></description><link>https://www.rateb.cc/p/your-aws-certification-is-not-the-career-move</link><guid isPermaLink="false">https://www.rateb.cc/p/your-aws-certification-is-not-the-career-move</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Fri, 09 Oct 2026 05:03:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8c34c477-707d-43a9-9dd6-9d12c0368061_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c9lQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c9lQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!c9lQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!c9lQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!c9lQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c9lQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c9lQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!c9lQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!c9lQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!c9lQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97aa3edc-80fd-4237-b345-429b3ada567a_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I understand why the badge feels like a career move.</p><p>You study for months, pass the AWS exam, post the certificate on LinkedIn, and watch the congratulations arrive. For a few days, it feels as if something has changed.</p><p>Then Monday comes around.</p><p>You are back in the same role, doing the same work. You open a cloud job description and recognise most of the services, but you still do not feel ready to apply. Or you have applied, heard very little, and reached the most obvious conclusion: you need another certification.</p><p>Sometimes you do need more knowledge. But a certification can be useful without being the thing that moves your career.</p><p>That distinction matters.</p><p>A badge proves that you passed an exam. It does not prove that you can perform the role, explain your decisions, show useful work, or handle the questions that appear when the situation does not match the practice test.</p><h2>The badge answers one question</h2><p>A certification gives you a syllabus and a clear test. That is valuable. You know what to study, what the exam covers, and what a passing result means.</p><p>But the exam is designed to measure exam performance. It is not designed to choose a cloud role for you. It does not build a project that another person can inspect. It does not put your CV in front of a hiring manager. It does not make you explain why you chose one architecture over another when two answers could work.</p><p>Cloud work is full of those decisions.</p><p>You may have to choose between a cheaper design and a more resilient one. You may have to explain what happens when traffic changes, a permission is missing, a deployment fails, or a requirement moves halfway through the conversation. Knowing what a service does is part of the job. Knowing when to use it, what it changes, what it costs, and what can go wrong is the harder part.</p><p>The certification can give you useful vocabulary. It cannot give you evidence of judgment by itself.</p><h2>Private preparation is easier to trust</h2><p>This is where the second certification becomes tempting.</p><p>A course gives you a controlled environment. A practice exam gives you a score. If the score is low, you review the material and try again. You can work hard for months without anybody outside the study process telling you that your current approach is not working.</p><p>That does not mean you are lazy. You may be studying after work, balancing family, and trying to build a better future with the time you have left in the day. The effort is real.</p><p>The problem is that effort and career movement are not the same measurement.</p><p>A course will not reject your application. It will not ask why your project needs that database. It will not interrupt your answer and ask what trade-off you considered. It will not show you that your CV describes tasks but gives no proof of the kind of work you want to do.</p><p>Private work feels productive because it is productive in one narrow sense. You are learning. But learning can become a safe substitute for the work that produces an external answer.</p><p>That is the trap. You are not avoiding effort. You are concentrating your effort in the part of the process where nobody else gets to judge the result.</p><h2>Evidence has to leave the study plan</h2><p>If the goal is a cloud job, your learning needs to produce something that exists outside the course platform.</p><p>A project is not evidence just because you deployed it once. Evidence is the explanation around the work.</p><p>What problem were you solving?</p><p>Why did you choose that architecture?</p><p>What did you leave out, and why?</p><p>How did you think about permissions, failure, cost, and scaling?</p><p>What did you test, and what did the test actually prove?</p><p>You do not need a huge platform with every AWS service in it. A smaller project that you can explain clearly is more useful than a sprawling diagram you cannot defend. The point is to create a situation where another person can see how you think.</p><p>Write the explanation while you build, not three months later when you are trying to remember why you made a choice. Keep the architecture diagram, the main assumptions, the limits you accepted, and the test evidence together. If you changed the design, record what changed and why. That turns a project from a screenshot into a conversation.</p><p>You can also see where the evidence is thin. A diagram may show components but not permissions. A deployment may show that something worked once but not how it behaves when a dependency fails. A cost estimate may look sensible until you explain what it includes and what it leaves out. These are not reasons to hide the project. They are the parts worth testing next.</p><p>That is also why a project that stays private has limited value. If nobody can inspect the decisions, ask questions, or give you feedback, you only have a private feeling that you are improving. You need a feedback loop, not another private score.</p><h2>Let applications give you information</h2><p>Applying for a role before you feel completely ready is uncomfortable because the answer is no longer under your control. That is also what makes it useful.</p><p>A rejected application may tell you that your CV is unclear, your experience is being positioned badly, or the role is a poor match. Silence does not tell you exactly which one it is, but it still gives you a reason to inspect the way you are presenting yourself rather than immediately buying another course.</p><p>An interview gives you better information. If you cannot explain your own project, that is a knowledge or communication gap. If you can explain the project but cannot connect it to the role, that is a positioning gap. If you can answer the technical questions but freeze when the interviewer changes the requirements, you need more practice making decisions under pressure.</p><p>Those are different problems. They need different responses.</p><p>More certification content will not automatically fix a weak CV. A new project will not automatically fix an inability to explain trade-offs. Interview practice will not replace a missing technical foundation. The feedback tells you which problem you actually have.</p><h2>Do not wait for a crisis to make the move</h2><p>A current job does not have to be terrible before you take your next step seriously.</p><p>Many people stay in roles that are a five or six out of ten. The work pays the bills. The systems are familiar. The people are fine. Nothing is bad enough to force a decision, but nothing is building the career they keep saying they want either.</p><p>That middle ground can last for years because it feels responsible to stay cautious. Sometimes staying is the responsible choice. A job can give you money, time, and useful experience while you build the next step.</p><p>But familiarity is not the same as progress.</p><p>If the role is not developing useful skills, giving you relevant evidence, or helping you create a realistic path forward, calling the delay patience does not make it patience. It is still a decision. You are deciding to accept the current trajectory for another month, another year, or another promotion cycle.</p><p>Waiting for a layoff or restructuring can create urgency, but it does not create capability. It simply removes your ability to choose calmly. You may make the same career decision later with less money, less time, and fewer options.</p><p>The warning does not need to arrive as a disaster. Knowing that you do not want to be in the same place two years from now is already information.</p><h2>Use a better rule for the next certification</h2><p>I am not arguing that you should stop learning or that certifications do not matter. They can give you a foundation, help you pass a screening requirement, and expose you to services you have not used yet.</p><p>The better question is whether the next certification closes a gap that has shown up in the real process.</p><p>If the roles you want repeatedly require a skill you genuinely do not have, the certification may be a sensible investment. If interviews keep exposing a missing concept, study that concept. If your project does not stand up to basic questions, rebuild it and practise explaining the decisions. If nobody is seeing your work, publish a clear case study and start applying to targeted roles.</p><p>Use this loop:</p><ol><li><p>Choose the cloud role you are actually targeting.</p></li><li><p>Compare several real job descriptions and record the repeated requirements.</p></li><li><p>Build one bounded project that produces evidence for those requirements.</p></li><li><p>Show the work to somebody who can question it, then apply before you feel finished.</p></li><li><p>Choose the next learning step from the feedback you receive.</p></li></ol><p>That sequence changes the meaning of a certification. It becomes one input into a career system, not proof that the career move has already happened.</p><p>The certification was not a mistake. The mistake is allowing the badge to become the scoreboard while the rest of the process stays untouched.</p><p>You did not start learning AWS so you could become the most qualified person still sitting in the same job. You started because you wanted your career to move.</p><p>So make the next piece of movement visible. Build something another person can question. Apply to a role that tells you what the market thinks. Let the answer change what you learn next.</p><p>A badge can open a conversation. Your evidence, judgment, and willingness to be evaluated are what move it forward.</p><p>The next step is not automatically another certification. It is the smallest action that produces useful evidence about the job you want.</p>]]></content:encoded></item><item><title><![CDATA[I Moved My AI Setup to DeepSeek Flash. The Quality Did Not Drop.]]></title><description><![CDATA[I moved my default AI model to DeepSeek's new Flash model. The cost dropped. The quality did not. Here is the mechanism behind both.]]></description><link>https://www.rateb.cc/p/i-moved-my-ai-setup-to-deepseek-flash-the-quality-did-not-drop</link><guid isPermaLink="false">https://www.rateb.cc/p/i-moved-my-ai-setup-to-deepseek-flash-the-quality-did-not-drop</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Fri, 02 Oct 2026 07:01:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/cf6780ae-6219-44c0-934b-3c0127dec8f3_1024x576.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5z9h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5z9h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5z9h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5z9h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5z9h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5z9h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg" width="728" height="409.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:576,&quot;width&quot;:1024,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5z9h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5z9h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5z9h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5z9h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d64bfbe-9136-4258-8368-3e3aac0a15d3_1024x576.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I changed the default model in my AI setup this week.</p><p>The tools stayed the same. The workflows stayed the same. The model changed.</p><p>I moved the default from one of the most expensive models I could pay for to DeepSeek Flash. In my use so far, the cost dropped and the quality held up on the work I actually tested: first drafts, summaries, lists, second opinions, debugging hypotheses, and other bounded tasks where I could inspect the result.</p><p>That is a narrower claim than saying the models are equal. I did not run a formal benchmark or build a complete evaluation set. I have not tested every kind of reasoning, creative writing, or real-world workload. I still keep a stronger model for difficult logic, important code, sensitive writing, and final judgment. The result is personal and provisional: for the workloads I moved, I have not seen a quality loss that justified the higher default cost.</p><p>The model is one worker inside a larger system</p><p>For a long time, I chose a model as if I were choosing a car brand. I picked the most powerful one I could afford and treated everything else as a compromise.</p><p>That felt safe. When the work mattered, I wanted the strongest model available. When the work was easy, I used the same model anyway because switching felt risky.</p><p>The bill grew because the expensive path handled everything. A summary, a first draft, a list of edge cases, and a second opinion all received the same level of model power.</p><p>The useful question turned out to be different: what kind of worker does this task need?</p><p>The model is only one part of my setup. Memory holds the facts I do not want to repeat, such as writing preferences, project conventions, goals, and recurring corrections. Skills hold the workflows and quality rules for repeated tasks. Tools let the assistant read files, run commands, inspect diffs, query services, and check whether an action actually happened. Files give the work somewhere durable to live. Handoffs carry decisions and unfinished work from one session to the next. Scheduled jobs add time to the system.</p><p>None of those parts is the model. They are structure.</p><p>That structure matters because a capable model can still produce unreliable work when the task is vague, the context is missing, or no one checks the result. A cheaper model can perform well when the job is narrow, the expected output is clear, and the workflow has a real verification step.</p><p>A model change is a personnel change, not a rebuild</p><p>My main assistant runs locally on my Mac. I use it in the desktop app for long sessions and the command line for quick work. My notes, projects, skills, and files remain in the same places. A separate coding tool handles heavier repository work. Publishing still uses the same tools.</p><p>When I changed the default model, none of that moved. The office stayed the same. Only the worker changed.</p><p>That made the switch easier to evaluate. I was not comparing two entirely different systems. I was changing one component while keeping the surrounding process stable.</p><p>Why the bill was high</p><p>The cost problem was not only the model choice. It was also the way I routed work.</p><p>I used the strongest model for simple tasks. I kept maximum reasoning on by default. I sent screenshots to expensive vision models when a short text description would have been enough. I had a recurring content scan running without first proving that the results were useful. Some requests also traveled through extra layers that added overhead.</p><p>The fix was a group of small changes.</p><p>I built a model hierarchy. The cheaper model handles volume, first drafts, summaries, alternative ideas, and debugging hypotheses. The stronger model stays available for final judgment, difficult reasoning, important code, and work where a mistake is expensive.</p><p>I no longer use maximum reasoning by default. I escalate only when the problem is genuinely hard. I created a cheaper path for screenshots that mostly contain text or a simple error. Expensive vision is reserved for layouts, charts, and designs. I removed the recurring scan and use focused searches when I have a reason to run them. I moved more daily work to the command line and kept the useful memory and skills active.</p><p>Those changes reduced waste without changing the main model. That was my first clue that quality was not living in the model alone.</p><p>What I tested</p><p>DeepSeek first entered the setup as a support worker. It handled cheap volume and acted as a fallback when the main provider was slow or overloaded. Over time, that gave me enough repeated use to consider making it the default.</p><p>Before doing that, I checked the configuration, made direct calls with real questions, and used bounded tasks where a mistake would be visible and cheap. I read the output back and inspected the result instead of treating a fluent answer as proof.</p><p>The workloads I moved were practical and limited. They included summaries, lists, first drafts, second opinions, and debugging hypotheses. These are useful tasks, but they do not cover everything. They are not a benchmark, and I am not presenting them as one.</p><p>The result has been good enough for my daily default so far. I have not noticed a failure in those lanes that made the higher-cost model worth using every time. That does not tell me how Flash would perform on every hard reasoning problem, every style-sensitive essay, or every codebase. It tells me what happened in my setup, on the work I actually ran.</p><p>The quality lives in the loop</p><p>Every task starts with a boundary. I define what goes in, what should come out, and what would count as wrong.</p><p>The tools verify the output. If the work touches files, I read them back. If it touches code, I inspect the diff and run checks when possible. If it touches an external service, I confirm the target and the resulting state. The model can be wrong. Verification is a workflow step, not a feeling of trust.</p><p>Skills carry the rules for repeated work. A cheaper model following a clear process can produce more useful output than a stronger model improvising without context.</p><p>Weak work gets held. If a draft is shallow, unsupported, or in the wrong format, it is rewritten or rejected. The person running the system still decides what good looks like.</p><p>That is why the change did not feel like a downgrade in my daily lanes. The expensive model was never doing the quality work alone. The system around it was defining the task, supplying context, checking the result, and deciding whether the result was usable.</p><p>What I still lose</p><p>There are trade-offs.</p><p>The strongest model gives me a cleaner first pass on creative writing and sensitive copy. Flash needs more editing before the tone feels right. I also give hard reasoning a second check. For a genuinely difficult logic problem, I do not assume the first answer is correct. I verify it with tools, ask for another pass, or escalate to the stronger model.</p><p>I read outputs more carefully now. That is not a defect in the setup, but it is a real cost of using a cheaper default. A lower price does not remove the need for judgment.</p><p>The practical test</p><p>You do not need to replace your whole setup to find out whether a cheaper model is enough for you.</p><p>Pick one repeated workflow. Use a weekly summary, a voice-note process, a folder review, a first-draft workflow, or another task where a mistake is visible and cheap.</p><p>Define the job before you compare models. Write down the input, the expected output, and the errors that matter. Keep the surrounding tools and instructions stable. Route the workflow to the cheaper model for a defined period. Read the result back and check the evidence at the layer where the claim exists.</p><p>For writing, inspect accuracy, structure, tone, and whether the draft does the job. For code, inspect the diff and run the relevant checks. For files, confirm that the right file changed. For external actions, read the target back. Do not judge the model only by whether the answer sounds confident.</p><p>Then compare the result with the work you were already getting. You do not need a universal model ranking. You need evidence about one workload in your own system.</p><p>If the cheaper model handles that lane, save the workflow and keep the stronger model for work that actually needs it. If it fails, the test still tells you something useful: that task needs more capability, tighter instructions, better context, stronger verification, or a different division of labor.</p><p>I still keep a stronger model around. It handles the work where final judgment matters and reviews some output from the cheaper lanes. That is not a contradiction. It is the design.</p><p>Cost optimisation is not choosing the cheapest model. It is using expensive intelligence where it creates real value, and building enough structure that routine work does not pay for it by default.</p><p>In my use so far, DeepSeek Flash has been enough for the workloads I moved. The model changed. The system did not. That is the part I trust more than a broad claim about model quality.</p>]]></content:encoded></item><item><title><![CDATA[Six layers for thinking through any AWS problem]]></title><description><![CDATA[Knowing what a service does and when to use it are two different skills; the second one is what gets people hired.]]></description><link>https://www.rateb.cc/p/the-decision-stack</link><guid isPermaLink="false">https://www.rateb.cc/p/the-decision-stack</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Sun, 27 Sep 2026 07:01:13 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2f77d269-3c42-40e0-a833-47be0cab86bd_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0XLm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0XLm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0XLm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0XLm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0XLm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0XLm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0XLm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0XLm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0XLm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0XLm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9660c48e-bbcf-4c17-be5a-eb30c33e0240_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I have a confession that will sound strange for someone studying cloud.</p><p>I know what Lambda does. I can tell you what S3 is, what DynamoDB is, what API Gateway is for. I have made flashcards for all of them. And for months I thought that was progress.</p><p>Then I sat down to design something. A simple problem, the kind that shows up in every interview. And the flashcards were useless. I knew the definitions. I had no idea when to use the services, why they fit together, or what I was giving up by choosing one.</p><p>That gap is the real subject of this piece. Knowing what a service does and knowing when to use it are two different skills. The second one is the one that gets people hired.</p><h2>The wrong map: AWS as a list</h2><p>AWS has over 200 services. When you are starting out, the obvious strategy is to treat them like a vocabulary list.</p><p>EC2 does this. S3 does that. Lambda is serverless. Pass the exam, get hired.</p><p>That strategy worked for a while. It still works if your only goal is a certification. But it collapses the moment the problem stops being "name the service" and becomes "design the system."</p><p>Here is what I kept noticing in interview prep content and practice sessions: people can rattle off what services do, then freeze when asked to combine them. Because a business brief does not arrive as a list of services. It arrives as a problem. A startup about to go viral. A store that crashes on its biggest day. A bank drowning in documents.</p><p>The better map is not a longer list. It is a way of walking through any problem so the services show up because the problem demands them.</p><h2>The decision stack</h2><p>Every cloud architecture can be read through six layers. I keep the names simple:</p><ul><li><p>Traffic: how users reach the system, how fast content arrives, how services talk to each other.</p></li><li><p>Compute: where the actual work happens when a user clicks, submits, or uploads.</p></li><li><p>Data: where information is stored, how it flows, and whether services wait for each other or work from queues.</p></li><li><p>Security: who is allowed to do what, at every level, from the start.</p></li><li><p>Cost: what this costs now, and how easy it is to change when requirements change.</p></li><li><p>Observability: how you know the system is healthy before your users do.</p></li></ul><p>That is the whole framework. Six layers. You can walk into a problem you have never seen and know where to start, because the layers give you the questions.</p><p>The rest of this piece is the proof. Three businesses, three completely different architectures, the same six layers.</p><h2>Scenario one: the startup about to go viral</h2><p>Brief: a startup runs everything on one server. A thousand users are fine. A marketing campaign is about to bring 100,000 users in a weekend. The budget is nearly zero.</p><p>The problem is not "we need more servers." The problem is: the architecture cannot scale, and they cannot afford capacity they are not using. Two failures in one sentence.</p><p>Traffic layer. Right now the domain points straight at the one server. Everything passes through it: files, code, database, all of it. The first move is to stop treating the server as the front door. Route 53 points the domain at CloudFront, which serves content from edge locations around the world. The static files, the images, the page layout, move to S3, which costs almost nothing compared to a server doing the same job. A web application firewall filters bots and scrapers at the edge, before they reach anything behind it.</p><p>Compute layer. The server no longer delivers files. Now it only handles user actions. But one server still cannot handle 100,000 signups. Lambda replaces it: code that runs when an event happens, scales automatically, and costs nothing when nobody is using the app. API Gateway sits in front of it as the public address that routes each request to the right function.</p><p>The trade-off gets named honestly. Lambda has cold starts, a delay when the runtime spins up after idle. For a signup form, the user has already spent seconds reading the page. A few hundred milliseconds is noise. For a real-time trading system or a multiplayer game, it is not. The question is never "is Lambda good" but "does the latency matter for this specific application."</p><p>Data layer. DynamoDB stores the accounts. It is a key-value database, fast, single-digit milliseconds. The real reason it fits here is capacity. It has two modes: on-demand and provisioned. On-demand means you pay per request and never plan capacity. Provisioned means you guess reads and writes per second in advance. This startup has no usage history. Nobody knows if the campaign brings 5,000 signups or 50,000. Guessing low breaks the app. Guessing high wastes money they do not have.</p><p>So we start on-demand. Later, with real data, we can switch to provisioned and save money. The database does not change. The capacity model matches what we actually know. Do not optimize around a guess.</p><p>Security, cost, observability. IAM gives each service a key card that opens only the doors it needs. The signup function can write to DynamoDB and nothing else. The S3 bucket can be read by CloudFront and nothing else. Cost follows usage: near zero when quiet, exact when busy, instead of a server billing the same every hour whether it has 10,000 users or zero. CloudWatch collects metrics, and alarms fire when Lambda errors spike or the database throttles.</p><p>One weekend. 100,000 users. And a bill that mostly disappears when the campaign ends.</p><h2>Scenario two: the store that crashed on Black Friday</h2><p>Brief: a mid-size e-commerce company runs several servers behind a load balancer and one database, all in a single availability zone. On Black Friday, traffic tripled in two hours and the site died. They estimate $50,000 per hour of downtime.</p><p>This brief looks similar to the first one. It is not. And the difference is a senior skill: reading the brief before fixing anything.</p><p>Not every detail in a brief is a problem. The single availability zone did not cause this crash. The load balancer did not cause it either, and this is the part most people miss: a load balancer spreads traffic across the servers that already exist. It does not create new servers. Traffic tripled, every server overloaded, and the load balancer had nowhere to send requests. That is the crash.</p><p>Compute layer. The fix is an Auto Scaling Group. Define a rule: when average CPU crosses a threshold, launch new instances; when it drops, remove them. The load balancer checks health and only sends traffic to servers that pass. That alone would have handled Black Friday: capacity appears as demand rises and disappears after.</p><p>Lambda does not fit here. The store runs a real application with long-running processes and dependencies that need a full server environment, and Lambda caps out at 15 minutes per execution. EC2 stays. We fix how capacity is managed, not what the servers are.</p><p>Availability zones. The crash was a capacity problem, not a data center failure. But for a revenue system losing $50,000 an hour, one zone is still not a production design. We spread the load balancer and the server fleet across two zones. If one zone fails, traffic keeps flowing to the other. We do not overcorrect into multi-region. That complexity is not earned yet.</p><p>Data layer. When the servers drowned, the database drowned too. Connections piled up and the database stopped responding. That does not prove the database is broken. It was a chain reaction. Fix the fire before you redecorate the kitchen: stabilize compute first, then investigate whether queries, indexes, or sizing have their own problems.</p><p>One improvement is worth making while we are here. The RDS database handles complex queries across connected data: orders, customers, revenue reports. But inventory lookups, stock level by product ID, are simple and constant. They do not need joins or reports. Adding DynamoDB for inventory separates the two workloads. The tool matches the access pattern, not the other way around.</p><p>Cost. The company was running oversized servers all year out of fear of the next spike. That is paying for Black Friday 365 days a year. The baseline, sized for a normal Tuesday, gets a Savings Plan: committed pricing for servers you will run anyway. The burst capacity from autoscaling stays on-demand. Committed for the steady state, on-demand for the spike.</p><p>Observability. They found out the site was down from customer complaints on social media. That is the definition of no monitoring. CloudWatch tracks servers, errors, database connections, scaling events. The dashboard also tracks business metrics: orders per minute, checkout conversion. The CTO does not think in CPU. They think in revenue. CloudTrail records who changed what configuration, so the next post-mortem is not a guessing game.</p><p>Same five user steps, whether a thousand people shop or a hundred thousand.</p><h2>Scenario three: the bank automating documents</h2><p>Brief: a financial services company has 40 people reading contracts, compliance reports, and filings by hand, extracting the key information, and routing it to the right department. It is slow, expensive, and error-prone.</p><p>No website. No public users. No spike. The traffic here is documents.</p><p>Traffic layer. Documents land in S3. But a document should not immediately trigger processing. At 9 a.m. on a Monday, 200 reports arrive at once. Without a queue, all 200 try to process simultaneously, and you pay for peak capacity all day. SQS holds a message for each document. The processing side pulls messages at its own pace. This is decoupling: the upload side and the processing side never need to know about each other.</p><p>Compute layer. Lambda is tempting and wrong. Documents run dozens of pages, AI analysis takes time, and the 15-minute limit can cut the job off mid-process. Lambda also spins up and down per document, paying setup overhead thousands of times a day. Instead, ECS on Fargate runs a container continuously. It sits there pulling from the queue, keeping its connections warm, processing one document after another. When the queue builds up, more containers start. When it drains, they stop. You pay for the capacity you actually need.</p><p>The AI step. The container calls Amazon Bedrock through private VPC endpoints, not the public internet. This is a regulated industry; the data does not leave the private environment. But a general model is not enough. The company has its own compliance frameworks, routing rules, and deadlines. General knowledge cannot apply them. Retrieval augmented generation, RAG, pulls the relevant internal context and sends it with the document. The model gets the contract plus the company's rules. That is the difference between AI that works in a demo and AI that replaces a manual workflow.</p><p>Data layer. Results go into Aurora, one database for the whole processed-document pool. Legal searches by client name. Compliance runs reports across thousands of documents. Same data, different questions, one database to manage and secure. The original files stay in S3 with versioning, so nothing is ever lost. Lifecycle rules move old documents to cheaper storage after 90 days and deep archive after a year.</p><p>Security. The containers can do exactly three things: read documents, read the queue, call Bedrock. They cannot write to the database. Writes happen through a separate control process. The thing that handles untrusted documents must not hold the keys to production data. Everything is encrypted, and CloudTrail records every API call for the audit trail.</p><p>Cost. The business case is calculable before you build: cost per document, compute time, storage, queue messages. A fraction of 40 salaries, with fewer errors and faster turnaround. A billing alarm catches a stuck container retrying a broken document before it runs up a bill.</p><p>Observability. The business dashboard has one number: documents processed per hour. That is what proves the system is doing the work 40 people used to do.</p><h2>The pattern underneath</h2><p>Three businesses. Three architectures. One set of questions.</p><p>Every time, the work started with the problem, not the service. Every time, the layers decided the architecture. And every time, the answer included a trade-off stated out loud: Lambda versus containers, on-demand versus provisioned, one database versus two, fix the fire before redecorating the kitchen.</p><p>That last line is the discipline. When the store crashed, the temptation is to rearchitect the database. The honest move is to fix the capacity problem first and measure what is left. When the bank wants AI, the temptation is to throw a model at the documents. The honest move is to design intake, queueing, permissions, and cost before the model ever runs.</p><h2>The walk-the-brief routine</h2><p>This is the routine I use now on every practice brief:</p><ol><li><p>Name the problem in one sentence, including what happens if it is not solved. No services allowed yet.</p></li><li><p>Walk the six layers. Traffic first, then compute, then data. Security, cost, and observability are not afterthoughts; they shape the choices above them.</p></li><li><p>For each layer, pick one option and state the trade-off. If you cannot name what you are giving up, you have not chosen yet.</p></li><li><p>Check the failure mode. What happens when each component dies? Does anything become a single point of failure?</p></li><li><p>Only then touch a service name.</p></li></ol><p>The exam asks what Lambda does. The interview asks when Lambda is the right call and when it is not. The first question tests memory. The second tests judgment.</p><p>I failed the second question for a long time, because I was studying for the first one.</p><h2>The changed lens</h2><p>AWS is not a list of 200 services. It is a stack of decisions. Traffic, compute, data, security, cost, observability. Run any problem through those six layers and the services stop being vocabulary and start being answers.</p><p>The flashcards were not wasted. The definitions matter. They just were not the skill. The skill is standing in front of a blank page with a business problem and knowing where to start. That is the part that gets hired, and it is the part you can practice every single day with nothing but a brief and six questions.</p>]]></content:encoded></item><item><title><![CDATA[For AI Careers, Test the Stack, Not the Titles]]></title><description><![CDATA[The durable work sits underneath the model; ask which layer would break if it disappeared tomorrow, then build there.]]></description><link>https://www.rateb.cc/p/the-best-ai-career-is-not-the-one-closest-to-ai</link><guid isPermaLink="false">https://www.rateb.cc/p/the-best-ai-career-is-not-the-one-closest-to-ai</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Fri, 25 Sep 2026 07:02:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/aeffe68c-9b7f-4470-a54c-27ef9841528f_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RgF4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RgF4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RgF4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RgF4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RgF4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RgF4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RgF4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RgF4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RgF4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RgF4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e2b1315-3043-40d0-a5b4-9a442bd8e0ec_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Attention sits on the model. The investment and the durable work sit underneath it. Two questions tell you which layer to build on.</em></p><p>Most people choosing a tech career right now are looking at the wrong end of technology.</p><p>They see ChatGPT. They see Claude. They see agents and a thousand new apps launching every week. So the natural assumption is that the best career must be the one sitting closest to those products: AI engineer, agent engineer, machine learning engineer, prompt engineer. Then someone says cybersecurity is safer. Someone else says software engineering is dying. Another person says data is the new oil. Before long you have compared six careers, opened fifteen tabs, and become less certain than when you started.</p><p>I know the loop. I did it myself, more than once. The problem is not the research. The problem is that these all look like separate careers when they are different parts of one stack. And until you see the stack, every list makes the decision harder.</p><p>So forget the job lists for a minute. There is a stronger move: test the stack, not the titles.</p><h2>The two-question test</h2><p>Walk any technology down to its layers and ask one question: if this layer disappeared tomorrow, what above it would stop working?</p><p>Then ask the second question: how far down can an ordinary engineer go while still learning and operating the work through software, from a laptop, basically remote?</p><p>When both answers meet, the strongest career foundation for the AI era stops being a guessing game.</p><h2>Run the test on a real product</h2><p>Imagine an online retailer launches an AI customer support assistant. A customer opens the site and types, "Where is my order?" and "Can you change the delivery address?"</p><p>This looks like one product. Several completely different pieces have to work together before the customer gets a useful answer.</p><p>The front end is what the customer sees and touches: the website, the app, the chat box, the buttons. It collects the request and shows the result. It does not know where the order is, and it cannot change an address.</p><p>That work happens behind the screen, in the back end. The back end checks who the customer is, looks up the order, applies the company rules, talks to the delivery company, and updates the data. This is where the business logic lives. Before changing an address, the company must authenticate the customer, limit access to the correct order, check whether it has shipped, record the change, and handle failure safely. AI does not remove those requirements.</p><p>Above the back end you can add an agent. An agent is software that takes a goal, calls a model, uses approved tools, checks the results, and repeats. It sits inside or beside the back end. Before it runs, the back end authenticates the customer and limits the request to authorized data. The agent interprets the request, retrieves the approved order, checks its status, calls a policy service, and only then invokes the courier API. The model does not automatically know the order. It cannot safely act without data, without tools, without rules and permissions around it.</p><p>Most companies do not train a frontier model. They rent it through an API or a managed service. Providers change. The surrounding application still needs data, networking, permissions, security, monitoring, operations, and compute.</p><p>And every layer above needs somewhere to run. Compute runs the code. Networking connects the pieces. Storage holds the information. Identity controls access. Monitoring shows what is happening. Automation makes the environment repeatable. Backups and recovery help when something breaks. That is the infrastructure layer: the environment keeping the product running for real users.</p><h2>Now remove things</h2><p>Remove the front end. The company swaps in a mobile app, another website, an internal screen, or an API. The customer experience changes. The system underneath remains.</p><p>Remove the agent. The company uses a fixed workflow, or sends the harder request to a person. The AI experience becomes less capable. The order system still exists.</p><p>Replace the model. The answers behave differently, and the prompts and tests need to change. Companies already use more than one model provider. The identity, the order data, the network monitoring, and most of the application stay exactly the same.</p><p>Remove the infrastructure. No compute means the code has nowhere to run. No network means the pieces cannot talk to each other. No storage means no durable information. No identity controls means the demo technically runs, but no serious company lets customers use it. No monitoring means nobody knows the product is broken until the customers complain.</p><p>The upper layers serve one experience each. The infrastructure below serves many applications, many agents, many models, many databases, many business systems. The lower layers do not make the upper layers unimportant. They make the upper layers dependent. Models, applications, and providers will keep changing. Networking, identity, security, storage, automation, monitoring, and reliability keep returning.</p><h2>The second half of the test</h2><p>Physical data centers are even deeper. If the chips or the electricity disappear, everything stops. So why not tell everyone to become a semiconductor engineer or a data center technician?</p><p>Because of the second question: how deeply can you realistically enter a layer while operating through software, remote? Physical infrastructure demands specialist hardware knowledge, a lot of capital, and being near a facility, physically handling equipment. Some people deliberately go deeper: chip design, kernel engineering, database engine development. For most IT professionals and career switchers, the deepest broadly accessible production layer you can practice from a laptop is programmable infrastructure used by real businesses.</p><p>Most companies reach that layer through cloud platforms. Cloud platforms turn physical capacity into compute, network, storage, identity, and security controls that you operate through code and APIs. That does not guarantee a remote job. It means you can learn and practice the work without owning a facility.</p><p>So when both tests meet, when you ask how many systems reuse the layer and how deeply you can work through software, the answer becomes clear. That layer is cloud infrastructure.</p><h2>Follow the money</h2><p>Public attention goes to the model, the application, the agent at the very top. The investment pours through the layers underneath.</p><p>Reported figures from the International Energy Agency say five large technology companies spent more than $400 billion in capital expenditure in 2025, projected to rise another 75 percent in 2026. The Stargate project bundles cloud infrastructure, data centers, chips, energy, and construction. Anthropic has said it will spend more than $100 billion with AWS over the next decade on capacity for training and running Claude.</p><p>The product is AI. The buildout is compute, networks, storage, chips, power, cooling, security, and cloud capacity. Agentic workflows add multiple model calls, tool calls, permissions, data movements, and failure points. Larger models need more compute and more memory bandwidth. Connecting more company data adds storage, governance, backups, and security requirements.</p><p>This does not mean every billion spent creates a matching number of jobs. These companies will automate heavily. It shows which part of technology they believe they will need more of.</p><h2>Demos are not production</h2><p>You can build an impressive agent over a weekend. You are still not ready for a production role.</p><p>The company asks the questions production always asks. Who is the customer? Which data can they access? What happens when the courier fails? How much does every request cost? Employers need evidence that you understand everything underneath the demo. That is the whole gap between the weekend project and the job.</p><h2>What this means from where you already stand</h2><p>If you already work in support or operations, this matters most. AI is not making what you know irrelevant. It is creating more systems that must be connected, secured, monitored, and recovered. Your next move is learning to design and automate those systems instead of reacting after they fail.</p><p>An IT analyst in a hospital already sees identities, integrations, networks, backups, devices, and security controls. Years in L2 support teach you how users experience failure, where handovers go wrong, and what happens when nobody can diagnose a system. I spent years on that side: tickets, incidents, DNS, permissions, the moment a system fails inside a real business. The move is not a restart. It is moving from handling the ticket after the failure to helping design, automate, secure, and recover the system around it. That is exactly what I am learning now, through the AWS re/Start program and the labs I build and break. If you are switching from sales, teaching, healthcare, or operations, keep your communication and business experience. It cannot replace hands-on competence. It helps you understand the business around the system while you build the missing technical layer.</p><p>One trap: do not now decide the answer is to become an AI infrastructure engineer. That repeats the same mistake with newer titles. For most companies, the infrastructure around an AI application is familiar cloud infrastructure with AI-specific architectures and services. If they call a managed model API, the provider handles much of that infrastructure; the company still owns its application, its data access, its identity, its networking, its monitoring, and its cost. If they train or host models themselves, they need specialist chips, high-speed connections, distributed workloads, model serving, and specialized monitoring. Those needs sit on top of the same foundations: compute, networking, storage, identity, security, automation, reliability, cost control. AI infrastructure is a workload specialization. Cloud infrastructure is the reusable foundation. Build the foundation first, then add the specialization if your role needs it.</p><h2>AI will automate parts. It will not take the responsibility.</h2><p>Yes, AI will automate parts of cloud work. It can already generate Terraform configurations, draft a deployment pipeline, and suggest network configuration. I use it too. But generating a configuration file and taking responsibility for a production system are not the same job.</p><p>Imagine the AI generates infrastructure for a company. The code works, but one permission is too broad. A support process can now read every customer's order instead of only the one it needs. The syntax is valid. The business outcome is a security incident. Someone still has to decide how much access is required, test the change, review what could be affected, monitor the deployment, recover safely, and explain the risk to stakeholders.</p><p>If your only value is clicking through a console or copying commands, more and more of that work will be automated. If you understand requirements, design systems, review output, secure it, control cost, troubleshoot it, and explain trade-offs, AI makes you faster. No career is completely AI-proof. where AI is creating more infrastructure to build, more complexity to manage, and more production outcomes that somebody must still own. Cloud is not AI-proof. It is AI-relevant. The code is becoming faster to produce. The production consequences are not disappearing with it.</p><h2>What cloud engineering actually is</h2><p>It is not memorizing services. It is not collecting certifications and hoping an employer imagines your practical ability. It is answering a small set of important questions, over and over:</p><p>Where should this application run? How does traffic reach it? Which part is public and which is private? Who or what is allowed to access the data? What happens when traffic increases? What happens when one component fails? How will we know there is a problem? How do we rebuild the environment consistently? How do we recover it? How do we stop the bill and the complexity getting out of control?</p><p>AWS gives you services for solving those problems. The service name is not the skill. The skill is knowing which problem you are solving, why the service fits, what could fail, and what you rejected. Two people can finish the same course and leave with completely different career value. One remembers the steps. The other understands how the parts connect, changes the design when the requirement changes, catches a dangerous permission, and can explain the decision in an interview. Same information. Different level of ownership.</p><h2>A practical test for your own decision</h2><p>This week, run the test on something you actually use. Pick an app you open every day. Draw its layers. Ask what stops working if each one disappears. Then ask how deep you could go from a laptop.</p><p>Then, for your own next step, do a bounded 30-day build. A sandbox account with MFA and a budget alert. Synthetic data only, never real customer data. Build one small real system from requirements, not from service names. Break it. Explain it in ninety seconds to someone who knows the job. Use AI if you want, but inspect every permission it writes and make it explain its assumptions. If the AI did the work and you cannot explain it, the proof belongs to the tool, not to you.</p><h2>The layer under the hype</h2><p>Here is the conclusion I keep landing on. Stop asking which AI job will be the hottest next year. Look under every AI application and ask what it cannot operate without. Then go as deep as you can while still building from a laptop.</p><p>In the AI era, that points to cloud infrastructure. AI does not replace that foundation. It increases what is built on top of it. I am building there right now, and it is the first direction where the years I spent in support stop looking like a detour and start looking like the base of the stack.</p>]]></content:encoded></item><item><title><![CDATA[You Have a Sequencing Problem, Not a Career Choice Problem]]></title><description><![CDATA[The question is not which tech title to pick for life, but which foundation gives you the strongest next move from where you stand.]]></description><link>https://www.rateb.cc/p/you-do-not-have-a-career-choice-problem-you-have-a-sequencing-problem</link><guid isPermaLink="false">https://www.rateb.cc/p/you-do-not-have-a-career-choice-problem-you-have-a-sequencing-problem</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Tue, 22 Sep 2026 07:01:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/29dfff45-aca8-4d8d-b853-f43a1b840c07_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DkXx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DkXx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DkXx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DkXx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DkXx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DkXx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DkXx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DkXx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DkXx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DkXx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3e32f79-1e87-41a3-90b0-3524cadf37aa_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I kept reopening the same question for longer than I want to admit.</p><p>Which tech career? AI engineering, cybersecurity, data engineering, DevOps, platform engineering. Every role has its own road map. Every road map has twenty skills. And every person online is certain their path is the one you need before it is too late.</p><p>So I did what anyone sensible does. I compared salaries. I watched videos. I opened a free account. I started a course. Then a new role appeared, the market shifted, and I reopened the whole decision again.</p><p>Six months later the effort was real. It had not compounded into one body of capability and proof that anyone could trust. That is the part that hurts: not laziness, but effort without sequence.</p><p>I know this from the inside. I spent years in tech support: tickets, incidents, DNS, permissions, the moment a system fails inside a real business. Then an AWS bootcamp. Then labs I build and break. Then applications in Berlin. The research loop I know well. Where it breaks is the question itself.</p><p>"Which tech career should I choose for the rest of my life?" is the wrong question. It assumes a choice problem: pick a title, predict the market, be done. That is the wrong map, and it is why the decision keeps reopening. The better map treats a career as a sequence of moves. What I actually have is a sequencing problem.</p><p>The useful question is: from where I am today, which technical foundation gives me the strongest next move and the most useful options later?</p><h2>Road maps are snapshots. Careers are trajectories.</h2><p>Most career advice compares snapshots. What does it pay today? How many vacancies? Which certification is fastest? But a career is not the first salary. It is where the move places you after the next move, and the move after that.</p><p>The highest-paying destination can be the wrong immediate move if you lack the prerequisites to reach it. A less glamorous starting point can be the intelligent decision if it builds capital for several better destinations later.</p><p>The same career can be a brilliant next move for one person and the wrong sequence for someone else. If you already work in help desk, infrastructure, networking, telecom, testing, security, or data, you are not starting from zero. Permissions, DNS, operating systems, deployments, tickets, incidents: those feel ordinary because you use them daily. They are career capital. Your strongest move is usually diagonal, not a restart.</p><p>If you are moving from healthcare, sales, teaching, or logistics, your starting point is different. You may bring communication, process thinking, and the ability to own a task when the instructions are not perfect. You can be technically new without being professionally new. That changes the shape of the bridge. It does not remove the bridge.</p><p>And the constraints are real: money, visa, geography, family, health, time. They are not excuses. They are design constraints. The best career on a salary chart is useless if the transition requires a risk you cannot responsibly take.</p><h2>Follow the durable problems</h2><p>One of the clearest signals of where companies are building capacity is where they invest. Reported figures from the International Energy Agency say five large technology companies spent more than $400 billion in capital expenditure in 2025, with the figure projected to rise another 75 percent in 2026. Microsoft alone added 88 data centers during its financial year and spent $41 billion in one quarter (<a href="https://www.iea.org/reports/energy-and-ai">IEA</a>).</p><p>The headline is AI, so the first-order career conclusion is "become an AI engineer." But capital does not stop at the announcement. It builds data centers and compute. Then someone has to turn that capacity into systems businesses actually use. Those systems need data, networking, identity controls, secure automation, deployment, observability, reliability, and cost control. The moment a model touches a database, a regulated workflow, or an enterprise network, the implementation becomes far more complicated than the demo.</p><p>Capital tells you where demand enters. It does not tell you which title to chase.</p><p>The dependency test makes this concrete. Imagine an insurance company using AI to read claim documents and summarize them for an assessor. In a demo, the model is the whole product. In a real business, the documents have to arrive somewhere, stored and encrypted, visible only to the right employees. The application needs compute. Services need secure ways to communicate. Changes need safe deployment. The system needs monitoring and recovery. Someone has to understand the cost. And because the documents are sensitive, the company cannot hope the permissions are correct.</p><p>Remove the AI model and the company can return to manual review. Remove compute, identity, networking, or storage and the digital workflow stops.</p><p>That does not make AI unimportant. It shows where knowledge can be reused across the greatest number of workloads.</p><h2>Skills with a long half-life</h2><p>Some skills lose value fast. Interfaces, service names, model versions: short half-life. Systems, trade-offs, security thinking, troubleshooting, technical communication: long half-life.</p><p>Imagine every vendor renamed its products tomorrow. If you learned where to click, not much survives. If you understand compute, Linux, networking, identity, security, troubleshooting, cost, and architecture trade-offs, you translate your knowledge to the new names instead of starting from zero. That is the difference between tool knowledge and career capital.</p><p>It is also why someone can pass certifications, complete guided projects, and still sound uncertain in an interview. You memorize a diagram: server, load balancer, database. The interviewer changes one requirement. The data is sensitive. The traffic is unpredictable. The team is small. The budget is tight. The application must recover when a component fails. If you learned only the answer, your mind goes blank. If you understand the underlying problems, availability, access, networking, cost, failure, and ownership, you can change the design and explain why.</p><p>AI can generate syntax, draft automation, suggest an architecture, and analyze logs. The organization still needs the output checked against real requirements, dangerous permissions caught, cost controlled, and the result owned. You can outsource more execution to AI. You cannot outsource your understanding and still own the result.</p><p>None of this makes any role AI-proof. It moves the value from recalling syntax toward judgment, verification, integration, and ownership.</p><h2>Test the work before you commit</h2><p>Most people treat a career change like a one-way door. Resign, spend thousands, study for a year, discover it was wrong. So they freeze. But the alternatives are not "bet your life" or "do nothing." You can turn a frightening decision into a bounded experiment. Certainty is not the prerequisite for doing the work. Certainty is one of the outputs.</p><p>For the next 30 days, stop comparing careers and test this one directly. AWS is not the definition of cloud engineering; it is an environment where you can practice the underlying problems. Use a separate non-production account, protect the root user with MFA, use synthetic data only, and never connect real company systems. A budget alert is a warning, not a spending cap. Pick one low-cost resource you understand, tag it, and verify both the teardown and the billing when the test is done. The <a href="https://aws.amazon.com/free/">AWS Free Tier</a> is enough to start.</p><p>Then do four things.</p><p>Read ten real cloud operations, cloud support, or junior infrastructure job descriptions in the geography where you can work. Ignore the service lists. Write down the problems that repeat: deploying systems, managing access, automating infrastructure, investigating incidents, controlling cost, building networks, securing data, supporting production teams, explaining designs.</p><p>Build. A small company needs an application where employees upload documents while working remotely. Only approved users get access. Every upload is logged. Usage is low. The budget is tight. Someone gets alerted if the system goes down. Start with requirements, not service names. Where does the application run? Where do the documents live? How is access controlled? What is reachable from the internet? What gets monitored? What could fail? How would you rebuild it consistently? What drives the cost? Build a version inside your sandbox, define the infrastructure in code, add monitoring, and document one alternative you rejected.</p><p>Break it. Change the requirement: the documents now contain sensitive customer information, and the path must work only through the company's private network. Design that on paper first. Then remove a permission, fail a deployment, or trigger an alert. Can you identify what happened from the logs? Can you restore the system? Can you explain the failure and how the design reduces the risk next time? Use AI if you want, but make it explain its assumptions and inspect every permission. If AI did the work and you cannot explain it, the proof belongs to the tool, not to you.</p><p>Explain it. Give yourself 90 seconds: what problems were you solving, what constraints mattered, what did you choose, what did you reject, what failed, what changed? Put the explanation in front of someone who understands the job and let them challenge the permissions, the cost, the reliability, the networking. Revise instead of defending.</p><p>Then notice where the test breaks first. If you freeze in front of a blank assignment, the gap is foundations. If you can only finish with the tutorial open, the gap is independent execution. If you built it but your portfolio shows only screenshots, the gap is proof. If the proof is credible but applications get no response, the gap is roles and positioning. If interviews go fine until the requirement changes, the gap is explanation and interview practice.</p><p>Fix the first break. More applications do not repair missing capability. Another certification does not repair unreadable proof. Another road map does not repair a decision you have not tested.</p><h2>Cloud is the trunk</h2><p>When you follow the problems down, one foundation keeps appearing: cloud engineering. Not because it is glamorous. Because it is the production environment where compute, networking, identity, storage, security, delivery, observability, reliability, cost, and operations meet. And because you can practice all of it outside an employer's production system, on demand, and rebuild it when you break it.</p><p>You are trying to choose the perfect branch. Cloud gives you the trunk.</p><p>Cloud plus security depth is cloud security. Cloud plus delivery and automation is DevOps and platform engineering. Cloud plus data is data platforms. Cloud plus AI and systems depth is AI infrastructure. Cloud plus architecture is solutions architecture. Cloud plus software and custom deployment is forward-deployed engineering.</p><p>The plus signs matter. Cloud alone does not qualify you for every destination, and someone already deep in a specialty may have a shorter direct route. But if you already work around systems, or you have taken serious technical action and need one coherent base, the reasoning points here.</p><p>And cloud engineering is not memorizing a service catalog or passing multiple-choice exams. AWS is a platform. The capability is solving production problems with platforms like it: requirements to architecture, trade-offs, networking, identity, security, automation, observability, troubleshooting, and clear explanation.</p><p>The titles will change. The foundation travels with you.</p><h2>A real decision removes the decision</h2><p>Here is the part that changed my sequence. Keeping six career options open feels safe. It is not. Every new video, every certification, every model release reopens the question, and nothing stays in place long enough to compound.</p><p>A real decision removes the decision. Not a lifetime promise: a 12-month one. "For the next twelve months I am building cloud engineering competence: systems fundamentals, production-shaped implementation, and technical explanation. Unrelated roles and certifications go on the back burner. I review the evidence at 90 days."</p><p>The sacrifice is not quitting your job or ignoring your family. The sacrifice is giving up the comfort of reopening every other option.</p><p>If your current job gives you financial safety and usable time, keep it as a runway. You do not need to manufacture a crisis to make progress. But put dates and outputs against the transition, because safe quietly becomes someday. You do not have to wait until you hate your life enough to change it. A decent job never produces enough pain to force a decision. You can decide before you hit rock bottom.</p><p>The decision comes before the curriculum. Foundations, build, feedback, revision, proof, market. Learn the foundations, build systems that force decisions, get feedback before mistakes harden into habits, revise, turn it into proof the market can read, then translate that proof into the right roles and the right interviews.</p><p>Choosing a tech career in 2027 is not an act of prediction. It is an act of sequence. Do not predict which title wins. Choose a foundation that survives the titles. Build the trunk. Specialize from strength later.</p>]]></content:encoded></item><item><title><![CDATA[CloudTrail Shows Who Changed AWS, Not Whether Your App Works]]></title><description><![CDATA[Match the question to the evidence layer: CloudTrail for who acted, Config for configuration history, a host check for the app.]]></description><link>https://www.rateb.cc/p/cloudtrail-is-not-application-proof</link><guid isPermaLink="false">https://www.rateb.cc/p/cloudtrail-is-not-application-proof</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Fri, 18 Sep 2026 07:02:57 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dc40b016-7ad8-494f-862d-4c82b751b439_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D6gb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D6gb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D6gb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D6gb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D6gb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D6gb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D6gb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D6gb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D6gb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D6gb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85ffc332-9502-4c48-8ff6-833116769f80_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Better cloud decisions begin when each claim is matched to the evidence layer that can actually support it.</em></p><p>CloudTrail is one of those AWS services that becomes more useful when you stop asking it to answer every question.</p><p>It can record activity in your AWS account. Actions taken in the console, CLI, SDKs, and APIs can appear as events. That makes CloudTrail central to operational auditing, governance, and security investigation.</p><p>But an audit trail is not the same thing as application proof.</p><p>If a CloudTrail event shows an API request to start an EC2 instance, you have meaningful evidence that the recorded AWS API activity occurred. You can inspect the identity, the event name, the time, the source details, and the affected resource context.</p><p>What you do not have is proof that your application became healthy, that Apache served a page, that a database connection succeeded, or that a user completed the outcome you care about.</p><p>That is not a weakness in CloudTrail. It is an evidence boundary.</p><p>The cloud feels confusing when we use one successful screen as a certificate for the entire system. An EC2 instance can be running while SSH still times out. A security-group rule can exist while the subnet is associated with a route table that cannot reach the intended destination. A CloudTrail event can confirm an API action while the guest operating system, application process, or downstream dependency fails somewhere else.</p><p>I now try to state the claim before I choose the service.</p><p>"Who changed this security group?" That is an activity and attribution question. CloudTrail is a sensible place to start.</p><p>"What was the configuration of this resource before it changed?" That is a configuration-history question. AWS Config is closer to the job.</p><p>"Did a network flow pass through this interface?" That is a VPC Flow Logs question, with its own scope and record limitations.</p><p>"Is the web service responding locally?" That belongs on the host, with a local listener or HTTP check.</p><p>"Can an external user reach the application?" That needs an end-to-end request from the relevant external position, interpreted alongside the network path and service evidence.</p><p>This way of thinking prevents a lot of false confidence.</p><p>CloudTrail is especially valuable after you have narrowed the question. If a public SSH rule appeared on a security group, you can investigate the recorded API action and identity. If a role policy changed, you can use activity evidence to understand the request history. If a resource was deleted, an event trail can help reconstruct what happened at the AWS control plane.</p><p>But intent, impact, and application outcome still need their own evidence.</p><p>An API call can be legitimate and still cause an outage. A recorded action can fail. A successful action can create a resource that is misconfigured for the next dependency. A person can be authorized to make a change that should still be reviewed.</p><p>This is why cloud security is not only about turning logging on. It is about connecting an event to a claim, then connecting the claim to the next verification step.</p><p>For a learner, the useful habit is small. When you see a log, event, alert, or dashboard status, finish this sentence:</p><p>"This proves that _______. It does not prove that _______."</p><p>That second blank is where better engineering starts. It keeps the next test honest. It prevents you from announcing a fix before the user-facing system is actually working. And it turns CloudTrail from a passive archive into part of a disciplined investigation.</p><h2>Try this in a sandbox</h2><p>Choose one scenario: a security-group rule changed, an EC2 instance was launched, or a user cannot reach an app. Write the claim, the first evidence source, what it proves, and the separate test needed before you can claim user-facing success.</p><h2>Continue the sequence</h2><p>Start by tracing one request or one security claim end to end. The goal is not to collect more AWS screens. It is to learn what each one can prove before you change the system.</p>]]></content:encoded></item><item><title><![CDATA[In AWS, Classify the Failure Before You Change Anything]]></title><description><![CDATA[An SSH timeout points at the network path, a public-key denial at credentials, a local curl at the host, an alarm at metrics. Classify first.]]></description><link>https://www.rateb.cc/p/classify-the-failure-before-you-change-anything</link><guid isPermaLink="false">https://www.rateb.cc/p/classify-the-failure-before-you-change-anything</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Wed, 16 Sep 2026 07:02:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/64cda4a8-bc2e-438f-ae62-793ddfa629af_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lFEm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lFEm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lFEm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lFEm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lFEm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lFEm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lFEm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lFEm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lFEm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lFEm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86323af6-d7dc-4503-83ca-b123cfe504ae_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A timeout, a public-key denial, a local response, and an alarm are different evidence. Start there.</em></p><p>The fastest way to lose an hour in AWS is to change five things because one thing failed.</p><p>Open the security group. Edit the route table. Restart the instance. Download a new key. Add a broader rule. Refresh the browser. Then wait, hoping one of the changes made the problem disappear.</p><p>I understand the instinct. A timeout feels like the system is refusing to explain itself.</p><p>But the error is already evidence. The first job is not to fix it. The first job is to classify what kind of failure you actually have.</p><p>In a VPC and EC2 lab, two messages can look equally frustrating but send you in opposite directions.</p><p>An SSH timeout means the session did not complete. That points first toward the path: correct public address, Internet Gateway, subnet route-table association, security-group and network ACL rules, host availability, and the possibility that the instance is not reachable from where you are connecting.</p><p><code>Permission denied (publickey)</code> means something different. The SSH service answered enough for authentication to begin. The first branch is now the chosen username, the private-key file, the EC2 key pair, and host authorization. It does not prove every network detail is perfect. It does prove that replacing a route table is a strange first move.</p><p>The same pattern appears when testing a web server.</p><p><code>curl -I local HTTP</code> on an EC2 instance can show that Apache is responding locally. That is useful evidence about the process and local listener. It does not prove that a browser on the public internet can reach it. External reachability still depends on the public address, the route through the Internet Gateway, the subnet association, network controls, and the service being reachable on the right interface and port.</p><p>A CloudWatch alarm is another category. It tells you a metric crossed an evaluation condition. It does not explain root cause. A CPU alarm might be the beginning of an investigation, not the end of one.</p><p>I have started using a small habit before I touch a setting: write the observed symptom as a sentence that does not contain a fix.</p><p>"SSH times out."</p><p>"SSH reaches authentication but rejects the key."</p><p>"The service responds locally but not from the browser."</p><p>"The alarm entered ALARM state."</p><p>That sentence determines the first evidence layer.</p><p>For a timeout, trace the request path in order. Is the address the one you expect? Is the subnet associated with the intended route table? Does the route point to the intended next hop? Does the path have the public or private addressing it needs? Are the relevant policy layers allowing the protocol and return traffic? Is the host up?</p><p>For public-key denial, keep the network configuration still until you have checked the identity path. Confirm the selected key pair, the file permissions on the local key, the AMI-appropriate username, and the matching authorized key on the host if you have another safe access path.</p><p>For a local-only web response, test outward one layer at a time. Local service. Listener. Instance address. Route. Security group. Network ACL. External request. Each test should answer one question.</p><p>This is not only a cloud habit. It is a support habit, a systems habit, and a career habit. Good troubleshooting is visible reasoning under uncertainty. You are not trying to look fast by changing things. You are trying to preserve the signal long enough to learn what failed.</p><p>The smallest proven fix is usually better than the widest possible fix. If port 80 is the question, opening every port does not make you efficient. It makes the system harder to understand and less safe.</p><p>The goal is not to memorize an enormous decision tree. It is to let the failure choose the first branch.</p><p>Before you change an AWS setting, ask one quiet question: what does this exact symptom prove, and what does it leave open?</p><h2>Try this in a sandbox</h2><p>In a sandbox, deliberately compare three outcomes: an unreachable address, a rejected SSH key, and a local-only HTTP response. For each, write the first two checks you would make and one tempting change you would avoid.</p><h2>Continue the sequence</h2><p>Start by tracing one request or one security claim end to end. The goal is not to collect more AWS screens. It is to learn what each one can prove before you change the system.</p>]]></content:encoded></item><item><title><![CDATA[The Work Is Not the Prompt]]></title><description><![CDATA[A useful AI workflow is not a clever prompt. It is a bounded responsibility system: a clear outcome, the right context, a narrow authority lane, and a review loop that earns trust.]]></description><link>https://www.rateb.cc/p/the-work-is-not-the-prompt</link><guid isPermaLink="false">https://www.rateb.cc/p/the-work-is-not-the-prompt</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Sun, 13 Sep 2026 08:57:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/66e59fdf-a927-46f3-8656-a659092a1d5d_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HI3O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HI3O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HI3O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HI3O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HI3O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HI3O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HI3O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HI3O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HI3O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HI3O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5038aa9d-d281-4e3d-8c9c-c89c10773931_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I keep noticing the same failure in AI conversations.</p><p>Someone sees a new agent tool, opens a blank workspace, and asks it to "run the business," "manage my inbox," or "find me opportunities."</p><p>Then the result is vague, strange, or quietly wrong.</p><p>The tool gets blamed. The prompt gets rewritten. Another tool is bought.</p><p>But the real problem usually arrived before the model saw a single word.</p><p>There was no job.</p><p>There was only a wish.</p><p>That distinction matters because the most valuable AI skill is not prompt writing. It is delegation design.</p><p>A good prompt can make a model sound useful for one moment. A useful workflow has to do more. It needs to know what it is trying to achieve, what information it can use, what it is allowed to change, what good work looks like, and when it should stop and ask for help.</p><p>That is not magic. It is management.</p><h2>Start with work that deserves automation</h2><p>Not every annoying task needs an agent.</p><p>That is the first thing worth saying, because AI makes every workflow look automatable from a distance.</p><p>A task is a good candidate when three things are true.</p><p>First, it happens often enough to matter. If you do it once a quarter, building and maintaining a system may cost more than simply doing the task well.</p><p>Second, the work has rules. Not perfect rules, but enough structure that you can explain how a good decision is made. An inbox triage process can have sender priorities, urgency signals, labels, examples of good replies, and clear escalation criteria. That is different from asking a tool to "handle my relationships" or "make the best business decisions."</p><p>Third, there is a return on time. The point is not to remove every two-minute task. The point is to remove a repeated piece of work that keeps pulling attention away from something more valuable.</p><p>This is a useful filter because it protects you from building automation as identity theater.</p><p>You do not need an agent because agents are the new thing. You need one when a repeated workflow is already real enough to deserve a better system.</p><p>Before building anything, ask:</p><ol><li><p>Does this happen every week?</p></li><li><p>Can I describe the inputs, choices, and desired output?</p></li><li><p>Will the time saved repay the time required to build, test, and maintain it?</p></li></ol><p>If the answer is no, a simple chat, template, checklist, or manual habit may be the better tool.</p><p>That is not falling behind.</p><p>It is good judgment.</p><h2>A chatbot gives an answer. A workflow carries responsibility.</h2><p>The simplest difference is this.</p><p>A chat helps when you are still thinking.</p><p>A workflow helps when you already know enough about the work to hand off part of it.</p><p>With chat, you ask a question, receive a response, and decide what happens next. That can be incredibly valuable. It can turn confusion into a draft, a plan, an explanation, or a first pass.</p><p>But a reliable agentic workflow has a larger job.</p><p>It receives an outcome, gathers the relevant context, takes a bounded action, checks the result, and reports or escalates what needs human judgment.</p><p>The important word is bounded.</p><p>People often describe an AI agent as an employee. I understand the metaphor, but it can make people careless. An employee has judgment, legal responsibility, a relationship with the company, and a lived understanding of consequences. A software workflow has permissions, instructions, tools, and failure modes.</p><p>Treating those as the same is how people give a system more authority than it has earned.</p><p>A better comparison is a junior operator with a very clear desk.</p><p>The desk contains only what is needed for the current job: the playbook, the approved examples, the necessary tools, the current queue, and a clear rule for when to stop.</p><p>The desk should not contain your entire life.</p><h2>The work is not the prompt</h2><p>A prompt is only one part of the system.</p><p>The real work happens before and after it.</p><p>Before it, you define the outcome.</p><p>Not "manage my inbox."</p><p>Something closer to: "By 9 a.m., every new email is categorized, routine replies are drafted in my voice, and anything urgent or uncertain is flagged for me."</p><p>That is a definition of done. You can see it. You can review it. You can tell when it failed.</p><p>Then you provide the context that makes a good decision possible.</p><p>Who matters most?</p><p>What does urgent mean?</p><p>Which messages should never receive an automatic reply?</p><p>What does your writing actually sound like?</p><p>What examples show the difference between a normal request, a sensitive request, and something that needs escalation?</p><p>This is where many AI workflows become disappointing. People ask for intelligence but provide no operating context.</p><p>Then they are surprised when the system behaves like a stranger.</p><p>Good context is not dumping every document you own into a chat window. That creates noise, stale instructions, and false confidence. Good context is the smallest useful set of rules, examples, current information, and constraints for one job.</p><p>Then comes the part people skip because it is less exciting: authority.</p><p>What can the workflow do without you?</p><p>Can it classify?</p><p>Can it draft?</p><p>Can it archive?</p><p>Can it forward something internally?</p><p>Can it send a message externally?</p><p>Can it touch money, contracts, customer records, or calendar commitments?</p><p>Each answer should be explicit.</p><p>The more consequential the action, the higher the review standard should be.</p><h2>One job. One lane.</h2><p>The temptation is to build one impressive machine that does everything.</p><p>Research the topic. Write the post. Design the visual. Schedule the meeting. Send the invoice. Review the code. Reply to the customer.</p><p>That sounds efficient until something goes wrong and nobody can tell where the error began.</p><p>A better system separates roles.</p><p>One workflow gathers information.</p><p>Another turns approved information into a draft.</p><p>Another checks a draft against a rubric.</p><p>Another prepares a report for a human decision.</p><p>A manager layer can coordinate those pieces, but it should not pretend to be the specialist in every lane.</p><p>This is not only about model quality. It is about keeping context clean.</p><p>When one system tries to remember every policy, every user preference, every tool, every current task, and every exception, it becomes hard to evaluate. It may still produce confident language. That does not mean it is operating with clarity.</p><p>Small lanes make failure visible.</p><p>They also make improvement possible.</p><p>If the research step is weak, improve research. If the draft is off-voice, improve the style guide. If the review misses something, improve the rubric. You do not need to rebuild a giant black box every time one piece behaves badly.</p><h2>Trust is a rollout, not a feeling</h2><p>The hard part is not building the first version.</p><p>The hard part is deciding when to let it act.</p><p>Trust should be earned in stages.</p><p>Start with observation. Let the workflow sort, summarize, or recommend while you compare its output to your own judgment.</p><p>Then let it draft. Correct the drafts and turn recurring corrections into clearer rules or examples.</p><p>Then allow low-risk actions with clear limits. Labeling a routine notification is not the same as sending a client email. Preparing a report is not the same as moving money.</p><p>Only after a workflow has shown reliable behavior should it run on a schedule without direct supervision.</p><p>Even then, the goal is not blind autonomy. The goal is quiet reliability with visible escalation.</p><p>A good system tells you what happened, what it could not decide, and what needs your attention.</p><p>That is how it buys back time without asking you to surrender judgment.</p><h2>The skill that compounds</h2><p>The future of work will contain more AI. That part is obvious.</p><p>The useful question is what kind of person becomes more valuable inside that change.</p><p>I do not think the answer is someone who can produce the longest prompt or collect the most tools.</p><p>It is someone who can look at messy work and make it legible.</p><p>They can identify a real outcome.</p><p>They can separate repeatable work from judgment-heavy work.</p><p>They can write the rules without confusing rules for wisdom.</p><p>They can give a system enough context without drowning it.</p><p>They can build guardrails, review the result, and know when the human should stay in the loop.</p><p>That is not a small skill.</p><p>It is the difference between using AI for occasional help and building a system you can responsibly rely on.</p><p>Before you build your first agent, do not ask what it can do.</p><p>Ask what job you can explain clearly enough to delegate without lying to yourself about the risk.</p><p>That is where the real work begins.</p>]]></content:encoded></item><item><title><![CDATA[The Code Got Smaller. The System Got Bigger.]]></title><description><![CDATA[Why building with agents is becoming less about writing every algorithm and more about designing the primitives, constraints, and judgment around them.]]></description><link>https://www.rateb.cc/p/the-code-got-smaller-the-system-got</link><guid isPermaLink="false">https://www.rateb.cc/p/the-code-got-smaller-the-system-got</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Sat, 12 Sep 2026 08:57:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f6c8eabc-6d16-41a4-86c0-0b7d235287ce_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nNQN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nNQN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nNQN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nNQN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nNQN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nNQN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nNQN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nNQN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nNQN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nNQN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7711cea-6691-4b10-8dd4-d178b566f9c6_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I keep thinking about a strange kind of software demo.</p><p>An agent is given a blank voxel world and a few actions. It can place a block. It can place a box, a cylinder, or a sphere. It can inspect the space, choose from a small material list, clear the world, and mirror a shape.</p><p>Then someone asks it for a castle.</p><p>The result is not a single pre-programmed castle. The agent plans towers, walls, arches, windows, and a central keep. Ask again and the shape changes. Ask for a bridge or a pavilion and it starts composing those instead.</p><p>The obvious reaction is that the model is doing something magical.</p><p>The more useful reaction is quieter.</p><p>The application did not contain a castle algorithm. It contained a small world and a small vocabulary for acting inside it.</p><p>That difference matters because it points to a change in what builders need to get good at.</p><h2>The spectacle hides a small interface</h2><p>The visual result looks complicated, but the interface behind it is almost boring.</p><p>A coordinate.</p><p>A material.</p><p>A few higher-level shapes.</p><p>A way to clear the workspace.</p><p>A way to inspect what exists.</p><p>That is the point.</p><p>The agent is not allowed to reach into the renderer and do anything it wants. It is given a set of handles. Those handles are simple enough to understand, but expressive enough to combine.</p><p>A box is more useful than asking an agent to place thousands of blocks one by one. A mirror operation is more useful than making it reinvent symmetry every time. A world-info call is more useful than hoping it guesses the scale of the environment.</p><p>These are not glamorous decisions. They are interface decisions.</p><p>But they determine whether the agent can do useful work or only produce an impressive-looking mess.</p><p>I think this is where a lot of AI coding discussion gets confused. We see the output and talk about prompting. We see the model produce a page, a workflow, or a prototype and assume the skill is learning the right sentence to ask for.</p><p>Prompting matters. But the deeper leverage is often upstream.</p><p>What can the agent observe?</p><p>What actions can it take?</p><p>What does each action mean?</p><p>What is impossible by design?</p><p>What feedback tells it whether it is making progress?</p><p>That is the system.</p><h2>The code did not disappear</h2><p>There is a seductive story about AI coding: soon there will be almost no code, because the model will write everything.</p><p>The voxel demo contains a small truth inside that story. The custom code can get surprisingly small when a capable model supplies planning, pattern recognition, and composition.</p><p>But the engineering does not disappear. It changes location.</p><p>Instead of spending every hour encoding a specific outcome, you spend more time deciding what the environment should make possible.</p><p>You define primitives.</p><p>You choose the level of abstraction.</p><p>You decide which operations are cheap, which are forbidden, and which need confirmation.</p><p>You build a feedback loop so the agent can see the consequences of its actions.</p><p>You decide what a successful result looks like before the system starts improvising.</p><p>This is not less responsibility. In some ways it is more responsibility, because a bad primitive gets reused at scale.</p><p>If the only tool available is a raw database write, the agent will eventually make a raw database mistake. If a tool has broad permissions and a vague description, the model will make the most plausible interpretation it can. If success is never checked, a fluent explanation can hide a broken workflow.</p><p>The shorter codebase can create a larger design surface.</p><h2>Skills are the taste layer</h2><p>The most interesting layer in this kind of system is not the renderer. It is the skill layer.</p><p>A skill can be a plain Markdown file that says how a particular kind of result should feel. A dragon might need a long arcing neck, wings wider than its body, and visible flame. A castle might need slender towers and a clear central keep. A world-building skill might say: inspect the world first, build the big mass first, then add detail, and use higher-level shapes before individual blocks.</p><p>None of this gives the model new intelligence in the abstract sense.</p><p>It gives the model a clearer standard inside a particular environment.</p><p>That is why I think of skills as a taste layer.</p><p>Tools answer: what can I do?</p><p>Skills answer: what does good look like here?</p><p>The distinction matters outside of demos too.</p><p>A content workflow can have tools for reading a source, drafting an essay, creating an image, and preparing a post. Without a skill layer, the system may still produce plenty. It may not know what should be cut, what must be verified, what belongs in private notes, or what would embarrass you in public.</p><p>An infrastructure workflow can have tools for creating resources and reading logs. Without a skill layer, it may not know the order of operations, the rollback rule, or the evidence required before calling a deployment safe.</p><p>Capability is not judgment.</p><p>More tools do not automatically produce better work.</p><h2>The new bottleneck is legibility</h2><p>When people say that code is getting cheap, I do not hear that software is getting easy.</p><p>I hear that legibility is becoming more valuable.</p><p>A good agent environment should be easy for a human to reason about as well as easy for a model to use.</p><p>A person looking at the tool list should understand what each action changes. They should understand the scope of the permissions. They should be able to predict the cost of a loop. They should know where the result will appear and how it will be checked.</p><p>That is not bureaucracy. It is how you keep speed from becoming hidden risk.</p><p>The more capable the model is, the more important this becomes. A weak tool can only do limited damage. A powerful tool with a vague contract can create a large, confident failure very quickly.</p><p>So the goal is not to give an agent every possible action.</p><p>The goal is to give it the smallest set of actions that let it do the job well, then make the consequences visible.</p><p>That is a much more demanding design problem than adding another integration.</p><h2>Five questions before you add another agent tool</h2><p>When I look at an agent workflow now, these are the questions I want to ask before I add more capability.</p><ol><li><p><strong>What is the smallest useful primitive?</strong></p><p>Do not begin with the most powerful endpoint. Begin with the smallest action that is safe, understandable, and composable. A narrow tool is often easier to evaluate and harder to misuse.</p></li><li><p><strong>What does the agent need to observe first?</strong></p><p>Good action depends on state. Give the agent a way to inspect the relevant world before asking it to change that world.</p></li><li><p><strong>What should be a higher-level operation?</strong></p><p>If the same sequence appears again and again, turn it into a stable primitive. Do not make the agent rediscover basic batching, symmetry, validation, or rollback in every run.</p></li><li><p><strong>Where does taste live?</strong></p><p>Write down the preferences, order of operations, quality thresholds, and exclusions that define a good outcome. Keep them close to the tools so they guide work instead of becoming a forgotten document.</p></li><li><p><strong>How will failure become visible?</strong></p><p>A tool call succeeding is not the same as the task succeeding. Decide what evidence the system needs before it reports completion.</p></li></ol><p>These questions sound less exciting than asking an agent to build a castle.</p><p>They are also the questions that survive after the demo ends.</p><h2>What I want to learn next</h2><p>I do not think the lesson is that builders should stop learning how software works.</p><p>I think it is the opposite.</p><p>When an agent can write the local implementation, the surrounding system becomes easier to ignore and more important to understand. Permissions, state, interfaces, costs, observability, and evaluation stop being background details. They become the work that makes an agent useful in the real world.</p><p>The builder of the next few years may write fewer lines of application logic by hand.</p><p>But they will need a sharper eye for the world they are creating around the model.</p><p>The best agent systems will not be the ones with the longest tool lists.</p><p>They will be the ones where a human can point to every primitive, every boundary, and every quality rule and say: this exists for a reason.</p>]]></content:encoded></item><item><title><![CDATA[The AWS Traffic Map That Finally Made VPC Networking Click]]></title><description><![CDATA[A practical map for tracing one browser request through AWS, understanding the controls around it, and finding the layer that actually failed.]]></description><link>https://www.rateb.cc/p/aws-traffic-map-vpc-networking</link><guid isPermaLink="false">https://www.rateb.cc/p/aws-traffic-map-vpc-networking</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Wed, 09 Sep 2026 07:01:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/da7a5bc2-925b-47af-b427-1311f4068a0a_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xbZ3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xbZ3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xbZ3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xbZ3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xbZ3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xbZ3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xbZ3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xbZ3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xbZ3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xbZ3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d24276a-a0e1-41cd-82d8-c9e4d3ccd96e_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A practical map for tracing one browser request through AWS, understanding the controls around it, and finding the layer that actually failed.</em></p><p>A web server can be running perfectly and still be unreachable.</p><p>That is the first lesson hidden inside many AWS labs. You can install <code>httpd</code>, start the service, open port 80 in a security group, paste a public IP address into a browser, and see nothing. The natural reaction is to keep changing settings until the page appears.</p><p>That is how beginners lose hours.</p><p>The more useful habit is to stop seeing AWS networking as a pile of settings. Treat it as a path. A browser request has to make it through a series of decisions before an Amazon Linux web server can answer it. Each decision has a different job. Each can fail for a different reason. And each leaves a different clue.</p><p>This guide is the map I wish every early cloud learner had before touching an EC2 networking lab.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uPlj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uPlj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uPlj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uPlj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uPlj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uPlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg" width="728" height="406.3255813953488" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1536,&quot;width&quot;:2752,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;AWS cloud request-flow reference diagram&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AWS cloud request-flow reference diagram" title="AWS cloud request-flow reference diagram" srcset="https://substackcdn.com/image/fetch/$s_!uPlj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uPlj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uPlj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uPlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d18e464-f7bf-479c-9fc3-cde0bf4ddb26_2752x1536.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The diagram: an orientation layer, not a literal packet trace</h2><p><em>The supplied AWS map is the visual anchor for this guide. Read the centre from left to right, then use the side panels as a troubleshooting index. The written guide expands the parts that must not be learned as icons alone.</em></p><p>The diagram is valuable because it puts the major questions in one frame: where traffic is trying to go, which layer can reject it, and whether the operating system is actually ready to answer. It is deliberately simplified, though. Treat the orange elements as <strong>decision layers</strong>, not as a set of physical boxes every packet literally visits in that screen order.</p><p>Four caveats keep the picture technically useful:</p><ul><li><p>A public production endpoint often includes DNS, a CDN, AWS WAF, and an Application or Network Load Balancer before traffic reaches a workload. The diagram uses direct public EC2 access because it is the smallest useful learning topology.</p></li><li><p>A route table is not a firewall gate. It selects the next hop for a destination; it does not allow TCP port 80.</p></li><li><p>A subnet is public because its route table has a path to an Internet Gateway. A public IPv4 address on the instance is also required for direct IPv4 internet communication, but an address alone does not make the subnet public.</p></li><li><p>The return journey matters. Security Groups are stateful, so a response to an allowed flow is permitted automatically. Custom Network ACLs are stateless, so their outbound rules must independently allow the response.</p></li></ul><p>The small text inside the image should not carry the lesson by itself, especially on a phone. Use it as the map. Use the sections below as the explanation and the verification method.</p><div><hr></div><h2>First, picture the request as a journey</h2><p>Imagine a browser requesting <code>http://&lt;public-ip&gt;</code>. The request does not jump from your laptop straight into <code>httpd</code>. For a public IPv4 EC2 workload, the useful mental model is:</p><pre><code>Browser
  &#8594; Internet
  &#8594; Internet Gateway
  &#8594; Route table and public subnet
  &#8594; Network ACL
  &#8594; Security group
  &#8594; EC2 network interface
  &#8594; Amazon Linux
  &#8594; Web server listening on port 80</code></pre><p>The reply has to make the return journey too.</p><p>That last sentence matters. A successful inbound request is not the same as a successful connection. The server must be able to send a response, and the network controls on the return path must permit it.</p><p>The five pillars below turn that one line into a working AWS model.</p><div><hr></div><h2>Pillar 1: The request journey is a sequence of jobs</h2><h3>Step zero: distinguish name resolution from the network path</h3><p>The diagram begins at &#8220;Browser Request.&#8221; In a real web visit, the browser normally resolves a DNS name before it can open a TCP connection. If DNS returns the wrong record, has not propagated, or points at an old load balancer, the later VPC layers may be perfectly healthy and the browser will still fail to reach the intended workload.</p><p>That is why a useful first split is:</p><p>| Symptom | First question | | --- | --- | | The hostname does not resolve | Is DNS returning the intended record? | | The hostname resolves but the connection times out | Does a network path and policy permit the connection? | | The TCP connection opens but HTTP returns an error | Is the listener, reverse proxy, or application healthy? |</p><p>Using <code>http://&lt;public-ip&gt;</code> in an early lab intentionally removes DNS from the first exercise. That does not make DNS unimportant; it lets you learn the VPC path without mixing two different problem classes.</p><h3>1. The Internet Gateway is the VPC&#8217;s internet edge</h3><p>An Internet Gateway, or IGW, attaches to a VPC. It is not a firewall rule and it is not an IP address. It is the VPC component that makes a route to the public internet possible.</p><p>For IPv4, an EC2 instance also needs a public IPv4 address or an Elastic IP, plus a route from its subnet to the IGW. AWS documents that the instance itself is aware of its private address inside the VPC; the IGW performs the logical one-to-one network address translation between the instance&#8217;s private IPv4 address and its public address.</p><p>That gives us a practical definition of a <strong>public subnet</strong>:</p><blockquote><p>A subnet is public when its associated route table has a direct route to an Internet Gateway.</p></blockquote><p>A private subnet is not &#8220;a subnet with no public IP by definition.&#8221; Its important property is that it does <strong>not</strong> have a direct route to an IGW. A private workload may need outbound internet access for updates or package downloads, but it should use a NAT device for that outbound path rather than accept unsolicited inbound connections from the internet.</p><h3>2. The route table is a map, not a gate</h3><p>A route table answers a direction question:</p><blockquote><p>&#8220;Where should traffic for this destination go next?&#8221;</p></blockquote><p>For a basic public IPv4 subnet, the familiar default route is:</p><pre><code>Destination: 0.0.0.0/0
Target:      igw-...</code></pre><p>This does <strong>not</strong> mean &#8220;allow all traffic.&#8221; It means traffic with a destination not covered by a more specific route should be sent toward the Internet Gateway. The firewall-like decisions come later.</p><p>This distinction removes one of the most common AWS confusions. A route table can make a destination reachable in principle. It cannot open TCP port 80. It cannot decide whether a user may call <code>DescribeInstances</code>. It cannot prove that <code>httpd</code> is alive.</p><h3>Which route table actually applies?</h3><p>A VPC has a main route table, but a subnet can be explicitly associated with another route table. When a connection fails, looking at a route table that exists somewhere in the VPC is not enough. Verify the association for <strong>the subnet that contains the workload&#8217;s network interface</strong>.</p><p>Then verify route selection. AWS uses the most specific matching route, often called the <strong>longest prefix match</strong>. A route for <code>10.0.0.0/16</code> is more specific than <code>0.0.0.0/0</code>, so traffic for an internal <code>10.0.x.x</code> address follows the internal route rather than the internet default route. That is normal and desirable.</p><p>For a browser reaching a public IPv4 address, the simplified public-subnet requirement is still familiar:</p><pre><code>Destination: 0.0.0.0/0
Target:      Internet Gateway</code></pre><p>But the real troubleshooting question is more precise: <strong>does the workload&#8217;s subnet have the intended associated route table, and does that table choose the intended next hop for this destination?</strong></p><h3>Do not confuse public addressing with public architecture</h3><p>A direct public IPv4 EC2 instance is a good learning lab because every layer is visible. It is rarely the final shape of a production web tier. A more typical public path is browser, DNS, optional CDN/WAF, load balancer, then private application targets. The important mental model survives the topology change: every hop still needs a route, a policy decision, and a healthy receiver. What changes is the number of hops and the security-group relationships between them.</p><h3>3. The subnet is the local network boundary</h3><p>A VPC contains subnets. Every subnet lives entirely inside exactly one Availability Zone. It cannot span Availability Zones.</p><p>The useful hierarchy to remember is:</p><pre><code>Region
  VPC
    Availability Zone
      Subnet
        Network interface / EC2 instance</code></pre><p>That is a location model, not a security stack. It tells you where the workload&#8217;s network interface lives. The route table, NACL, and security group decide how that interface may communicate.</p><h3>4. The final application must be ready</h3><p>Even a correct VPC configuration cannot make a stopped service respond.</p><p>For an Amazon Linux Apache lab, the host-level checks are simple:</p><pre><code>sudo systemctl status httpd
sudo ss -tlnp | grep ':80'
curl -I http://localhost</code></pre><p>These commands answer different questions:</p><ul><li><p>Is the service process healthy?</p></li><li><p>Is anything listening on TCP port 80?</p></li><li><p>Can the local machine receive an HTTP response without involving the network path?</p></li></ul><p>If <code>curl -I http://localhost</code> fails, do not start by rewriting a security group. The problem is on the host.</p><div><hr></div><h2>Pillar 2: AWS uses layered network security on purpose</h2><p>The two controls beginners most often merge into one imaginary &#8220;AWS firewall&#8221; are Network ACLs and Security Groups. They overlap in the sense that both can affect traffic. They do not do the same job.</p><h3>Network ACLs: the subnet-level policy</h3><p>A Network ACL, or NACL, is associated with a subnet. It applies to traffic entering and leaving that subnet.</p><p>NACLs have several traits worth memorising:</p><p>| NACL property | Why it matters | | --- | --- | | <strong>Subnet-level</strong> | It can affect every workload in its associated subnet. | | <strong>Stateless</strong> | Inbound permission does not automatically create return-path permission. | | <strong>Allow and deny rules</strong> | You can explicitly block matching traffic. | | <strong>Ordered evaluation</strong> | AWS checks the lowest rule number first and stops at the first matching rule. |</p><p>A subnet must be associated with one NACL. If you do not explicitly associate a custom NACL, AWS associates the subnet with the default NACL.</p><h3>Security Groups: the workload-level policy</h3><p>A Security Group is associated with network interfaces used by an EC2 instance or other resource. For early learning, &#8220;instance-level firewall&#8221; is a useful simplification, but the precise mental model is interface-level policy.</p><p>Security Groups are:</p><p>| Security Group property | Why it matters | | --- | --- | | <strong>Stateful</strong> | Replies to allowed traffic are automatically allowed back. | | <strong>Allow-only</strong> | There are no deny rules. You allow the traffic you need and leave the rest unapproved. | | <strong>All rules evaluated</strong> | AWS evaluates the applicable rules rather than stopping at a first matching rule number. | | <strong>Composable</strong> | Multiple security groups can be associated with one resource. |</p><p>A simple web-server rule might allow inbound TCP port 80 from <code>0.0.0.0/0</code> for a deliberately public demonstration. That can be valid for a public web endpoint. It is not a good default for SSH. AWS explicitly recommends restricting SSH access on port 22 to the specific IP ranges that need it.</p><h3>The NACL return-traffic trap</h3><p>This is the detail that turns a diagram into operational knowledge.</p><p>A Security Group is stateful. If it allows an inbound HTTP request to your instance, it allows the matching response to leave even if you did not write a separate outbound reply rule.</p><p>A NACL is stateless. If its inbound rules allow a client&#8217;s HTTP request, its outbound rules still need to allow the response. A NACL does not remember that the inbound packet was permitted.</p><p>That means a broken connection can look like this:</p><ol><li><p>The browser sends an HTTP request.</p></li><li><p>The route table directs traffic correctly.</p></li><li><p>The NACL inbound rule allows TCP port 80.</p></li><li><p>The Security Group allows TCP port 80.</p></li><li><p><code>httpd</code> receives the request and prepares a response.</p></li><li><p>The outbound NACL rejects the return traffic because no matching outbound rule permits it.</p></li><li><p>The browser hangs or times out.</p></li></ol><p>The lesson is not &#8220;always use a wide ephemeral-port range.&#8221; Exact ranges depend on the client and design. The lesson is: <strong>when you use a custom NACL, reason about both directions.</strong></p><p>For many basic EC2 environments, Security Groups are the primary workload control. NACLs add a broader subnet boundary when that extra layer is actually useful. They are not automatically &#8220;more secure&#8221; just because they are another service to configure.</p><h3>Why return traffic involves more than port 80</h3><p>HTTP is an application protocol carried over TCP. A browser normally opens a connection from a temporary client-side source port to destination port 80 or 443. The server replies from port 80 or 443 back to that temporary client port.</p><p>That is why a custom NACL needs to be designed in both directions. An inbound rule that permits destination port 80 does not by itself describe the outbound response, whose destination is the client&#8217;s ephemeral source port. The exact ephemeral range depends on the client operating system and your architecture, so copying a random range from a tutorial is not a substitute for understanding the flow.</p><p>The practical sequence is:</p><ol><li><p>Identify the initiator and the service port.</p></li><li><p>Identify the reply direction and the initiator&#8217;s temporary source port range.</p></li><li><p>Write and review NACL rules for both legs.</p></li><li><p>Test the full connection, not merely whether the inbound rule exists.</p></li></ol><p>Security Group statefulness makes the normal response flow less manual, but it does not mean &#8220;all outbound traffic is automatically safe.&#8221; Outbound Security Group rules still control <strong>new flows initiated by the workload</strong>. A package manager downloading updates, an application calling a third-party API, and a server replying to an allowed browser connection are different cases.</p><h3>Prefer intent-based Security Group relationships in multi-tier designs</h3><p>CIDR rules are sometimes correct. A public load balancer may need to allow traffic from the internet. But inside a VPC, a Security Group can often reference another Security Group. For example, an application-tier Security Group can allow TCP 8080 <strong>from the load-balancer Security Group</strong>, rather than from a broad IP range.</p><p>That rule expresses architecture rather than a fragile address list: only interfaces carrying the load-balancer role may initiate that application flow. It is one reason production designs can be safer and easier to reason about than a single public EC2 instance, even though they contain more components.</p><div><hr></div><h2>Pillar 3: Identity, infrastructure, and responsibility are different layers</h2><p>Cloud security becomes much clearer when you ask two separate questions.</p><ol><li><p><strong>Who is allowed to perform an AWS action?</strong></p></li><li><p><strong>What network traffic is allowed to reach a workload?</strong></p></li></ol><p>IAM answers the first question. Network controls answer the second.</p><h3>IAM is about authority</h3><p>AWS Identity and Access Management controls permissions to AWS APIs and resources. It can decide whether a principal may start an instance, view a bucket, create a security group, or read an object.</p><p>IAM does not listen on TCP port 22. It does not decide whether an incoming browser request can reach an EC2 network interface.</p><h3>Network controls are about reachability</h3><p>Route tables, NACLs, Security Groups, public IP configuration, and host firewalls decide whether traffic can take a path to the workload and whether it may cross the relevant policy boundaries.</p><p>A useful distinction:</p><p>| Question | Primary control family | | --- | --- | | Can this user create or stop an EC2 instance? | IAM | | Can this IP address connect to TCP 22? | Security Group, possibly NACL, then host firewall | | Can internet-bound traffic leave this subnet? | Route table and IGW or NAT design | | Is Apache actively answering on port 80? | Operating system and application |</p><h3>Shared responsibility is a working boundary, not a slogan</h3><p>AWS describes its model as <strong>security of the cloud</strong> and <strong>security in the cloud</strong>.</p><p>AWS is responsible for the physical infrastructure and the services it provides. The customer&#8217;s responsibility depends on the service and its configuration. With an EC2 workload, you still own important decisions: IAM permissions, network configuration, operating-system patching, application configuration, data handling, and who can reach the server.</p><p>The useful mindset is not &#8220;AWS will secure it&#8221; or &#8220;I must secure everything.&#8221; It is:</p><blockquote><p>AWS secures the underlying cloud. I must understand and operate the parts I configure inside it.</p></blockquote><p>That mindset naturally leads to verification. A rule exists. Is it attached to the right interface? A route exists. Is the subnet actually associated with that route table? The service is installed. Is it running and listening?</p><div><hr></div><h2>Pillar 4: The anti-confusion map</h2><p>A fast way to learn AWS is to stop asking what a service is called and start asking what job it performs.</p><h3>Route table vs firewall</h3><ul><li><p><strong>Route table:</strong> chooses a next hop for a destination.</p></li><li><p><strong>Firewall-like policy:</strong> permits or rejects traffic.</p></li></ul><p>A route can be correct while the Security Group blocks the connection. A Security Group can allow port 80 while no route leads from the internet to the subnet.</p><h3>Internet Gateway vs NAT Gateway</h3><ul><li><p><strong>Internet Gateway:</strong> enables direct internet connectivity for workloads in a public subnet when routing and public addressing are configured.</p></li><li><p><strong>NAT Gateway:</strong> gives workloads in a private subnet a way to initiate outbound IPv4 connections without making them directly reachable for unsolicited inbound internet connections.</p></li></ul><p>A NAT Gateway is not an inbound door for a private web server.</p><h3>CloudWatch vs CloudTrail</h3><ul><li><p><strong>Amazon CloudWatch:</strong> operational visibility. Think metrics, logs, alarms, and the question &#8220;is the system healthy or behaving as expected?&#8221;</p></li><li><p><strong>AWS CloudTrail:</strong> API activity and audit history. Think &#8220;who called what API, when, and from where?&#8221;</p></li></ul><p>They can work together, but they answer different questions. Monitoring an unhealthy server is not the same as auditing a configuration change.</p><h3>S3 vs EBS</h3><ul><li><p><strong>Amazon S3:</strong> object storage. You work with objects in buckets through APIs and URLs.</p></li><li><p><strong>Amazon EBS:</strong> durable block storage attached to EC2, used like a disk device after attachment and filesystem setup.</p></li></ul><p>EBS is appropriate for an EC2 system disk, databases, and frequently updated block storage. EBS volumes persist independently of the running life of the instance and must be in the same Availability Zone as the EC2 instance they attach to.</p><p>S3 is not &#8220;an EBS drive in the cloud.&#8221; It is a different storage model with different access patterns, durability design, and operational responsibilities.</p><h3>Linux permissions vs IAM permissions</h3><p>IAM can grant permission to call AWS APIs. Linux file permissions determine whether a local process or user on the instance can read, write, or execute a file.</p><p>They are separate systems. Giving an IAM role S3 permissions does not make a local file readable by every Linux user. Changing <code>chmod</code> does not grant an IAM principal access to a bucket.</p><div><hr></div><h2>Pillar 5: Infrastructure literacy is the ability to debug a path</h2><p>The point of memorising AWS terms is not to pass a vocabulary test. It is to make the next failure smaller.</p><p>When a public EC2 web server is unreachable, use this order.</p><h3>Step 1: Test the network path</h3><p>Ask whether a path exists at all.</p><ul><li><p>Is the IGW attached to the VPC?</p></li><li><p>Is the instance subnet associated with a route table that points the intended internet-bound traffic to the IGW?</p></li><li><p>Does the instance have a public IPv4 address or Elastic IP for IPv4 internet communication?</p></li><li><p>Is the instance in the intended subnet and VPC?</p></li></ul><p>Do not change a Security Group until the path itself is plausible.</p><h3>Step 2: Test the traffic policy</h3><p>Now ask which policy may be rejecting the packet.</p><ul><li><p>Does the subnet&#8217;s NACL allow the inbound traffic?</p></li><li><p>Does its outbound NACL allow the response?</p></li><li><p>Does the Security Group allow the inbound protocol, port, and source?</p></li><li><p>Is there an operating-system firewall rule that blocks the service locally?</p></li></ul><p>For an HTTP demo, be precise: protocol TCP, destination port 80, and the right source range.</p><h3>Step 3: Test the host state</h3><p>Only after network path and policy make sense should you troubleshoot the machine.</p><pre><code>sudo systemctl status httpd
sudo systemctl enable httpd
sudo ss -tlnp | grep ':80'
curl -I http://localhost</code></pre><p>If the local test works but the public request fails, move back outward one layer. If the local test fails, fix the service before touching the VPC.</p><h3>Step 4: Gather evidence instead of reopening every rule</h3><p>A good troubleshooting loop replaces guesses with evidence. AWS gives you different evidence sources because the layers are different:</p><p>| Question | Evidence source | What it can tell you | | --- | --- | --- | | Did a control-plane change happen? | CloudTrail | Which identity called an AWS API, such as an EC2, VPC, or IAM API, and when. | | Is the workload healthy over time? | CloudWatch metrics, logs, and alarms | CPU, instance/application logs, health signals, and operational trends. | | Did IP traffic reach an ENI, subnet, or VPC boundary and get accepted or rejected? | VPC Flow Logs | Source/destination addresses, ports, protocol, action, and the relevant network interface context. | | Is the local listener or application failing? | System logs and host commands | Whether the service is running, listening, and returning a local response. |</p><p>VPC Flow Logs are especially useful once the topology contains more than one tier. They record IP traffic metadata for a network interface, subnet, or VPC. They do <strong>not</strong> replace application logs and they do not automatically explain every possible application failure, but an <code>ACCEPT</code> or <code>REJECT</code> record can narrow the network question dramatically.</p><p>For example, a rejected flow involving the expected ENI, source address, destination port, and protocol suggests the request is being stopped before the application can answer. An accepted flow does not prove the website is healthy; it tells you the flow was not rejected at the logged network layer. Continue inward to the listener and application response.</p><h3>The request-trace worksheet</h3><p>For any failed connection, write down a compact trace rather than mentally juggling settings:</p><p>| Layer | What you record | Healthy signal | Typical failure | | --- | --- | --- | --- | | Name | DNS name and returned address | Correct target resolves | Stale, absent, or wrong record | | Addressing | Public IP/EIP or private target | Address matches intended topology | No public address for direct IPv4 path | | Route | Subnet, associated route table, matching next hop | Intended route selected | Wrong association or no viable next hop | | Subnet policy | NACL inbound and outbound rules | Both legs permitted | Return flow blocked by stateless policy | | Interface policy | Attached Security Groups and exact rule | Correct source, protocol, and port allowed | Missing/too-narrow inbound rule | | Host | Listener, local firewall, service logs | Local curl succeeds | Service stopped, wrong bind address, app error | | Application | HTTP status and access/error logs | Expected response code | Reverse proxy, virtual host, or application failure |</p><p>This is the operational version of the diagram. Instead of saying &#8220;networking is broken,&#8221; you can say which layer has evidence, which layer has not been verified, and which test should happen next.</p><h3>A small addressing fact that prevents subnet mistakes</h3><p>AWS reserves five IPv4 addresses in every subnet: the first four and the last address. In <code>10.0.0.0/24</code>, that includes the network address, the VPC router address, the DNS-related reserved address, one address reserved for future use, and the final address.</p><p>That is why a <code>/24</code> does not give you 256 assignable EC2 addresses.</p><div><hr></div><h2>The practice that turns this into skill</h2><p>Take one disposable EC2 web-server lab and trace the request on paper before changing anything.</p><ol><li><p>Write the instance&#8217;s subnet and Availability Zone.</p></li><li><p>Find the route table associated with that subnet.</p></li><li><p>Identify the route that makes it public or private.</p></li><li><p>Record the NACL associated with the subnet and inspect inbound <strong>and</strong> outbound rules.</p></li><li><p>Record the Security Group attached to the instance network interface.</p></li><li><p>Verify the listener locally with <code>curl -I http://localhost</code>.</p></li><li><p>Make one safe change at a time, then test again.</p></li></ol><p>The outcome you want is not simply a working browser page. It is the ability to explain why it works.</p><p>Once that explanation is clear, AWS stops being a console full of magical checkboxes. It becomes an environment where each layer has a job, each failure has a location, and each fix can be verified.</p><div><hr></div><h2>Official AWS references</h2><ul><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html">Internet gateway basics</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/infrastructure-security.html#VPC_Security_Comparison">Compare security groups and network ACLs</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html">Network ACL basics</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html">Security group basics</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html">Security group referencing</a></p></li><li><p><a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html">Security group connection tracking</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/route-tables-priority.html">Route priority and longest prefix match</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html">Subnet basics</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html">Subnet sizing for IPv4</a></p></li><li><p><a href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs-records-examples.html">VPC Flow Log records</a></p></li><li><p><a href="https://docs.aws.amazon.com/cdk/v2/guide/security.html">AWS Shared Responsibility Model</a></p></li><li><p><a href="https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html">Amazon EBS volumes</a></p></li><li><p><a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html">What is AWS CloudTrail?</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Learn the Layer Beneath the AI Hype]]></title><description><![CDATA[When AI headlines get loud, the layer worth learning is how systems run, where they fail, and how to take responsibility for them.]]></description><link>https://www.rateb.cc/p/the-ground-beneath-the-ai-boom</link><guid isPermaLink="false">https://www.rateb.cc/p/the-ground-beneath-the-ai-boom</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Wed, 02 Sep 2026 08:41:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a8303609-98be-4e6d-b1bc-ff35177ead58_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QMjI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QMjI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QMjI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QMjI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QMjI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QMjI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QMjI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QMjI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QMjI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QMjI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cb05306-a83d-455b-9436-0d8c79d1b4b2_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The easiest way to lose a year is to let a headline make your decisions for you.</p><p>One week you read that AI will erase entry-level work. The next week you read that every company is rebuilding around AI. Then someone tells you cloud is crowded, someone else says cloud is the foundation of everything, and after a while the only honest feeling left is paralysis.</p><p>I know that feeling because I am learning AWS while the loudest conversation in technology is whether people like me will be needed at all.</p><p>It would be comforting to find one clean answer. Cloud is safe. AI will replace everyone. Certifications are enough. There are no jobs. There are unlimited jobs.</p><p>None of those sentences is a useful map.</p><p>The job market is real, but it is not a prophecy machine. Companies cut people for many reasons. They also hire for many reasons. A headline can tell you that something happened. It cannot tell you what you should become.</p><p>The question I keep coming back to is simpler:</p><blockquote><p>What can I learn now that will still make me useful if the tools get much better?</p></blockquote><p>For me, the answer is not a narrow job title. It is the infrastructure layer.</p><p>Not because infrastructure is glamorous. It usually is not.</p><p>Because every exciting product eventually becomes a system someone has to run.</p><h2>AI is impressive. Production is still unforgiving.</h2><p>An AI assistant can write Terraform, draft an IAM policy, explain a VPC, generate a Dockerfile, or suggest a CI/CD pipeline in seconds. That is real leverage. It has already changed how people learn and build.</p><p>But a plausible answer is not the same as a safe system.</p><p>If an AI-generated policy gives a role more access than it needs, the problem is not that the policy was written quickly. The problem is that somebody trusted it without understanding its blast radius.</p><p>If a generated deployment exposes a service to the internet, leaks a secret, sends data to the wrong place, or quietly creates costs that grow every week, the business does not care that the first draft was fast.</p><p>The business cares who can explain what happened, fix it, and prevent it from happening again.</p><p>That is the part of technical work I do not think becomes less important when AI gets better.</p><p>Code may become cheaper to produce. Configuration may become easier to draft. But the work around the output becomes more serious:</p><ul><li><p>What are we actually trying to build?</p></li><li><p>Which data is sensitive?</p></li><li><p>Who should have access?</p></li><li><p>What fails first?</p></li><li><p>What will this cost at ten times the current usage?</p></li><li><p>How will we know whether the system is healthy?</p></li><li><p>Who is accountable when the answer is wrong?</p></li></ul><p>Those are not typing questions. They are judgment questions.</p><p>And judgment is difficult to fake because it sits on top of understanding.</p><h2>The cloud is the ground beneath the product</h2><p>AI can feel like the product because it is the part people touch. You ask a question. You get an answer. You see a demo. It feels immediate.</p><p>But the useful question is what has to be true before that answer reaches you.</p><p>There has to be compute. Storage. Networking. Identity and access. Observability. Security boundaries. Data movement. Cost controls. Recovery plans.</p><p>That is the cloud and infrastructure layer.</p><p>It is not only relevant to AI. It is relevant whenever an organization depends on software that has to be available, secure, fast enough, and affordable enough to keep using.</p><p>This does not mean every cloud learner needs to become an expert in every AWS service. That is another trap. AWS has too many services for a beginner to hold in their head as a list.</p><p>What matters first is a map.</p><p>A virtual machine is compute you can configure. Object storage is data you can store and control access to. A virtual network is the boundary and path through which systems communicate. Identity decides who can do what. Monitoring helps you notice when reality differs from your expectation.</p><p>When those ideas become clear, service names start to have a job. Until then, they are just vocabulary.</p><p>This is why I do not see cloud learning as a bet on one vendor or one trend. I see it as learning the language of modern systems.</p><h2>The real divide is ownership</h2><p>The conversation about AI often gets framed as people versus machines.</p><p>I think that frame hides the more useful divide.</p><p>The divide is between people who can use a generated answer and people who can own it.</p><p>Using it is easy. You can paste a prompt into a chat window, get a script, run it, and hope the green check mark means you are done.</p><p>Owning it is different.</p><p>Owning it means you can explain what the script changes. You can identify the permissions it requests. You can test it in a small environment. You can read the logs when it breaks. You can tell a teammate why a tradeoff was made. You can say, "I do not know yet," before something unsafe reaches production.</p><p>That last sentence matters more than it sounds.</p><p>A person who knows their boundary is safer than a person who copies confidently.</p><p>My support and operations background makes this feel familiar. Users rarely experience a system as a collection of elegant diagrams. They experience it when access fails, a workflow stops, a request disappears, or nobody can explain why something changed.</p><p>The person who can move calmly from symptom to system is useful.</p><p>AI can make that person faster. It cannot make responsibility disappear.</p><h2>Do not confuse a certificate with proof</h2><p>I still think certifications can help. They give beginners a curriculum, language, and a reason to learn the basics properly.</p><p>But a certificate is not a substitute for evidence that you can think through a real system.</p><p>The stronger proof is smaller and more demanding:</p><p>Build something.</p><p>For example, deploy a simple application with a clear boundary around it. Keep the data private by default. Use least-privilege access. Add monitoring. Write down the cost assumption. Break one thing deliberately. Recover it. Explain the decisions in plain English.</p><p>That one project teaches more than a polished architecture diagram with no scars on it.</p><p>It also gives you something better than a claim in an interview. It gives you a story:</p><p>"Here is what I built. Here is what surprised me. Here is the risk I found. Here is what I changed. Here is what I would do differently next time."</p><p>That is the language of someone learning to own systems, not someone collecting badges.</p><h2>A five-part standard for learning with AI</h2><p>I am trying to hold myself to a simple standard as I learn cloud and use AI alongside it.</p><h3>1. Understand the layer</h3><p>Before I ask AI to speed something up, I need a plain-English model of the problem. What does a VPC do? What does this policy permit? What is an availability zone protecting me from?</p><h3>2. Build a small version</h3><p>A small lab is where vague knowledge becomes visible. Keep the scope narrow enough that you can observe the parts.</p><h3>3. Explain the tradeoff</h3><p>Every system has a cost. More availability can mean more complexity. More convenience can mean more access. More speed can mean less control. If I cannot explain the tradeoff, I probably do not understand the decision yet.</p><h3>4. Verify the output</h3><p>Read the generated configuration. Check permissions. Check logs. Check the billing screen. Check the documentation. A green check mark is not a security review.</p><h3>5. Document the proof</h3><p>Write what you built, why you chose it, what failed, and what changed. Documentation turns private learning into a visible record of judgment.</p><p>This is not the fastest path to feeling advanced.</p><p>It is the path that makes AI more useful to you instead of making you dependent on it.</p><h2>I am not betting on a forecast</h2><p>I do not know exactly what the cloud job market will look like in two years. Nobody does.</p><p>Maybe AI investment keeps accelerating. Then companies will need people who can build, secure, connect, observe, and operate the systems underneath it.</p><p>Maybe the hype cools down. Companies will still have existing infrastructure, data, costs, permissions, and systems that need care.</p><p>Maybe the titles change. Cloud engineer becomes platform engineer, cloud security engineer, automation engineer, infrastructure engineer, or something we have not named yet.</p><p>The labels can move.</p><p>The underlying work remains recognizable: make systems reliable enough to trust and understandable enough to improve.</p><p>That is the ground beneath the AI boom.</p><p>And it is the ground I am still willing to learn.</p><div><hr></div><h2>Closing reflection</h2><p>The future will not reward people for predicting every tool correctly.</p><p>It will reward people who can stay close enough to reality to tell the difference between a fluent answer and a working system.</p>]]></content:encoded></item><item><title><![CDATA[What an AWS Incident Response Plan Looks Like Before the Incident]]></title><description><![CDATA[A response plan turns a noisy alert into a safer sequence of verification, containment, recovery, and learning.]]></description><link>https://www.rateb.cc/p/an-aws-incident-response-plan-before-the-incident</link><guid isPermaLink="false">https://www.rateb.cc/p/an-aws-incident-response-plan-before-the-incident</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Mon, 31 Aug 2026 07:01:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dc9bd1ae-8724-476f-b835-9d4c050cc982_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vdbn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vdbn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vdbn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vdbn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vdbn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vdbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vdbn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vdbn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vdbn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vdbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef75396a-9ef1-4738-9c71-3df3c975cab9_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A response plan turns a noisy alert into a safer sequence of verification, containment, recovery, and learning.</em></p><p>Most incident response explanations begin at the moment something is already broken.</p><p>An alert fires. A dashboard turns red. A customer cannot reach a service. Someone starts changing settings under pressure.</p><p>The better time to think about incident response is before any of that happens.</p><p>An AWS incident response plan is not a long document that predicts every failure. It is a decision sequence that stops a team from treating every alert as confirmed compromise, every containment action as harmless, and every restored service as proof that the system is healthy again.</p><p>The first step is verification.</p><p>An alarm state means a metric crossed the condition you configured. A GuardDuty finding means a detection system identified a pattern worth triage. An AWS Config rule can say a resource is noncompliant. None of those signals should be ignored. But none of them automatically proves the full story.</p><p>Before acting, identify the smallest claim that can be verified. Which account, Region, resource, identity, and time window are involved? What is the exact alert? What customer or workload impact is observed? Which evidence layer owns the answer?</p><p>Then scope the incident.</p><p>This is the moment to resist broad changes. If one role, one instance, one security group, or one access key is in question, begin there. The point is not to do nothing. The point is to contain the relevant risk without destroying useful evidence or creating a wider outage through panic.</p><p>Containment might mean restricting a security-group rule, isolating a resource, rotating a credential, limiting a route, or pausing an automated action. The right action depends on the observed evidence and the safety of the workload. It should not become a habit of opening every port, deleting every log, or disabling a control just to make a graph look better.</p><p>Recovery is a different job.</p><p>Containment limits spread. Recovery restores an acceptable service state. That distinction becomes important when you bring business continuity and disaster recovery into the conversation.</p><p>A business continuity plan describes how the business continues operating, even in a reduced mode, during disruption. A disaster recovery plan focuses on restoring systems and services after an outage or loss.</p><p>RTO and RPO make those promises concrete.</p><p>Recovery Time Objective is the maximum tolerable downtime. Recovery Point Objective is the maximum acceptable data-loss window. They are not AWS settings you choose inside a console. They are business targets that drive architecture, backup frequency, replication, operational practice, and cost.</p><p>A team that says it can tolerate one hour of data loss is making a different design decision from a team that can tolerate one day. A system that must return in minutes costs more to build and operate than a system that can recover over a longer window. The point is not to choose the smallest number. The point is to choose a number the business understands and the engineering system can actually support.</p><p>After containment and recovery comes the step that makes the plan compound: analysis.</p><p>What changed? Which control worked? Which alert was too noisy? What evidence was missing? Which action was harder than it should have been? What needs to be practiced before the next incident?</p><p>That is where incident response stops being a dramatic moment and becomes an engineering feedback loop.</p><p>For someone learning AWS, you do not need a large enterprise environment to practice the mindset. Take a sandbox architecture and write a one-page response plan. Define one alert, one verification source, one owner, one safe containment action, one recovery target, and one re-check. Then add the sentence that many plans leave out: what does this evidence not prove?</p><p>A calm response is rarely the result of calm personalities. It is the result of decisions made before urgency arrives.</p><h2>Try this in a sandbox</h2><p>Write a one-page response card for a sandbox event: high CPU, an unexpected public security-group rule, or a failed web endpoint. Include the alert, scope fields, first evidence, a reversible containment action, an RTO/RPO conversation point, and a final verification test.</p><h2>Continue the sequence</h2><p>Start by tracing one request or one security claim end to end. The goal is not to collect more AWS screens. It is to learn what each one can prove before you change the system.</p>]]></content:encoded></item><item><title><![CDATA[AWS Security Is an Evidence Loop, Not a List of Services]]></title><description><![CDATA[Match each security claim to the service that can prove it: Config for configuration state, CloudTrail for who acted, GuardDuty for signals.]]></description><link>https://www.rateb.cc/p/aws-security-is-an-evidence-loop-not-a-list-of-services</link><guid isPermaLink="false">https://www.rateb.cc/p/aws-security-is-an-evidence-loop-not-a-list-of-services</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Thu, 20 Aug 2026 07:01:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7f42f355-6485-4b93-98e3-c6db1d24aa13_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y29_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y29_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y29_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y29_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y29_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y29_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y29_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y29_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y29_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y29_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d49123-79cf-4e72-9178-b7314ba32e47_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>A practical way to connect intended state, audit evidence, detection, response, and verification in AWS.</em></p><p>The first time I started seeing AWS security services together, I made the usual beginner mistake. I treated each service like a separate item to memorize.</p><p>CloudTrail records activity. GuardDuty detects threats. AWS Config checks configuration. Patch Manager checks patch state.</p><p>That is true, but it is not yet useful.</p><p>A list of services does not tell you what to do when a security screen turns red. It does not tell you which claim the screen can support. And it does not stop you from making the most expensive beginner error in cloud security: treating one signal as proof that the whole system is safe, unsafe, fixed, or compromised.</p><p>The model that finally made these services click for me was an evidence loop.</p><p>You start with an intended state. A private instance should not have a public IP. A public security group should not allow SSH from everywhere. An EBS volume should be encrypted. A managed node should meet the patch baseline assigned to it.</p><p>AWS Config can help record the configuration of supported resources, retain history, and evaluate rules. If a rule flags a resource as noncompliant, that tells you something narrow and valuable: the configuration did not meet the condition of that rule at the time it was evaluated.</p><p>It does not tell you who made the change. It does not tell you why they made it. It does not prove malicious intent.</p><p>That is where CloudTrail belongs. CloudTrail records AWS account activity such as actions taken in the console, CLI, SDKs, and APIs. When you need to understand an API action, it can help you ask a different question: which identity or service took which recorded action, when, and against which resource?</p><p>The distinction matters. Config answers a configuration question. CloudTrail answers an activity and attribution question. They reinforce each other, but neither should be promoted into a story it cannot prove.</p><p>GuardDuty adds another layer. A finding is not a verdict. It is a signal that deserves triage. The job is to scope the finding, check the affected resource and time window, look for corroborating evidence, and decide whether containment is needed. A detection system is useful because it narrows attention. It does not remove the need for judgment.</p><p>Then comes the part that is easy to skip when learning services in isolation: response and re-check.</p><p>A safe sequence is simple enough to remember:</p><ol><li><p>Name the intended state.</p></li><li><p>Verify the signal before treating it as an incident.</p></li><li><p>Inspect the evidence layer that owns the claim.</p></li><li><p>Scope the smallest affected identity, resource, Region, and time window.</p></li><li><p>Contain only the relevant path or permission where possible.</p></li><li><p>Recover without quietly weakening the control that was supposed to protect the system.</p></li><li><p>Re-check the resulting state against the original baseline.</p></li></ol><p>This is also why a patch dashboard should not be read like a general health certificate. Patch compliance is evidence relative to a baseline. A CloudTrail event is evidence of a recorded AWS action. A GuardDuty finding is evidence of a signal. A Config evaluation is evidence of configuration against a rule.</p><p>Each is useful precisely because it is narrower than the whole story.</p><p>For someone learning cloud engineering, that is the habit worth building early. Do not ask which security service is best. Ask what question you are trying to answer, what evidence can answer only that question, and what you still need to verify before changing the system.</p><p>The durable skill is not collecting service names. It is learning how to move from an intended state to evidence, from evidence to a scoped decision, and from a change back to proof.</p><h2>Try this in a sandbox</h2><p>Pick one resource in a sandbox. Write one expected state, one piece of configuration evidence, one activity record you would inspect, one signal that would need triage, and one re-check that would prove a scoped fix.</p><h2>Continue the sequence</h2><p>Start by tracing one request or one security claim end to end. The goal is not to collect more AWS screens. It is to learn what each one can prove before you change the system.</p>]]></content:encoded></item><item><title><![CDATA[In Your First AWS Week, Learn Responsibility Before Service Names]]></title><description><![CDATA[My first week learning AWS reminded me that cloud is not only about services. It is about infrastructure, responsibility, verification, and learning how to touch powerful systems carefully.]]></description><link>https://www.rateb.cc/p/cloud-is-not-magic-it-is-responsibility</link><guid isPermaLink="false">https://www.rateb.cc/p/cloud-is-not-magic-it-is-responsibility</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Wed, 19 Aug 2026 05:44:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2c280eaf-21a9-46b5-bab4-924724fac4dc_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gxHz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gxHz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gxHz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gxHz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gxHz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gxHz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gxHz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gxHz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gxHz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gxHz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F138ae88b-0524-4315-820f-4b423c336ad1_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I started my first week in AWS Cloud Computing expecting to learn services.</p><p>I thought the week would be about names like EC2, S3, IAM, VPC, Lambda, and CloudFront. I expected buttons, commands, maybe a few labs, and a growing list of terms to memorize.</p><p>That did happen, but it was not the real lesson.</p><p>The real lesson was more basic and more important:</p><blockquote><p>Cloud is not magic. It is responsibility arranged in layers.</p></blockquote><p>The more I studied the first week, the more I noticed that AWS becomes overwhelming when you look at it as a huge menu of services. But it becomes understandable when you look at it as a map of responsibility.</p><p>Physical machines still exist. Networks still exist. Storage still exists. Security still exists. Cost still exists. Location still matters. Verification still matters.</p><p>AWS does not remove those things.</p><p>AWS gives you a new way to use them.</p><p>And that is why the first beginner cloud lesson is not only technical. It is a mindset shift.</p><p>You are not just learning where to click.</p><p>You are learning how to become safe around infrastructure.</p><div><hr></div><h2>The first mistake is trying to memorize services too early</h2><p>When you are new to AWS, the service names can make you feel behind before you even begin.</p><p>There are compute services, storage services, networking services, security services, monitoring services, database services, migration services, AI services, and pricing models. Every page can open five more pages. Every acronym can lead to another acronym.</p><p>A beginner can easily think the solution is to memorize faster.</p><p>More flashcards. More videos. More AI summaries. More diagrams. More tabs.</p><p>But after the first week, I think that is the wrong starting point.</p><p>The weak map says: memorize more names first and understanding will arrive later.</p><p>The better map starts with responsibility first, then service names.</p><p>Before memorizing services, a beginner needs a better question:</p><p><strong>What responsibility does this part of the cloud handle?</strong></p><p>That better question changes the shape of learning.</p><p>EC2 is not just a service name. It is a way to rent virtual server capacity.</p><p>S3 is not just storage. It is object storage with access, encryption, durability, naming, and cost decisions.</p><p>A Region is not just a label in the Console. It is a geographic boundary that affects latency, availability, compliance, and where resources live.</p><p>A subnet is not just a networking word. It is part of the placement map for resources inside an Availability Zone.</p><p>A security group is not just a configuration screen. It is a firewall decision around what traffic reaches an instance.</p><p>Once you start asking what each layer is responsible for, AWS becomes less like a giant menu and more like a system.</p><div><hr></div><h2>Cloud is still physical</h2><p>The first useful map is this:</p><pre><code><code>physical hardware
virtualization layer
cloud resources
customer applications
</code></code></pre><p>That one map already removes a lot of confusion.</p><p>Cloud does not mean there are no computers.</p><p>It means you are using computers, storage, networking, and security through a different operating model.</p><p>There are still CPUs executing instructions. There is still RAM holding temporary working data. There is still persistent storage. There are still operating systems. There are still servers. There are still data centers with power, cooling, racks, cables, redundancy, and physical security.</p><p>AWS abstracts much of this away, but abstraction is not disappearance.</p><p>This matters because beginners sometimes talk about the cloud as if it is floating above reality.</p><p>But cloud engineering is closer to reality than that.</p><p>A cloud engineer still needs to understand what compute means, what storage means, what a network does, what an operating system controls, and why physical location can affect performance, cost, and reliability.</p><p>The cloud gives you access to those resources without asking you to own the whole physical stack.</p><p>That is the power.</p><p>But it also means the responsibility does not vanish. It moves.</p><div><hr></div><h2>Virtualization is the bridge</h2><p>The second useful idea from Week 1 was virtualization.</p><p>Virtualization is one of those words that sounds abstract until you make it simple.</p><p>A physical machine can be split into isolated virtual environments. Each environment behaves like its own computer, even though it shares underlying physical resources.</p><p>That is the bridge between a physical server and a cloud service like EC2.</p><p>A local VirtualBox machine and an AWS EC2 instance are not the same product, but they share a core idea: a real physical host can support isolated virtual machines.</p><p>This helps explain why EC2 is not &#8220;the cloud.&#8221;</p><p>EC2 is one building block. It gives you a virtual server. You still choose the machine image, instance size, network placement, security group, storage, key pair, and access method.</p><p>The beginner-friendly version is:</p><blockquote><p>EC2 gives you a server-like environment. AWS manages the physical side. You still have decisions to make inside the environment you control.</p></blockquote><p>That small sentence already prepares you for the shared responsibility model.</p><div><hr></div><h2>Location is part of the architecture</h2><p>The third useful map is location.</p><p>Before this week, I could have repeated words like Region and Availability Zone. But repeating a word is not the same as understanding where responsibility lives.</p><p>The simple map is:</p><pre><code><code>Region
VPC
Availability Zone
subnet
EC2 instance
</code></code></pre><p>A Region is a geographic area.</p><p>An Availability Zone is an isolated location inside a Region.</p><p>A VPC is regional.</p><p>A subnet belongs to one Availability Zone.</p><p>An EC2 instance is placed inside this network and location structure.</p><p>This is the kind of beginner map that looks small, but it changes how you read the AWS Console.</p><p>If you switch Regions and a resource disappears, maybe it did not disappear. Maybe you are looking in a different geographic scope.</p><p>If a subnet belongs to one Availability Zone, you cannot treat it like a global container.</p><p>If you design across multiple Availability Zones, you may improve availability, but you may also increase cost or complexity.</p><p>Cloud is not just &#8220;online.&#8221;</p><p>Cloud resources live somewhere.</p><p>And where they live affects how they behave.</p><div><hr></div><h2>More control means more responsibility</h2><p>The shared responsibility model was one of the most important ideas of the week.</p><p>The simple version is:</p><blockquote><p>AWS is responsible for security of the cloud. The customer is responsible for security in the cloud.</p></blockquote><p>That sounds clean, but it becomes more useful when you connect it to control.</p><p>The more control a service gives you, the more responsibility you carry.</p><p>With EC2, you control a lot. You choose the operating system image, instance type, storage, network, security group, access method, and what runs on the server. That means you also carry more responsibility for configuration, patching, access, data, and traffic rules.</p><p>With more managed services, AWS takes on more of the operational burden, but you still do not become responsibility-free. You still decide permissions, data exposure, identity, configuration, and cost behavior.</p><p>This is where cloud learning becomes more serious.</p><p>It is not enough to know which button launches a resource.</p><p>You need to ask:</p><ul><li><p>Who is responsible for this layer?</p></li><li><p>What can I accidentally expose?</p></li><li><p>What will this cost?</p></li><li><p>What permissions does this need?</p></li><li><p>What should be private by default?</p></li><li><p>What must I verify before I trust the result?</p></li></ul><p>That is also why AI can be helpful and dangerous at the same time.</p><p>AI can explain a command, write a policy, summarize a service, or help debug an error. But if you paste secrets into it, copy commands without understanding them, or accept security advice without checking official documentation, you are not learning responsibly.</p><p>In cloud work, verification is not a bonus skill.</p><p>Verification is part of the job.</p><div><hr></div><h2>S3 taught me that access is a decision</h2><p>S3 looks simple at first.</p><p>A bucket. An object. A link.</p><p>But the first hands-on AWS day made the security lesson very concrete: a URL does not automatically mean public access.</p><p>S3 is private by default. That is a feature, not an obstacle.</p><p>A bucket stores objects. Each object has a key. Permissions decide who can read or write. Block Public Access exists because accidental exposure is a real problem. Encryption is now a default baseline for new uploads, but encryption does not replace access control.</p><p>This is a good beginner lesson because it is small enough to understand and serious enough to matter.</p><p>You can copy an object URL and still get <code>AccessDenied</code>.</p><p>That is not AWS being confusing for no reason.</p><p>It is AWS reminding you that access is separate from existence.</p><p>The object can exist.</p><p>The URL can exist.</p><p>The permission can still be denied.</p><p>That is cloud responsibility in one small example.</p><div><hr></div><h2>Cloud is flexible, not automatically cheap</h2><p>Another important Week 1 lesson was cost.</p><p>Cloud is often described as flexible, scalable, and pay-as-you-go. That is true. But beginners can easily translate that into a weaker sentence:</p><p>&#8220;Cloud is cheap.&#8221;</p><p>That is not always true.</p><p>Cloud is flexible. It is not automatically cheap.</p><p>The basic cost drivers are compute, storage, and data transfer.</p><p>The design choices that make a system more available, faster, or more scalable can also change its cost.</p><p>Multi-AZ design can improve availability. CloudFront can reduce latency by serving content from edge locations closer to users. Auto Scaling can add or remove capacity based on demand. Load balancing can spread traffic across instances. CloudWatch can watch metrics and alarms.</p><p>A simple operational loop looks like this:</p><pre><code><code>users
load balancer
EC2 instances
CloudWatch metrics
Auto Scaling decisions
</code></code></pre><p>That loop helped me understand why companies move workloads to AWS.</p><p>It is not only because they want to stop buying servers.</p><p>They want systems that can respond to demand, recover from failure, reach users in different places, and make infrastructure decisions faster.</p><p>But every decision still has a tradeoff.</p><p>That is why pricing and architecture belong together.</p><div><hr></div><h2>A simple Week 1 cloud plan readers can copy</h2><p>If I had to turn this first week into a training plan for another beginner, I would not start with &#8220;learn 20 AWS services.&#8221;</p><p>I would start with this.</p><h3>Day 1: Build your learning environment</h3><p>Set up your tools and one place for your notes.</p><p>Install or verify AWS CLI. Install or verify VS Code. Know why Terraform matters, even if you do not need to master it yet. Create one folder where you keep commands, screenshots, questions, and explanations.</p><p>Your output for the day:</p><ul><li><p>one AWS learning folder;</p></li><li><p>one tool checklist;</p></li><li><p>one rule: do not run cloud commands you cannot explain.</p></li></ul><h3>Day 2: Write your AI-use policy</h3><p>Use AI, but do not let it replace your understanding.</p><p>Use it for hints, explanations, quizzes, and alternative examples. Do not paste secrets, credentials, private links, or sensitive files. Verify commands, security behavior, pricing, and service limits against official documentation or safe tests.</p><p>Your output for the day:</p><pre><code><code>I use AI for support.
I verify technical claims myself.
I do not submit or run work I cannot explain.
</code></code></pre><h3>Day 3: Learn the physical cloud map</h3><p>Before you memorize AWS services, understand what sits underneath them.</p><p>Explain CPU, RAM, storage, operating systems, servers, and data centers in simple words. Then explain virtualization as the bridge between physical hardware and virtual resources.</p><p>Your output for the day:</p><pre><code><code>hardware
virtualization
virtual server
application
</code></code></pre><p>If you can explain that chain, EC2 becomes less mysterious.</p><h3>Day 4: Learn location, scaling, and cost</h3><p>Learn Region, Availability Zone, VPC, subnet, and EC2 placement.</p><p>Then learn the basic scaling story: a load balancer distributes traffic, EC2 instances run the application, CloudWatch watches metrics, and Auto Scaling changes capacity.</p><p>Finally, remember the cost baseline: compute, storage, and data transfer.</p><p>Your output for the day:</p><ul><li><p>one Region to subnet diagram;</p></li><li><p>one scaling loop diagram;</p></li><li><p>one sentence: cloud is flexible, not automatically cheap.</p></li></ul><h3>Day 5: Touch AWS carefully</h3><p>Open the AWS Console and connect the map to real services.</p><p>Notice which Region you are in. Notice where resources live. Learn why S3 is private by default. Learn the decisions behind launching EC2: AMI, instance type, network, security group, storage, key pair, and access method.</p><p>Your output for the day:</p><ul><li><p>one S3 safety checklist;</p></li><li><p>one EC2 launch checklist;</p></li><li><p>one screenshot or short runbook that proves what you did and how you verified it.</p></li></ul><div><hr></div><h2>Closing reflection: the cloud beginner I want to become</h2><p>After Week 1, I do not think the goal is to look like someone who knows every AWS service.</p><p>That would be fake confidence.</p><p>The better goal is smaller and stronger:</p><p>I want to become the kind of beginner who can explain the map, verify the command, respect the cost, protect the data, and understand which layer I am responsible for.</p><p>That is not as flashy as saying &#8220;I know AWS.&#8221;</p><p>But it is more honest.</p><p>And maybe that is the real start of cloud engineering.</p><p>Not memorizing the cloud.</p><p>Learning how to become responsible inside it.</p>]]></content:encoded></item><item><title><![CDATA[A VPC Is Not “Public” Because You Named It Public]]></title><description><![CDATA[Public and private are traffic outcomes created by paths, addresses, policy, and services.]]></description><link>https://www.rateb.cc/p/a-vpc-is-not-public-because-you-named-it-public</link><guid isPermaLink="false">https://www.rateb.cc/p/a-vpc-is-not-public-because-you-named-it-public</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Tue, 18 Aug 2026 07:00:49 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/74d86004-a72a-4922-8596-7d8a574d8b6f_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BfpJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BfpJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BfpJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BfpJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BfpJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BfpJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BfpJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BfpJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BfpJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BfpJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6e35d2c-c0ed-40ad-ac49-51bdf11a4079_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Public and private are traffic outcomes created by paths, addresses, policy, and services.</em></p><p>I used to read VPC diagrams as if the labels did the work.</p><p>Public subnet. Private subnet. Public route table. Private route table.</p><p>The labels are helpful for people. AWS does not route traffic because a box has a reassuring name.</p><p>A subnet becomes public in the useful sense when its associated route table provides a path to an Internet Gateway. But that is only one condition in a longer chain. An EC2 instance that should be reached from the internet also needs a public IPv4 address or Elastic IP, policy that allows the requested traffic, and a service that is actually listening.</p><p>This became much clearer when I built a VPC manually instead of relying only on the wizard.</p><p>The VPC itself is the network boundary. Subnets divide its address range into smaller sections. Route tables tell traffic where to go next. The Internet Gateway provides a path between the VPC and the internet. Security groups and network ACLs filter traffic at different layers. The workload still has to answer the request when traffic reaches it.</p><p>None of those parts can be skipped by calling a subnet public.</p><p>A common failure is the route-table association. A new subnet uses the VPC main route table until you explicitly associate it with another table. You can create a beautiful route table with a default route to an Internet Gateway and still have an unreachable instance if the subnet is using a different table.</p><p>That detail changed how I read every VPC screen. I stopped asking, "Does this route table look right?" I started asking, "Which route table does this subnet actually use?"</p><p>Private does not mean disconnected. It means the workload does not accept direct internet-initiated traffic through a public address. A private EC2 instance can still initiate package downloads or outbound API calls through a NAT Gateway.</p><p>The NAT boundary is where many diagrams become misleading.</p><p>A public NAT Gateway sits in a public subnet and has a route through the Internet Gateway. The private subnet sends its default internet-bound traffic to that NAT Gateway. The NAT handles return traffic for connections initiated from inside.</p><p>That gives you a path like this:</p><p>Private EC2. Private route table. NAT Gateway in a public subnet. Public route table. Internet Gateway. Internet.</p><p>The private EC2 instance does not become public because it can download updates. NAT is not a public front door. It is not a bastion host. It does not give the private instance a public identity that accepts unsolicited inbound SSH.</p><p>This is why I think "public versus private" is a poor place to stop learning. The stronger mental model is reachability.</p><p>For every request, name the source, destination, protocol, next hop, address type, policy layer, and listener. A browser reaching an Apache instance is a different flow from a private instance reaching a package repository. One is inbound and depends on public addressing, route, policy, and a listener. The other is outbound and can travel through NAT without creating direct inbound exposure.</p><p>That distinction matters beyond certification questions. It is how you avoid building a network that is accidentally reachable, or assuming a private workload is broken because it cannot be reached the way a public test server can.</p><p>The next time a VPC diagram looks simple, trace one packet. Do not read the labels. Follow the path.</p><h2>Try this in a sandbox</h2><p>Draw a two-subnet VPC on paper. For one browser-to-web-server request and one private-instance-to-package-repository request, write the route table, next hop, address requirement, policy rule, and final service evidence each flow needs.</p><h2>Continue the sequence</h2><p>Start by tracing one request or one security claim end to end. The goal is not to collect more AWS screens. It is to learn what each one can prove before you change the system.</p>]]></content:encoded></item><item><title><![CDATA[Stop Treating Hermes Like a Smarter Chat Tab]]></title><description><![CDATA[The useful shift is not from bad model to good model. It is from chat window to operating layer.]]></description><link>https://www.rateb.cc/p/hermes-bible</link><guid isPermaLink="false">https://www.rateb.cc/p/hermes-bible</guid><dc:creator><![CDATA[Rateb Slik]]></dc:creator><pubDate>Sun, 09 Aug 2026 09:47:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4da8672e-c23b-4a0d-bf24-261326e93342_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aqwe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aqwe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aqwe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aqwe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aqwe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aqwe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg" width="728" height="382.2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aqwe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aqwe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aqwe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aqwe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a474d36-f704-498b-9758-2c6537de30ac_1200x630.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The trap is thinking the model is the whole system</h2><p>I went through the Hermes Bible and kept noticing the same pattern.</p><p>The interesting part is not only Hermes as a tool.</p><p>The interesting part is what it reveals about AI work.</p><p>Most people still treat an AI agent like a smarter chat tab. They ask a question, get an answer, maybe copy something out, then start over the next day with a slightly better prompt.</p><p>That is useful.</p><p>But it is not the real shift.</p><p>The real shift begins when the agent has a place to stand.</p><p>A terminal.</p><p>A file system.</p><p>A memory layer.</p><p>A set of skills.</p><p>A way to talk to you on Telegram, WhatsApp, Slack, email, or the desktop.</p><p>A schedule.</p><p>A way to call tools.</p><p>A way to delegate work.</p><p>A way to leave receipts.</p><p>That is when AI stops being a conversation and starts becoming an operating layer around your work.</p><h2>Better prompts are not enough</h2><p>For a long time, the obvious move was to write better prompts.</p><p>Be more specific.</p><p>Give more context.</p><p>Ask for a table.</p><p>Ask for a plan.</p><p>Ask for examples.</p><p>That still matters. But it is a thin layer.</p><p>A prompt only describes the work.</p><p>A system can hold the work.</p><p>That distinction matters because most real work does not fit inside one clean message. It stretches across notes, files, tasks, tools, deadlines, open loops, errors, preferences, and half-finished decisions.</p><p>A chat tab forgets that shape unless you keep reloading it by hand.</p><p>A useful agent system starts carrying that shape with you.</p><h2>Hermes is a map of the missing layers</h2><p>The Hermes Bible is useful because it makes the missing layers visible.</p><p>Installation is only the door.</p><p>The deeper map is everything around the model:</p><ul><li><p>tools and toolsets for touching the real environment</p></li><li><p>skills for saving procedures that worked</p></li><li><p>memory for stable preferences and facts</p></li><li><p>context files for project-specific behavior</p></li><li><p>profiles for separate agent identities</p></li><li><p>cron for scheduled work</p></li><li><p>webhooks for event-driven work</p></li><li><p>delegation for parallel work</p></li><li><p>Kanban for durable multi-agent coordination</p></li><li><p>messaging gateways for always-available access</p></li><li><p>security layers for credentials and approvals</p></li><li><p>developer internals for people who want to extend the system</p></li></ul><p>That is not a feature checklist.</p><p>It is a picture of what a working AI assistant actually needs.</p><p>Not just intelligence.</p><p>Surface area.</p><p>Continuity.</p><p>Boundaries.</p><p>Review.</p><h2>The missing skill is designing the workbench</h2><p>This is the part that feels practical to me.</p><p>The model gets most of the attention because it is the visible brain. But the workbench decides what the brain can actually do.</p><p>A strong model with no tools can only advise.</p><p>A strong model with tools, memory, files, schedules, and review gates can start turning advice into verified work.</p><p>That does not mean giving an agent unlimited freedom.</p><p>It means building a small, trustworthy environment around repeated work.</p><p>For content, that might mean the agent knows the writing style, reads the material, drafts in the right folder, checks for public-reader safety, creates a publish handoff, and records the status.</p><p>For learning, that might mean the agent turns a study session into notes, flashcards, labs, questions, and a follow-up task.</p><p>For operations, it might mean a scheduled check, a webhook trigger, a saved skill, and a receipt that proves what happened.</p><p>The important point is this:</p><p>The agent becomes more useful when the work becomes more structured.</p><h2>The useful unit is not one agent</h2><p>One agent can help you.</p><p>A system of loops can compound.</p><p>That is the part I keep coming back to.</p><p>Hermes is not only trying to answer one request. It can sit inside repeated loops: a daily report, a weekly review, a content workflow, a project board, a webhooks flow, a memory and skill improvement cycle, a research pipeline, or a messaging inbox.</p><p>The result is not magic autonomy.</p><p>It is controlled repetition.</p><p>The agent does not become useful because it is free to do anything. It becomes useful because the work has rails.</p><p>A good Hermes setup tells the agent:</p><ul><li><p>where to look</p></li><li><p>what tools it can use</p></li><li><p>what quality bar matters</p></li><li><p>when to stop and ask</p></li><li><p>what needs a receipt</p></li><li><p>what must never be published without approval</p></li><li><p>what should be saved for next time</p></li></ul><p>That is how agency becomes safe enough to use.</p><h2>This changes how I think about my own work</h2><p>For me, this connects directly to the way I am rebuilding my own technical path.</p><p>I do not only need another AI tool.</p><p>I need a workbench.</p><p>A place where cloud notes, local files, content drafts, visual systems, job-search material, browser checks, scheduling records, and reminders can connect without becoming a mess.</p><p>That is why the Hermes model is interesting.</p><p>It says the hard part is not asking AI to think.</p><p>The hard part is building the environment where thinking can turn into verified action.</p><p>A model can draft.</p><p>A system can draft, save, check, revise, prepare, schedule, and remember the lesson.</p><p>A model can answer a question.</p><p>A system can keep track of what the answer changed.</p><p>A model can suggest a workflow.</p><p>A system can run the workflow again next week with fewer mistakes.</p><h2>The real skill is operating the layer</h2><p>This is where I think many people will get confused.</p><p>They will look for the best model, the best prompt, the best agent framework, or the best automation hack.</p><p>Those matter.</p><p>But the durable skill is learning how to operate the layer around the model.</p><p>Can you define the work clearly?</p><p>Can you give the agent the right tools without giving it too much freedom?</p><p>Can you separate private working notes from public output?</p><p>Can you make it verify instead of assume?</p><p>Can you turn repeated corrections into reusable procedures?</p><p>Can you create review gates before anything touches the outside world?</p><p>Can you keep the system small enough to trust?</p><p>That is not prompt engineering.</p><p>That is technical judgment.</p><h2>The danger is agent sprawl</h2><p>There is also a trap here.</p><p>Once you see agents as operating layers, it becomes tempting to connect everything to everything. Every app gets a workflow. Every idea gets an automation. Every repeated task gets a scheduled agent. Every project gets a board, a memory, a profile, a skill, and a new system around it.</p><p>That can become another kind of clutter.</p><p>The point is not to automate your life into a machine you no longer understand.</p><p>The point is to build a few loops that are clear enough to trust.</p><p>This is why receipts matter so much. Without receipts, automation becomes rumor. The agent says something happened, but you cannot easily prove it. A file path, URL, task ID, test result, screenshot, or read-back changes that. It lets the human stay in control without personally repeating every small check.</p><p>This is also why review gates matter.</p><p>A useful AI system should know the difference between drafting and publishing, between suggesting and executing, between local preparation and external distribution, between memory worth keeping and temporary task state.</p><p>Those boundaries are not obstacles.</p><p>They are what make delegation possible.</p><p>A person does not trust an agent because it sounds confident. A person trusts an agent because the workflow creates evidence, the boundaries are clear, and mistakes can be turned into better procedures.</p><h2>What this means for technical self-rebuilders</h2><p>For someone learning cloud, Linux, AI, automation, or systems, this is the real lesson.</p><p>Do not only learn tools as separate tricks. Learn how work moves through a system.</p><p>Inputs arrive. Context is gathered. A decision is made. A tool runs. Output is checked. State is saved. The next action is triggered. A human reviews the risky step. Evidence is recorded. The lesson becomes reusable.</p><p>That pattern is everywhere.</p><p>It is in incident response.</p><p>It is in cloud operations.</p><p>It is in content production.</p><p>It is in job hunting.</p><p>It is in personal knowledge systems.</p><p>The agent makes the pattern visible because a weak workflow breaks quickly when you ask another intelligence to run it. Missing context becomes obvious. Vague standards become expensive. No verification becomes dangerous. No memory means the same correction returns again and again.</p><p>That is why Hermes is interesting beyond Hermes.</p><p>It teaches the shape of useful delegation.</p><p>Not just &#8220;ask AI.&#8221;</p><p>Design the loop.</p><p>Give the loop tools.</p><p>Define the review gate.</p><p>Save the lesson.</p><p>Demand the receipt.</p><h2>The human stays responsible</h2><p>This is the part that should not be romanticized.</p><p>An operating layer does not remove responsibility from the human. It makes responsibility more explicit.</p><p>If the workflow is vague, the agent will amplify the vagueness.</p><p>If the quality bar is weak, the agent will produce more weak work faster.</p><p>If the approval boundary is unclear, the system becomes risky.</p><p>If the memory layer stores the wrong things, future sessions inherit noise.</p><p>So the human job changes. It does not disappear.</p><p>The human becomes the designer of the environment, the setter of constraints, the reviewer of risky actions, and the person who decides which lessons deserve to become reusable procedure.</p><p>That is a more serious skill than prompting. It is closer to operations. It asks for judgment, taste, patience, and the ability to turn repeated mistakes into better rails.</p><p>The best agent systems will not be the ones that sound most autonomous. They will be the ones where the human can see the loop clearly, trust the evidence, and improve the rails after each mistake. That is how AI work becomes less like magic and more like craft.</p><p>And that is the quiet advantage: not replacing responsibility, but making responsibility easier to practice with better tools, better memory, and better proof.</p><p>A serious agent setup is not measured by how much it can do alone. It is measured by how reliably it helps the human carry better work forward.</p><p>In real work.</p><h2>A simple map for agent leverage</h2><p>The practical map I took from this is simple.</p><p>If you want an AI agent to become more useful, do not start by asking for more autonomy.</p><p>Start with six layers.</p><h3>1. Tools</h3><p>What can the agent actually touch?</p><p>Files, shell commands, browser pages, APIs, notes, calendars, messages, images, and documents all change the kind of work it can do.</p><h3>2. Memory</h3><p>What should survive the session?</p><p>Preferences, environment facts, stable constraints, and reusable lessons matter more than raw chat history.</p><h3>3. Skills</h3><p>What should the agent do better next time?</p><p>A good procedure is a small upgrade to the future version of the agent.</p><h3>4. Surfaces</h3><p>Where can the agent meet you?</p><p>A terminal is powerful, but many workflows become real only when the agent can reach you through the channels you already use.</p><h3>5. Loops</h3><p>What should happen repeatedly?</p><p>Daily scans, weekly reviews, scheduled checks, webhook triggers, project boards, and content pipelines are where small improvements compound.</p><h3>6. Receipts</h3><p>How do you know it worked?</p><p>A file path, a URL, a task ID, a read-back, a screenshot, a test result, or a log matters because it turns AI output into evidence.</p><h2>Final reflection</h2><p>The Hermes Bible is called a bible, but the lesson I took from it is not religious.</p><p>It is operational.</p><p>The future of useful AI work is not one perfect prompt.</p><p>It is a controlled environment where an agent can act, remember, verify, improve, and still stay accountable to the person using it.</p><p>That is the part worth learning.</p><p>Not because every person needs Hermes specifically.</p><p>Because every serious AI workflow eventually has to answer the same question:</p><p>What system surrounds the model?</p>]]></content:encoded></item></channel></rss>