<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: abdullah haroon</title>
    <description>The latest articles on Forem by abdullah haroon (@abdullah_haroon_092cf10d3).</description>
    <link>https://forem.com/abdullah_haroon_092cf10d3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3372552%2Fe3ec4f00-626f-4460-925c-de5f8970650a.jpg</url>
      <title>Forem: abdullah haroon</title>
      <link>https://forem.com/abdullah_haroon_092cf10d3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/abdullah_haroon_092cf10d3"/>
    <language>en</language>
    <item>
      <title>Day 6: Why Vibe Coding Fails in Production (And How Kiro Helps to Fix It)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Mon, 18 May 2026 09:17:00 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/day-6-why-vibe-coding-fails-in-production-and-how-kiro-helps-to-fix-it-22i1</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/day-6-why-vibe-coding-fails-in-production-and-how-kiro-helps-to-fix-it-22i1</guid>
      <description>&lt;p&gt;After building a project using Kiro’s spec-driven development workflow and comparing it with tools like Cursor and GitHub Copilot, one thing became very clear: &lt;em&gt;AI coding itself is not the issue. The real problem is how we approach it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most developers today are unintentionally practicing what is now called &lt;strong&gt;&lt;em&gt;“vibe coding”&lt;/em&gt;&lt;/strong&gt;, a workflow where you rely heavily on AI prompts, quick iterations, and instant code generation without properly designing the system beforehand. It feels fast, flexible, and even powerful in the beginning. But when you try to take that same approach into production-level systems, the cracks start to show.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Vibe Coding Actually Looks Like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Vibe coding usually starts with a simple prompt. You ask the AI to build something like a game, a dashboard, or a backend system, and it immediately generates working code. From there, you keep improving it step by step using follow-up prompts such as “fix this bug,” “add this feature,” or “make it cleaner.”&lt;/p&gt;

&lt;p&gt;At first, this feels like rapid development. You are building fast, seeing instant results, and constantly moving forward. But the issue is that there is no real system design behind the code. Everything is being added reactively instead of being designed intentionally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Vibe Coding Breaks in Production&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The biggest problem with vibe coding is that it works only in the early stage. As the project grows, structure starts to break.&lt;/p&gt;

&lt;p&gt;First, architecture becomes unclear because features are added through separate prompts, leading to inconsistent code organization. Second, context starts to degrade, and AI may lose track of earlier decisions. Third, complexity increases uncontrollably because everything is patched together instead of being designed properly. This is the point where projects start becoming hard to maintain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My project Experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I noticed this clearly while building Flappy Bird in Node.js. At the start, everything was smooth and fast. But as more features were added, the logic started overlapping, debugging became harder, and small changes affected other parts of the game. It felt productive at first, but over time, the lack of structure started creating problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Kiro Changes the Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro solves this by introducing spec-driven development. Instead of jumping straight into prompts like “build Flappy Bird,” you first define a structured specification describing how the system should work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu4ju0m7t5up8ixlwb1g8.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu4ju0m7t5up8ixlwb1g8.PNG" alt=" " width="800" height="44"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my case, I defined gameplay rules like gravity, pipes, scoring, and collision before any code was generated. Kiro then built the implementation based on that structure. This shifts development from reactive coding to intentional system design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Reactive to Structured Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In vibe coding, you fix problems after they appear. In Kiro, you define the system first, and most issues never appear in the first place. This makes development more controlled, predictable, and structured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Structure Matters More Than Speed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most AI tools focus on speed, but speed without structure does not scale. Vibe coding works well for prototypes and experiments, but breaks down in larger systems because complexity grows too quickly. Kiro solves this by introducing structure before code exists&lt;/p&gt;

&lt;p&gt;Final Thoughts:&lt;br&gt;
AI development is evolving from fast code generation to structured system design.Copilot helps you write faster, Cursor helps you work with code, but Kiro helps you define systems before they are built. And that’s the key difference.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Vibe coding fails in production not because AI is weak, but because structure is missing from the process.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Day 5: Kiro vs Cursor vs GitHub Copilot (Real Developer Comparison)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Sun, 17 May 2026 08:00:00 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/day-5-kiro-vs-cursor-vs-github-copilot-real-developer-comparison-5879</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/day-5-kiro-vs-cursor-vs-github-copilot-real-developer-comparison-5879</guid>
      <description>&lt;p&gt;After building a project in Node.js using Kiro’s spec-driven workflow, We started to clearly understand where Kiro stands in the AI development ecosystem. Up until now, I had used multiple AI coding tools in real projects: Cursor, GitHub Copilot, and now Kiro, but this was the first time I compared them from a workflow perspective, not just feature lists. And honestly, the difference is not just in “code quality.” It’s in how each tool shapes the way you think while building software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding the Three Tools First&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before comparing them, it’s important to understand what each tool is actually optimizing for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt; is mainly focused on speed. It helps you write code faster inside your editor by suggesting completions as you type. It’s great for small improvements and boilerplate reduction, but it still depends heavily on your own structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; takes things a step further. It’s more like an AI-native IDE where you can chat with your codebase. It understands context better than Copilot and allows more interactive development, especially for debugging and refactoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro&lt;/strong&gt; on the other hand, feels different. It is not just trying to help you write code faster, it is trying to enforce a development structure through spec-driven development.&lt;/p&gt;

&lt;p&gt;That distinction is where everything starts to change.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3i1zo04hfsavep8jz2y.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl3i1zo04hfsavep8jz2y.PNG" alt=" " width="800" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow Comparison (The Real Difference)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I built a project in Node.js using Kiro, the workflow started with a spec. That single change affects everything downstream.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Kiro&lt;/strong&gt;, I first defined behavior, system design, and features before writing any code. The AI then generated implementation based on that structure.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Cursor and Copilot&lt;/strong&gt;, the workflow is more direct. You start coding or prompting immediately, and structure evolves naturally through iteration.&lt;/p&gt;

&lt;p&gt;This difference might seem small, but it completely changes how your project grows over time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Kiro forces intent-first development.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Cursor and Copilot encourage code-first development.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Structure and Architecture Handling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where the gap becomes very visible. With &lt;strong&gt;GitHub Copilot&lt;/strong&gt;, code structure depends entirely on the developer. It is excellent at completing functions and reducing repetitive work, but it does not guide architecture decisions. &lt;strong&gt;Cursor&lt;/strong&gt; improves this by understanding more of the project context. It can refactor files, explain logic, and assist in debugging across multiple files.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;Kiro&lt;/strong&gt; goes one level higher, it tries to shape the architecture before the code even exists. Because everything starts from a spec, the structure is more intentional from the beginning. In my Node.js project, this was very noticeable. Kiro naturally separated game logic into clear modules instead of dumping everything into one file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8yrj02iiyokbqnyhq4x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8yrj02iiyokbqnyhq4x.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Interaction Style&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The interaction style of each tool is also very different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot&lt;/strong&gt; feels passive. It waits for you to write code and then predicts what comes next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; feels conversational. You actively discuss your codebase with the AI and iterate through changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro&lt;/strong&gt; feels directive in a different way. You are not just chatting or coding, you are defining system behavior through structured specifications, and the AI executes based on that. This makes Kiro feel less like an assistant and more like a system builder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging and Iteration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Debugging is where &lt;strong&gt;Cursor&lt;/strong&gt; really shines. When something breaks, Cursor can analyze your project, suggest fixes, and even refactor multiple files at once. It feels very practical for real-world development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot&lt;/strong&gt; is weaker here because it does not fully understand project-wide context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro&lt;/strong&gt; approaches debugging differently. Instead of directly patching code, you often go back and refine the spec. The system then regenerates or adjusts implementation based on updated requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed vs Structure vs Control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each tool optimizes for something different.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copilot&lt;/strong&gt; optimizes for speed of writing code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cursor&lt;/strong&gt; optimizes for interactive development and debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kiro&lt;/strong&gt; optimizes for structured system design through specs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When we used them in real projects, this difference became very clear.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you want quick code snippets, &lt;strong&gt;Copilot&lt;/strong&gt; is enough.&lt;/li&gt;
&lt;li&gt;If you want full project-level AI assistance, &lt;strong&gt;Cursor&lt;/strong&gt; is very strong.&lt;/li&gt;
&lt;li&gt;If you want structured AI-native development, &lt;strong&gt;Kiro&lt;/strong&gt; feels more forward-thinking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Final Outcome&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After using all three tools in real development scenarios, we realized they are not direct replacements for each other. They represent different stages in the evolution of AI-assisted development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot&lt;/strong&gt; represents the first phase: autocomplete intelligence.&lt;br&gt;
&lt;strong&gt;Cursor&lt;/strong&gt; represents the second phase: conversational coding.&lt;br&gt;
&lt;strong&gt;Kiro&lt;/strong&gt; represents a third phase: structured AI-native development.&lt;/p&gt;

&lt;p&gt;And that third phase is what makes Kiro interesting.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It is not trying to replace developers.It is trying to change how developers think before they even write code.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Day 4: Building Your First App with Kiro (Step-by-Step AI Development)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Sat, 16 May 2026 07:33:00 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/day-4-building-your-first-app-with-kiro-step-by-step-ai-development-3e98</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/day-4-building-your-first-app-with-kiro-step-by-step-ai-development-3e98</guid>
      <description>&lt;p&gt;Over the last few days, I’ve been exploring Kiro and trying to understand what makes it different from the growing number of AI coding tools entering the market. At first, I thought it was simply another AI-powered IDE focused on faster development and better code generation.&lt;/p&gt;

&lt;p&gt;But after building a real project with it, I realized the bigger idea behind Kiro is not just speed, it’s structure.&lt;/p&gt;

&lt;p&gt;So for Day 4 of this series, I decided to build something more interactive and fun instead of another basic CRUD application. I chose to build a &lt;strong&gt;simple Flappy Bird&lt;/strong&gt; clone using Kiro to properly test how spec-driven development actually feels in a real workflow. The goal wasn’t just to “build a game with AI.”&lt;/p&gt;

&lt;p&gt;The real goal was to experience how &lt;strong&gt;&lt;em&gt;spec-driven development&lt;/em&gt;&lt;/strong&gt; in Kiro actually behaves in a real project. And this is where things started to feel different from traditional AI coding tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why I Chose Flappy Bird&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I intentionally picked Flappy Bird because it’s deceptively simple.On the surface, it looks like a small beginner game, but technically it includes several important development concepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Game physics&lt;/li&gt;
&lt;li&gt;Collision detection&lt;/li&gt;
&lt;li&gt;Animations&lt;/li&gt;
&lt;li&gt;Rendering loops&lt;/li&gt;
&lt;li&gt;User input handling&lt;/li&gt;
&lt;li&gt;State management&lt;/li&gt;
&lt;li&gt;Score systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That makes it a perfect project for testing how well Kiro handles structured implementation and iterative development.&lt;/p&gt;

&lt;p&gt;Most AI tools perform well when generating static pages or small components. But interactive systems are where workflows usually become messy. Context gets lost, features break, and the generated architecture slowly turns chaotic. That’s exactly what I wanted to test with Kiro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starting with Spec-Driven Development in Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first step was not coding at all.I started inside Kiro using its spec-driven development workflow, where you define system behavior first and only then move toward implementation. This is very different from traditional AI coding where you directly ask:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Build Flappy Bird in Node.js”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead, Kiro pushes you to first define what the system is supposed to do.That shift alone changes how you think about development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0z8529hj0lr203a4bxi.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0z8529hj0lr203a4bxi.PNG" alt=" " width="800" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Writing the Node.js Game Specification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Inside Kiro, I created a structured spec for the Flappy Bird game. Here’s what I defined:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Build&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;Flappy&lt;/span&gt; &lt;span class="nx"&gt;Bird&lt;/span&gt; &lt;span class="nx"&gt;game&lt;/span&gt; &lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;Node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;following&lt;/span&gt; &lt;span class="nx"&gt;behavior&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Bird&lt;/span&gt; &lt;span class="nx"&gt;affected&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="nf"&gt;gravity &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;physics&lt;/span&gt; &lt;span class="nx"&gt;simulation&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Jump&lt;/span&gt; &lt;span class="nx"&gt;mechanic&lt;/span&gt; &lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt; &lt;span class="nx"&gt;press&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Pipe&lt;/span&gt; &lt;span class="nx"&gt;generation&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt; &lt;span class="nx"&gt;random&lt;/span&gt; &lt;span class="nx"&gt;gaps&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Continuous&lt;/span&gt; &lt;span class="nx"&gt;movement&lt;/span&gt; &lt;span class="nx"&gt;loop&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Collision&lt;/span&gt; &lt;span class="nx"&gt;detection&lt;/span&gt; &lt;span class="nx"&gt;system&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Score&lt;/span&gt; &lt;span class="nx"&gt;increases&lt;/span&gt; &lt;span class="nx"&gt;when&lt;/span&gt; &lt;span class="nx"&gt;passing&lt;/span&gt; &lt;span class="nx"&gt;pipes&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Game&lt;/span&gt; &lt;span class="nx"&gt;over&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="nx"&gt;when&lt;/span&gt; &lt;span class="nx"&gt;collision&lt;/span&gt; &lt;span class="nx"&gt;occurs&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Restart&lt;/span&gt; &lt;span class="nx"&gt;functionality&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt; &lt;span class="nx"&gt;game&lt;/span&gt; &lt;span class="nx"&gt;loop&lt;/span&gt; &lt;span class="nx"&gt;execution&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of thinking in terms of files or functions, I was thinking in terms of system behavior. That’s the key idea behind spec-driven development. You define what the system should do, and Kiro translates that into structure and implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Kiro Structured the Node.js Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the spec was finalized, Kiro didn’t jump into dumping code. Instead, it broke the system into logical modules and components.The Node.js implementation was structured around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;game loop handling&lt;/li&gt;
&lt;li&gt;physics engine logic (gravity + movement)&lt;/li&gt;
&lt;li&gt;pipe generation system&lt;/li&gt;
&lt;li&gt;collision detection module&lt;/li&gt;
&lt;li&gt;score tracking system&lt;/li&gt;
&lt;li&gt;input handling (keyboard events)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This separation was very important because it prevented the usual problem of AI-generated “single-file chaos.” In traditional vibe coding, Node.js projects often become messy quickly because everything gets merged into one script. Here, the structure stayed clean and understandable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopak6y0njf643pj20mxt.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopak6y0njf643pj20mxt.PNG" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generating the First Working Version&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After processing the spec, Kiro generated the first working version of the game logic. Even though it was running in a Node.js environment, the core mechanics were already functional:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bird movement simulation&lt;/li&gt;
&lt;li&gt;gravity behavior&lt;/li&gt;
&lt;li&gt;pipe spawning logic&lt;/li&gt;
&lt;li&gt;collision detection&lt;/li&gt;
&lt;li&gt;score updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What impressed me most was not just that it worked, but that it worked in a structured way. The system wasn’t random, it followed the spec I had defined earlier. That connection between &lt;strong&gt;intent → spec → implementation&lt;/strong&gt; was very clear.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizlbmg7nmqg621b5r1p3.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizlbmg7nmqg621b5r1p3.PNG" alt=" " width="800" height="473"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What Felt Different Compared to Vibe Coding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project made the difference very obvious. In traditional vibe coding workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you prompt repeatedly&lt;/li&gt;
&lt;li&gt;code structure breaks over time&lt;/li&gt;
&lt;li&gt;debugging becomes harder&lt;/li&gt;
&lt;li&gt;context is often lost&lt;/li&gt;
&lt;li&gt;Node.js files quickly turn messy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But with Kiro’s spec-driven approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structure stays stable&lt;/li&gt;
&lt;li&gt;changes are intentional&lt;/li&gt;
&lt;li&gt;system design remains consistent&lt;/li&gt;
&lt;li&gt;iteration is predictable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of constantly fixing broken outputs, you are refining a system definition. That is a completely different mindset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Result&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By the end of this project, I had a working Flappy Bird-style game logic built in Node.js using Kiro’s spec-driven workflow. It included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;gravity-based physics&lt;/li&gt;
&lt;li&gt;pipe generation system&lt;/li&gt;
&lt;li&gt;collision detection&lt;/li&gt;
&lt;li&gt;score tracking&lt;/li&gt;
&lt;li&gt;restart logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the real outcome was not just the game. It was understanding how structured AI development changes the entire workflow from coding to system design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpsa1yf80pfe8j431d5eo.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpsa1yf80pfe8j431d5eo.PNG" alt=" " width="642" height="846"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you combine Node.js with structured specs, AI stops being a generator and starts becoming a development partner.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Day 3: Understanding Spec-Driven Development (The Core Idea Behind Kiro)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Thu, 14 May 2026 07:16:00 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/day-3-understanding-spec-driven-development-the-core-idea-behind-kiro-2fc4</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/day-3-understanding-spec-driven-development-the-core-idea-behind-kiro-2fc4</guid>
      <description>&lt;p&gt;Welcome back to the Kiro Blog Series: From Zero to AI-Native Development.&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;first two days&lt;/strong&gt;, &lt;em&gt;We installed Kiro, explored the environment, and built a simple first project. That part was mostly about getting comfortable with the tool.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But today is different. Today is about understanding the core idea behind Kiro spec-driven development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Spec, Really?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A spec is a structured description of what you want to build. It is not just documentation, it is the starting point of development.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead of jumping into code, you define your intent in natural language, and that becomes the foundation for everything else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A simple to-do application where users can add tasks, delete tasks, and mark them as completed, with data stored locally.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipo8bk0upfzqrgubf33u.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipo8bk0upfzqrgubf33u.PNG" alt=" " width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This helps readers visually connect what a &lt;strong&gt;“spec”&lt;/strong&gt; looks like inside Kiro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traditional Development vs Spec-Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In traditional development, the workflow usually starts with setup and structure.You choose frameworks, create folders, install dependencies, and only then start building features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fki1zxufop5a396wek89m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fki1zxufop5a396wek89m.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This shows “old way” complexity visually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So the flow looks like:&lt;/strong&gt; idea → setup → architecture → coding → debugging&lt;/p&gt;




&lt;p&gt;In spec-driven development, the order changes. You start with intent instead of structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;idea → spec → structured generation → refinement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjjng50dbtbzf1q6kdtpn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjjng50dbtbzf1q6kdtpn.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
(&lt;em&gt;This image is AI generated highlighting how KIRO works&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;This is the “wow moment” image where Kiro turns spec into structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Specs Are More Important Than They Look&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At first, a spec looks like just a description. But it actually plays multiple roles at once. It communicates intent, forces clarity of thinking, and helps generate structure automatically. Below is a visual representation of vague vs detailed specs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmmffj7u2q2y29uffoae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmmffj7u2q2y29uffoae.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Noticed While Using Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One important thing became very clear while using Kiro.The quality of output depends heavily on how clear the spec is. Better spec → better structure → better result.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpld29x4m31ez2j0h6waa.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpld29x4m31ez2j0h6waa.PNG" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is your proof that the system actually works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Mindset Shift&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Writing code is no longer the first step. Thinking clearly is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of asking:&lt;/strong&gt; &lt;em&gt;“How do I build this?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You start asking:&lt;/strong&gt; &lt;em&gt;“What exactly am I building?”&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Coming Next on &lt;strong&gt;Day 4&lt;/strong&gt;: Next, We will take this concept and build a real application using Kiro step by step.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>softwaredevelopment</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Day 2: Installing &amp; Getting Started with Kiro</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Wed, 13 May 2026 07:05:00 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/day-2-installing-getting-started-with-kiro-2jb1</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/day-2-installing-getting-started-with-kiro-2jb1</guid>
      <description>&lt;p&gt;Welcome back to the Kiro Blog Series: From Zero to AI-Native Development.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Day 1&lt;/strong&gt;, we explored what Kiro is and why it represents a shift toward spec-driven development. Today, we move from ideas into actual setup and hands-on experience.&lt;/p&gt;

&lt;p&gt;The goal is simple, install Kiro, understand how it feels, and build your first working project without getting stuck in setup confusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Setup Matters (But Shouldn’t Be Complicated)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most developers don’t fail because a tool is hard. They fail because the first 10 minutes are confusing.Too many steps, too many decisions, and too much boilerplate before anything actually works. Kiro tries to remove that friction. The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you can describe what you want, you should be able to start building immediately.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Look at Kiro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you first install and open Kiro, the experience feels familiar if you’ve used modern IDEs like VS Code. But there’s a clear difference in focus.&lt;/p&gt;

&lt;p&gt;Instead of overwhelming you with files and configurations, Kiro opens into a clean, minimal workspace. The AI layer is already integrated into the environment, sitting quietly beside your development flow, not interrupting, just assisting when needed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fycnd9eco6evw6q2rn2bt.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fycnd9eco6evw6q2rn2bt.PNG" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating Your First Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you’re inside Kiro, the next step is creating your first project. This is where the experience starts to feel different from traditional development tools.&lt;/p&gt;

&lt;p&gt;Instead of manually setting everything up, you simply create a new project, give it a name, and choose a basic template or blank setup. Kiro takes care of the rest in the background.&lt;/p&gt;

&lt;p&gt;It automatically prepares the structure, configuration, and environment so you can focus on what actually matters is the idea.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6b3ihdvbv7bhr5zu4lt.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6b3ihdvbv7bhr5zu4lt.PNG" alt=" " width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Writing Your First Spec&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now comes the most important moment of today, writing your first spec.&lt;/p&gt;

&lt;p&gt;Instead of starting with code, you describe your application in natural language. For example, you might say:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A simple to-do app where users can add tasks, delete them, mark them as completed, and store data locally.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is where Kiro’s approach becomes different. You are no longer telling the system how to build something, you are telling it what you want.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8154ja2gstbqa7bp5g0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8154ja2gstbqa7bp5g0.PNG" alt=" " width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Happens After You Submit the Spec&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you submit the spec, Kiro starts working in the background. It breaks your idea into structured features, understands the requirements, and begins shaping a technical plan.&lt;/p&gt;

&lt;p&gt;Then it generates the base structure of your application — including files, logic, and initial implementation. Instead of you manually building everything step-by-step, Kiro builds the foundation for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8bfgulrfpxykswbfqw4j.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8bfgulrfpxykswbfqw4j.PNG" alt=" " width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Running Your First App&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After everything is generated, you simply run the project and see it come to life. You now have a working application built directly from a simple idea written in plain language. It might be basic, but the important part is not complexity, it’s the workflow that got you there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpvcv40oy389g5smy1xt.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpvcv40oy389g5smy1xt.PNG" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The biggest shift Kiro introduces is not just faster development, it’s a completely different mindset. Instead of starting with syntax, you start with intent. Instead of building everything manually, you guide the system through structured thinking. That is the foundation of spec-driven development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s Next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Day 3&lt;/strong&gt;, we’ll go deeper into the core idea behind everything we did today:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What exactly is a “spec”, and why is it becoming the new foundation of software development?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What is Kiro? The Beginning of Spec-Driven Development</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Tue, 12 May 2026 10:27:53 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-4ohb</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-4ohb</guid>
      <description>&lt;p&gt;For many years, software development has followed a familiar pattern: think of an idea, start coding, fix bugs along the way, and refactor when things break.&lt;/p&gt;

&lt;p&gt;Then AI tools like Copilot and ChatGPT changed the game by making coding faster. But they also introduced a new problem, speed increased, but structure often decreased.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;Kiro&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Kiro?&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupx7726czj9areu5j90j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupx7726czj9areu5j90j.png" alt=" " width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro is an AI-native development environment built around a powerful idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Spec-Driven Development&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of jumping directly into code, Kiro encourages developers to start with clear specifications, structured planning, and AI-assisted breakdown of requirements before writing a single line of code.&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro doesn’t just help you write code&lt;/li&gt;
&lt;li&gt;It helps you define what you are actually building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Problem Kiro is Solving&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern development has shifted into a new era but not without challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Vibe Coding Overload&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers often rely on intuition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“just make it work”&lt;/li&gt;
&lt;li&gt;“fix this error quickly”&lt;/li&gt;
&lt;li&gt;“add this feature fast”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s fast but not always scalable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. AI Code Generation Without Structure&lt;/strong&gt;&lt;br&gt;
AI tools can generate working code instantly, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture becomes unclear&lt;/li&gt;
&lt;li&gt;requirements drift over time&lt;/li&gt;
&lt;li&gt;debugging becomes harder&lt;/li&gt;
&lt;li&gt;systems become inconsistent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? Fast development, but fragile systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro’s Approach: Spec-Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the game changerKiro introduces a structured workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of:&lt;/strong&gt; Code → Fix → Refactor&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You move to:&lt;/strong&gt; Spec → Design → Generate → Refine&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqzexzi6p872q181at5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqzexzi6p872q181at5f.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This means:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;_- You define requirements clearly first&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI breaks them into structured components&lt;/li&gt;
&lt;li&gt;Code becomes the output, not the starting point_&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This shift is important because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software systems are getting more complex&lt;/li&gt;
&lt;li&gt;AI is generating more code than ever&lt;/li&gt;
&lt;li&gt;Developers need structure, not just speed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What This Series Will Cover&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is Day 1 of a 10-part journey into Kiro.&lt;/p&gt;

&lt;p&gt;In the upcoming posts, we will explore:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to install and start using Kiro&lt;/li&gt;
&lt;li&gt;How spec-driven development actually works in practice&lt;/li&gt;
&lt;li&gt;Building real-world projects step by step&lt;/li&gt;
&lt;li&gt;Comparing Kiro with tools like Cursor and Copilot&lt;/li&gt;
&lt;li&gt;How it fits into the future of AI-driven engineering&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro is not just another AI coding tool.&lt;/p&gt;

&lt;p&gt;It represents a shift in how we think about software development:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From “writing code faster”&lt;br&gt;
To “building software more intelligently”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And that shift is what this series is all about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next: Day 2 → Getting Started with Kiro (Installation + First Project)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is Kiro? The Beginning of Spec-Driven Development</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Tue, 12 May 2026 10:27:53 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-3io9</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/what-is-kiro-the-beginning-of-spec-driven-development-3io9</guid>
      <description>&lt;p&gt;For many years, software development has followed a familiar pattern: think of an idea, start coding, fix bugs along the way, and refactor when things break.&lt;/p&gt;

&lt;p&gt;Then AI tools like Copilot and ChatGPT changed the game by making coding faster. But they also introduced a new problem, speed increased, but structure often decreased.&lt;/p&gt;

&lt;p&gt;This is where &lt;strong&gt;Kiro&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Kiro?&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupx7726czj9areu5j90j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupx7726czj9areu5j90j.png" alt=" " width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro is an AI-native development environment built around a powerful idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Spec-Driven Development&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of jumping directly into code, Kiro encourages developers to start with clear specifications, structured planning, and AI-assisted breakdown of requirements before writing a single line of code.&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiro doesn’t just help you write code&lt;/li&gt;
&lt;li&gt;It helps you define what you are actually building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Problem Kiro is Solving&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern development has shifted into a new era but not without challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Vibe Coding Overload&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers often rely on intuition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“just make it work”&lt;/li&gt;
&lt;li&gt;“fix this error quickly”&lt;/li&gt;
&lt;li&gt;“add this feature fast”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s fast but not always scalable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. AI Code Generation Without Structure&lt;/strong&gt;&lt;br&gt;
AI tools can generate working code instantly, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture becomes unclear&lt;/li&gt;
&lt;li&gt;requirements drift over time&lt;/li&gt;
&lt;li&gt;debugging becomes harder&lt;/li&gt;
&lt;li&gt;systems become inconsistent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? Fast development, but fragile systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro’s Approach: Spec-Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the game changerKiro introduces a structured workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of:&lt;/strong&gt; Code → Fix → Refactor&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You move to:&lt;/strong&gt; Spec → Design → Generate → Refine&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqzexzi6p872q181at5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqzexzi6p872q181at5f.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This means:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;_- You define requirements clearly first&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI breaks them into structured components&lt;/li&gt;
&lt;li&gt;Code becomes the output, not the starting point_&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This shift is important because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Software systems are getting more complex&lt;/li&gt;
&lt;li&gt;AI is generating more code than ever&lt;/li&gt;
&lt;li&gt;Developers need structure, not just speed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What This Series Will Cover&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is Day 1 of a 10-part journey into Kiro.&lt;/p&gt;

&lt;p&gt;In the upcoming posts, we will explore:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to install and start using Kiro&lt;/li&gt;
&lt;li&gt;How spec-driven development actually works in practice&lt;/li&gt;
&lt;li&gt;Building real-world projects step by step&lt;/li&gt;
&lt;li&gt;Comparing Kiro with tools like Cursor and Copilot&lt;/li&gt;
&lt;li&gt;How it fits into the future of AI-driven engineering&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kiro is not just another AI coding tool.&lt;/p&gt;

&lt;p&gt;It represents a shift in how we think about software development:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From “writing code faster”&lt;br&gt;
To “building software more intelligently”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And that shift is what this series is all about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next: Day 2 → Getting Started with Kiro (Installation + First Project)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>aws</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A short talk at AWS cloud club event "Cloud Nexus" made me rethink how students are using AI</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Sun, 28 Dec 2025 05:22:11 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/a-short-talk-at-cloudnexus-made-me-rethink-how-students-are-using-ai-4o01</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/a-short-talk-at-cloudnexus-made-me-rethink-how-students-are-using-ai-4o01</guid>
      <description>&lt;p&gt;I recently spoke at &lt;strong&gt;CloudNexus&lt;/strong&gt;, an &lt;strong&gt;AWS Cloud Club QAU&lt;/strong&gt; event focused on cloud technologies and AI. It was a short talk, nothing fancy, mainly around Agentic AI and how students are currently using AI tools.&lt;br&gt;
What surprised me wasn’t the questions. It was how &lt;em&gt;confident&lt;/em&gt; students were that they were “using AI correctly”. Most of them weren’t.&lt;/p&gt;

&lt;p&gt;“&lt;strong&gt;I asked them to generate code from ChatGPT”&lt;/strong&gt;&lt;br&gt;
During discussions, a lot of students openly said they use ChatGPT mainly for code generation. Not for understanding. Not for learning concepts. Just for getting code quickly.&lt;br&gt;
And honestly, I would not blame them for this. It’s very fast. It feels somehow productive. But this is where problems start showing up later during debugging, real projects, or even basic system design conversations or in interviews.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The issue isn’t AI: it’s how we’re using it&lt;/strong&gt;&lt;br&gt;
One thing I tried to explain during the talk was simple:&lt;br&gt;
Not every AI tool is meant to do the same job.ChatGPT is great. I use it too. But it shines more when you use it for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;understanding concepts&lt;/li&gt;
&lt;li&gt;breaking down ideas&lt;/li&gt;
&lt;li&gt;writing or structuring content&lt;/li&gt;
&lt;li&gt;asking “why” questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you try to use it as your main coding engine, you miss context and context matters a lot in real-world development.&lt;br&gt;
Code-focused tools exist for a reason&lt;br&gt;
We talked a bit about tools like Cursor, Amazon Q etc. Thesetools work inside your codebase. They understand files, references, and structure.That’s why they feel more useful for development work.&lt;br&gt;
Not because they are “smarter AI”, but because they are built for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where Amazon Q fits in&lt;/strong&gt;&lt;br&gt;
Since this was an AWS-focused event, I also talked about &lt;strong&gt;Amazon Q.&lt;/strong&gt; What I personally find interesting about Amazon Q is that it doesn’t live outside your workflow. It helps inside AWS environments, where cloud engineers actually spend time. It’s less about asking random questions and more about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cloud-aware guidance&lt;/li&gt;
&lt;li&gt;best practices&lt;/li&gt;
&lt;li&gt;security-conscious suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That difference matters when you move beyond tutorials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explaining Agentic AI in simple terms&lt;/strong&gt;&lt;br&gt;
To keep things simple, I explained AI in three phases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chatbots:&lt;/strong&gt; you ask, it replies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copilots:&lt;/strong&gt; it understands your context&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents:&lt;/strong&gt; you give a goal, it figures out the steps
Agentic AI is less about prompts and more about delegation.That idea really clicked  with students.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why the cloud becomes unavoidable here&lt;/strong&gt;&lt;br&gt;
One thing I emphasized was that agent-based systems don’t work in isolation.They need infrastructure, scale and security.&lt;/p&gt;

&lt;p&gt;This is where platforms like &lt;strong&gt;AWS Bedrock&lt;/strong&gt; start making sense, not as buzzwords only, but as enablers for building AI systems that actually run in the real world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I really wanted students to take away&lt;/strong&gt;&lt;br&gt;
If I would summarize the talk in one line, it would be this: AI should help you grow, not replace your thinking.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use ChatGPT to learn.&lt;/li&gt;
&lt;li&gt;Use coding copilots to build.&lt;/li&gt;
&lt;li&gt;Use cloud AI to scale.
And use agents when you’re ready to automate outcomes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Final thought&lt;/strong&gt; &lt;br&gt;
Speaking at CloudNexus reminded me that students don’t need more tools.They need better guidance on how to use what already exists. There is a quote I read online saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI isn’t going away.But engineers who understand how and why they use AI will always stand out.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;here's the linkedin post for my recent talk:&lt;br&gt;


&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://www.linkedin.com/posts/muhammad-abdullah-haroon-b49478271_cloudnexus-cloudnative-agenticai-activity-7410695968251355139-OuC_" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD4D22AQEE4aSyYo7UZA%2Ffeedshare-shrink_800%2FB4DZtftEscK0Ag-%2F0%2F1766837260455%3Fe%3D2147483647%26v%3Dbeta%26t%3DmuoWsPqsmbFv6dB0Z6lZxKowuSRbsdnGZNy5P5-lybs" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://www.linkedin.com/posts/muhammad-abdullah-haroon-b49478271_cloudnexus-cloudnative-agenticai-activity-7410695968251355139-OuC_" rel="noopener noreferrer" class="c-link"&gt;
            #cloudnexus #cloudnative #agenticai #awsome #aws | Muhammad Abdullah Haroon | 13 comments
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            𝐆𝐫𝐚𝐭𝐞𝐟𝐮𝐥 𝐟𝐨𝐫 𝐭𝐡𝐞 𝐨𝐩𝐩𝐨𝐫𝐭𝐮𝐧𝐢𝐭𝐲 𝐭𝐨 𝐣𝐨𝐢𝐧 𝐂𝐥𝐨𝐮𝐝 𝐍𝐞𝐱𝐮𝐬 𝐚𝐭 Daftarkhwan vanguard 𝐚𝐬 𝐚 𝐰𝐢𝐥𝐝 𝐜𝐚𝐫𝐝 𝐞𝐧𝐭𝐫𝐲 𝐬𝐩𝐞𝐚𝐤𝐞𝐫 🙃

I had the chance to represent Cloud Native Islamabad and  its ecosystem and share thoughts on emerging technologies and opportunities in Agentic AI and Cloud, with a special focus on how the Cloud Native Computing Foundation (CNCF)  ecosystem (including CNI) is shaping the future of cloud-native engineering.

Huge shoutout to Ali Mumtaz for organizing such a well-executed and impactful event 
Also, appreciation for Sharoon Amin Akhtar for sharing valuable insights on serverless cloud technologies.
The panel discussion was equally engaging, featuring
DevOps Molvi (Faisal Rehman), Hamza Nasir 🚀  Tameem Ud Din  and Yahya Qureshi , great perspectives and practical discussions around DevOps and modern AI technologies.

Lastly, thanks to my  The Computer Science Society (CSS) AWS Cloud Club IIUI team for accompanying me
Junaid Hanif Shah Murad Ali Shehzad Nazir Sardar Huzaifa  Muhammad Sayyam Abbasi  Shahzaib Ashraf Uzair Akhtar Gondal 

praying and best wishes to my mentor Saim Safder who didn't join us because of an incident..

Looking forward to more such conversations and collaborations 



#CloudNexus #CloudNative #AgenticAI #awsome #aws Amazon Web Services (AWS) AWS Developers Cloud Native Computing Foundation (CNCF)  Audra Montenegro Lisa Bagley, CPACC  | 13 comments on LinkedIn
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fstatic.licdn.com%2Faero-v1%2Fsc%2Fh%2Fal2o9zrvru7aqj8e1x2rzsrca"&gt;
          linkedin.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;




</description>
      <category>aws</category>
      <category>cloudnative</category>
      <category>agentic</category>
      <category>agenticai</category>
    </item>
    <item>
      <title>How to Launch Your First EC2 Instance on AWS (with Security Best Practices)</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Wed, 23 Jul 2025 13:50:35 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/how-to-launch-your-first-ec2-instance-on-aws-with-security-best-practices-6le</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/how-to-launch-your-first-ec2-instance-on-aws-with-security-best-practices-6le</guid>
      <description>&lt;p&gt;&lt;em&gt;By Abdullah Haroon – Student | Cloud Practitioner| AWS Learner&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What You’ll Learn
&lt;/h2&gt;

&lt;p&gt;By the end of this guide, you’ll:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand what Amazon EC2 is&lt;/li&gt;
&lt;li&gt;Launch your first virtual server using AWS Free Tier&lt;/li&gt;
&lt;li&gt;Connect to it securely via SSH&lt;/li&gt;
&lt;li&gt;Install a basic web server&lt;/li&gt;
&lt;li&gt;Apply essential security practices for beginners&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is EC2?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Amazon EC2 (Elastic Compute Cloud)&lt;/strong&gt; is AWS's virtual server service. It allows you to rent virtual machines (VMs) in the cloud where you can run applications, host websites, or learn Linux—all without buying hardware.&lt;/p&gt;

&lt;p&gt;Think of it as your own personal server, available globally, just a few clicks away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common use cases:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hosting websites &amp;amp; web apps
&lt;/li&gt;
&lt;li&gt;Deploying APIs and backend services
&lt;/li&gt;
&lt;li&gt;Machine learning &amp;amp; data processing
&lt;/li&gt;
&lt;li&gt;Practicing Linux/DevOps tools
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What You Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; A free AWS account — &lt;a href="https://aws.amazon.com/" rel="noopener noreferrer"&gt;Create one here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; A stable internet connection&lt;/li&gt;
&lt;li&gt; Basic knowledge of using terminal/command prompt&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step-by-Step guide: Launching Your First EC2 Instance
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Log in to the AWS Console
&lt;/h3&gt;

&lt;p&gt;Go to &lt;a href="https://console.aws.amazon.com/" rel="noopener noreferrer"&gt;https://console.aws.amazon.com/&lt;/a&gt; and sign in.&lt;br&gt;&lt;br&gt;
Choose a region (e.g., &lt;strong&gt;US East - N. Virginia&lt;/strong&gt;) at the top-right.&lt;/p&gt;


&lt;h3&gt;
  
  
  Step 2: Navigate to EC2
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Services&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;EC2&lt;/strong&gt; and select it&lt;/li&gt;
&lt;li&gt;In the EC2 Dashboard, click &lt;strong&gt;Launch instance&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  Step 3: Configure Your EC2 Instance
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Name
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name&lt;/strong&gt;: &lt;code&gt;MyFirstEC2&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  AMI (Amazon Machine Image)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Choose: &lt;strong&gt;Amazon Linux 2023&lt;/strong&gt; (Free tier eligible)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Instance Type
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Choose: &lt;strong&gt;t2.micro&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Key Pair
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Create a new key pair: &lt;code&gt;ec2-key-abdullah&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;.pem&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Download and store the file securely (you’ll need it to SSH)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Network Settings
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Create a new security group&lt;/li&gt;
&lt;li&gt;Allow &lt;strong&gt;SSH (Port 22)&lt;/strong&gt; — Source: “&lt;strong&gt;My IP&lt;/strong&gt;”&lt;/li&gt;
&lt;li&gt;(Optional) Allow &lt;strong&gt;HTTP (Port 80)&lt;/strong&gt; if installing a web server&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Storage
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Default 8 GB is fine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click &lt;strong&gt;Launch Instance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! Your instance is launching.&lt;/p&gt;


&lt;h2&gt;
  
  
  Step 4: Access Instance &amp;amp; Copy Public IP
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Instances &amp;gt; Running Instances&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Wait until instance status is &lt;strong&gt;running&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Copy the &lt;strong&gt;Public IPv4 address&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Step 5: Connect to EC2 via SSH
&lt;/h2&gt;
&lt;h3&gt;
  
  
  On Linux/macOS:
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;400 ec2-key-abdullah.pem
ssh &lt;span class="nt"&gt;-i&lt;/span&gt; ec2-key-abdullah.pem ec2-user@&amp;lt;your-public-ip&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 5 (continued): Connect on Windows (Git Bash or WSL)
&lt;/h3&gt;

&lt;p&gt;Same command as above:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;400 abdullah-key.pem
ssh &lt;span class="nt"&gt;-i&lt;/span&gt; abdullah-key.pem ec2-user@&amp;lt;your-public-ip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 6: Install Apache Web Server
&lt;/h3&gt;

&lt;p&gt;Once logged in via SSH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;yum update &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;yum &lt;span class="nb"&gt;install &lt;/span&gt;httpd &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl start httpd
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable &lt;/span&gt;httpd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now open your public IP in a browser — you’ll see the Apache test page! &lt;/p&gt;

&lt;h3&gt;
  
  
  Security Best Practices
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Common Mistake&lt;/th&gt;
&lt;th&gt;Best Practice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SSH open to all IPs (&lt;code&gt;0.0.0.0&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Restrict to &lt;strong&gt;My IP&lt;/strong&gt; only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sharing &lt;code&gt;.pem&lt;/code&gt; file with others&lt;/td&gt;
&lt;td&gt;Keep it private and secure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keeping unused instances running&lt;/td&gt;
&lt;td&gt;Stop or terminate when not in use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Using root account always&lt;/td&gt;
&lt;td&gt;Use IAM roles and least-privilege access&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Troubleshooting Tips:
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Permission denied (publickey)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;400 abdullah-key.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  SSH timeout or connection refused
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ensure &lt;strong&gt;Port 22&lt;/strong&gt; is allowed in your EC2 &lt;strong&gt;Security Group&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Confirm you're using the correct &lt;strong&gt;public IP&lt;/strong&gt; from the EC2 Console&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Webpage not loading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add a rule in your &lt;strong&gt;Security Group&lt;/strong&gt; to allow &lt;strong&gt;HTTP (Port 80)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What You Achieved
&lt;/h2&gt;

&lt;p&gt;You have successfully:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launched a virtual server (EC2 instance)&lt;/li&gt;
&lt;li&gt;Connected via SSH securely&lt;/li&gt;
&lt;li&gt;Installed a working Apache web server&lt;/li&gt;
&lt;li&gt;Followed essential cloud security steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ve taken your &lt;strong&gt;first big step&lt;/strong&gt; into the AWS Cloud! ☁️&lt;/p&gt;




&lt;h2&gt;
  
  
  Let’s Connect!
&lt;/h2&gt;

&lt;p&gt;I’m sharing my AWS learning journey through beginner-friendly blogs.&lt;br&gt;&lt;br&gt;
Follow me for more hands-on tutorials and free-tier projects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; LinkedIn: &lt;a href="https://www.linkedin.com/in/muhammad-abdullah-haroon-b49478271/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/muhammad-abdullah-haroon-b49478271/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; Dev Blog: dev.to: abdullah_haroon_092cf10d3&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>webdev</category>
      <category>virtualmachine</category>
      <category>awsiot</category>
    </item>
    <item>
      <title>Getting Started with AWS: My Journey into Cloud Computing</title>
      <dc:creator>abdullah haroon</dc:creator>
      <pubDate>Sun, 20 Jul 2025 17:22:37 +0000</pubDate>
      <link>https://forem.com/abdullah_haroon_092cf10d3/getting-started-with-aws-my-journey-into-cloud-computing-200e</link>
      <guid>https://forem.com/abdullah_haroon_092cf10d3/getting-started-with-aws-my-journey-into-cloud-computing-200e</guid>
      <description>&lt;p&gt;&lt;strong&gt;Why I Chose to Learn AWS?&lt;/strong&gt;&lt;br&gt;
The world has become dynamic in terms of technology and cloud has become the base of any modern application. The cloud can be found everywhere, whether it is Netflix streaming programs or startups libraries implementing AI models. I found out that I would have to learn how the cloud functions in order to develop modern scalable solutions.&lt;/p&gt;

&lt;p&gt;I found Amazon Web Services (AWS) among the leading cloud providers, and it was worthy of attention since:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It offers a massive range of services&lt;/li&gt;
&lt;li&gt;It powers real-world applications at scale&lt;/li&gt;
&lt;li&gt;It has a generous Free Tier for hands-on practice&lt;/li&gt;
&lt;li&gt;It is newbie friendly and has an excellent learning material&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;My Learning AWS Objectives&lt;/strong&gt;&lt;br&gt;
Being a student and being interested in development and DevOps, I decided to invest my attention in AWS knowledge and cloud-native projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is what I am going to do:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn the core AWS services (EC2, S3, Lambda, IAM, DynamoDB)&lt;/li&gt;
&lt;li&gt;Build hands-on projects using the AWS Free Tier&lt;/li&gt;
&lt;li&gt;Write and share blogs/tutorials to help others learn&lt;/li&gt;
&lt;li&gt;Create a public GitHub portfolio of AWS-based projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;First What I Am Building&lt;/strong&gt;&lt;br&gt;
I have begun to create easy practical project to practice what I have learnt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch an EC2 instance and host a personal page&lt;/li&gt;
&lt;li&gt;Building a REST API using API Gateway, +Lamda + DynamoDB&lt;/li&gt;
&lt;li&gt;Announce on CloudFront a S3 hosted static website&lt;/li&gt;
&lt;li&gt;Auto backups to S3 with Lambda and EventBridge&lt;/li&gt;
&lt;li&gt;Learn about IAM users and policies as well as roles to ensure safely access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These projects are centralized on the major areas such as compute, security, storage, and automation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning AWS (Without Spending a Penny)&lt;/strong&gt;&lt;br&gt;
Here are the free resources I’m currently using that helped me get started:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Resource&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Why I Use It&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWS SkillBuilder&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Free official AWS training &amp;amp; learning paths&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWS Free Tier&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Practice services like EC2, S3, Lambda at zero cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;freeCodeCamp AWS Series&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Simple, beginner-friendly YouTube tutorials&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AWS Educate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Extra credits and labs for students&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tutorials Dojo Blog&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Easy explanations of tricky services&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The reason Why I am Writing These Blogs&lt;/strong&gt;&lt;br&gt;
Blogging will assist me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reinforce what I learn&lt;/li&gt;
&lt;li&gt;Share knowledge with others starting out&lt;/li&gt;
&lt;li&gt;Document challenges and fixes&lt;/li&gt;
&lt;li&gt;Build a portfolio and personal brand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I expect to simplify AWS so that beginners learn it easily, particularly other students who have no formal background in DevOps.&lt;/p&gt;

&lt;p&gt;I'll be posting weekly AWS tutorials, cheat sheets, and beginner-friendly walkthroughs. If you’re learning cloud too, feel free to connect — I’d love to collaborate or just exchange ideas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/muhammad-abdullah-haroon-b49478271/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/muhammad-abdullah-haroon-b49478271/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blog:&lt;/strong&gt; dev.to: abdullah_haroon_092cf10d3&lt;/p&gt;

&lt;h3&gt;
  
  
  Coming Next:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How to Launch Your First EC2 Instance with Security Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading! Let’s build together ☁️&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>cloud</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
