<?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>DEV Community: Divyansh Sareen</title>
    <description>The latest articles on DEV Community by Divyansh Sareen (@divyansh_sareen).</description>
    <link>https://dev.to/divyansh_sareen</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%2F3624218%2Ff76b1757-d81c-4b2d-8349-e1c1ba6b5de4.png</url>
      <title>DEV Community: Divyansh Sareen</title>
      <link>https://dev.to/divyansh_sareen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/divyansh_sareen"/>
    <language>en</language>
    <item>
      <title>Kiro for Software Development?</title>
      <dc:creator>Divyansh Sareen</dc:creator>
      <pubDate>Sat, 22 Nov 2025 14:07:34 +0000</pubDate>
      <link>https://dev.to/divyansh_sareen/ai-assistance-in-development-53nd</link>
      <guid>https://dev.to/divyansh_sareen/ai-assistance-in-development-53nd</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I have been meaning to try out AI-assisted coding for quite some time. Now don't get me wrong, I have been using the generic LLM chatbots. While I was able to get things done, it wasn't the best experience as a developer. I felt more and more sidelined by the process. And after a while I started picking the path of least resistance, i.e. vibe coding. And it's not just me, many of my colleagues are going through this as well. I feel that there has to be some middle ground where a coder can utilise AI all the while improving on his skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;In this article I will be exploring Kiro, an AI assistant by Amazon that uses Claude under the hood. I am specifically interested in the spec-driven development. While I do sound like a Kiro advert at this point, but come on man, they gave a lot of free credits. I am poor.&lt;br&gt;
Okay, so this is a hackathon project for Kiroween. And I will go through how I made it, what tools were used, and how Kiro fits in the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Detailed Development Process
&lt;/h2&gt;

&lt;p&gt;I picked up a project I thought would align with my current knowledge and would allow me to learn new things along the way. I built a telematics provider system.&lt;br&gt;
I started off by creating a basic diagram in Excalidraw.&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%2Fsi39jj0f0b24dggy3qt6.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%2Fsi39jj0f0b24dggy3qt6.png" alt=" " width="800" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this, I went for designing the db. I went to &lt;a href="http://drawsql.app/" rel="noopener noreferrer"&gt;http://drawsql.app/&lt;/a&gt; and created my first draft. Then exported the DDL and did a bit of back and forth with AI. This is the final draft of the database:&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%2F3mqfb8u88z60jkrk4gnc.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%2F3mqfb8u88z60jkrk4gnc.png" alt=" " width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the diagram earlier, I decided to break the project into the following backend and frontend pieces:&lt;br&gt;
&lt;strong&gt;Backend-&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vehicle Telematics API- for GPS data ingestion.&lt;/li&gt;
&lt;li&gt;Insight Generator Service- to create meaningful trip insights from GPS data.&lt;/li&gt;
&lt;li&gt;Fleet Dashboard API- for sending data to fleet dashboard.&lt;/li&gt;
&lt;li&gt;Fleet Auth Service- Uses Supabase to generate auth tokens for fleet managers and drivers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Frontend-&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fleet Manager Dashboard- allows user to monitor and configure their fleets. Gets them insights over their vehicles, drivers and trips.&lt;/li&gt;
&lt;li&gt;Driver Web App- to simulate GPS points of a driver. These data points would generally come from an OBD Tracker.&lt;/li&gt;
&lt;/ol&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%2Fovvush0q5mfm8u8vi93i.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%2Fovvush0q5mfm8u8vi93i.png" alt=" " width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used Golang for all my backend services and Next.js with ShadCN for the frontend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kiro Experience
&lt;/h3&gt;

&lt;p&gt;The process of developing each service was quite similar. I used the spec-driven development feature of Kiro.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firstly, we discussed the requirements. I explained what was expected from the service, where it fits in the bigger picture, what would be the limitations, SLA, etc.&lt;/li&gt;
&lt;li&gt;The second phase is design. We decide upon the tech stack, libraries, models, interactions with user, folder structure, etc. This phase solidified the expectations.&lt;/li&gt;
&lt;li&gt;The third phase is laying out tasks and executing them one at a time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For executing tasks, I tried out two approaches, one where I kept unit tests after each task. While it sure is a great practice, since this was a pet project and I needed the first iteration quick, in my second approach I kept testing for the end. It worked quite well for me. I feel giving time to the design and requirement phase is totally worth it. Also, I feel using strictly typed languages like Go and TypeScript surely helps with keeping such errors at bay.&lt;/p&gt;

&lt;p&gt;For each core service I repeated the above process, and it worked out well each time. But there was one exception. While working on Fleet Authentication Service, I slacked off a bit. I wasn't sure about how auth was implemented; I just knew we had an access and refresh token. So I gave AI the liberty to come up with endpoints and business logic. Things took a wrong turn after that and we ended up with an over-engineered authentication API. I scrapped it and made one only with the required endpoints. It worked well that time. Tbh, this is where I can picture myself as a developer. I had an unhealthy reliance on the assistant and it led me to redo the whole thing again. So yeah, that was a testimony of sorts.&lt;/p&gt;

&lt;p&gt;Anyways, I also tried out the vibe coding mode for bug fixes or small features that I wanted to implement. While in a professional setting I would use the spec-driven mode even for small features, here, keeping time constraint in mind, I went with vibe coding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note-&lt;/strong&gt; I mostly faced issues with my ids being integers. I should have gone with strings -_-.&lt;br&gt;
&lt;strong&gt;Note-&lt;/strong&gt; I used Claude for UI in the past and while it was functional and fast, it did not compare to UI-specific counterparts like bolt and lovable. So I was not so sure about Kiro. But it did dish out results comparable to bolt. Maybe because I used Shadcn, not Claude's beloved Material UI. Oh, and even theming was easy since most of the stuff was configurable in tailwind's global.css file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deployment
&lt;/h3&gt;

&lt;p&gt;As discussed before, I am poor. Or at least I don't have money to deploy pet projects, which is quite sad.&lt;br&gt;
I used all the free services available to me. Here are the details-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Supabase: I deployed my Postgres instance on their cloud and used their Authentication service. For free! Like a savage!
&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%2Fts4pyaeg3kk0lfklzjac.png" alt=" " width="203" height="249"&gt;
&lt;/li&gt;
&lt;li&gt;Render: Used my dearest render to deploy backend. Now I know they spin down the servers on free tier. The hack is to use the next service.&lt;/li&gt;
&lt;li&gt;Cron Job Org (&lt;a href="http://cron-job.org/)-" rel="noopener noreferrer"&gt;http://cron-job.org/)-&lt;/a&gt; It is a free cron job service. I made health endpoints and called them at 5 minute intervals. This is a forbidden technique. So don't misuse it okay!&lt;/li&gt;
&lt;li&gt;Vercel- I have been using Netlify in the past and I also had failed on deploying on Vercel in the past. This time I had power of friendship so it all worked out great.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  MCP Servers
&lt;/h3&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%2Fjr2ioi4txnuip9h5n8d4.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%2Fjr2ioi4txnuip9h5n8d4.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
I used two MCP servers one was querying my db. It was a simple Postgres MCP. Nothing fancy. But it worked like a charm when discussing requirements and bug fixing. I did not had to copy paste DDL files to LLM chat.&lt;br&gt;
I also used browser MCP, it worked like a charm when needed but yeah mostly I kept it off.&lt;br&gt;
I wanted to use an MCP that could look into my postman collection, but setting it up seemed quite lengthy. So I resorted to manual copy paste. &lt;br&gt;
Do let me know if you have any MCPs for me or if you have figured out MCP for postman. I personally prefer remote MCPs btw.&lt;/p&gt;

&lt;h3&gt;
  
  
  Closing thoughts
&lt;/h3&gt;

&lt;p&gt;So yeah that was the crux of my experience. I know its quite casual but its quite an opinionated topic and I feel this is how opinions should be expressed.&lt;/p&gt;

&lt;p&gt;Thank you to all the generous orgs like Render, Supabase, Kiro, Vercel and Cron job org for free tiers and credits. &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%2Fpf7yt82n8fzrvqy6wdyj.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%2Fpf7yt82n8fzrvqy6wdyj.png" alt=" " width="736" height="1036"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>ai</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
