<?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: Muthali Ganesh</title>
    <description>The latest articles on DEV Community by Muthali Ganesh (@muthali).</description>
    <link>https://dev.to/muthali</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F677858%2F0c949c7c-5f8e-4dfb-bb45-b294b0e443a9.jpg</url>
      <title>DEV Community: Muthali Ganesh</title>
      <link>https://dev.to/muthali</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muthali"/>
    <language>en</language>
    <item>
      <title>What is specification driven development with coding agents? Lessons from 40+ successful builds</title>
      <dc:creator>Muthali Ganesh</dc:creator>
      <pubDate>Sat, 26 Sep 2026 03:51:31 +0000</pubDate>
      <link>https://dev.to/muthali/what-is-specification-driven-development-with-coding-agents-lessons-from-40-successful-builds-5815</link>
      <guid>https://dev.to/muthali/what-is-specification-driven-development-with-coding-agents-lessons-from-40-successful-builds-5815</guid>
      <description>&lt;p&gt;The velocity that AI agents bring to virtually any use case can never be overstated. One prime use case is its utility as coding agents. With one prompt and a general sense of direction, anybody anywhere can generate working code - but for it to work meaningfully within a codebase is a different matter altogether. Piecing together chunks of code requires careful oversight and rarely works in the first go. Specification driven development is the way to make sure you get it right the first time, all the time.&lt;/p&gt;

&lt;p&gt;In the year 2026 alone, we at GoML have deployed 40+ AI systems into production using specification driven development with Claude Code, so here’s a distilled guide with all of our learnings and insight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where vibe coding starts to faulter
&lt;/h2&gt;

&lt;p&gt;Vibe coding is the term for when building software is done by assembling prompt-generated code, rather than thorough system-design level thinking.&lt;/p&gt;

&lt;p&gt;Conversational coding depends on the engineer to hold the entire system design in mind while patching different bits of code together. As changes cascade across the variety of modules, iterative patching often produces friction that makes the codebase clunky.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AI coding agents need more than prompts
&lt;/h2&gt;

&lt;p&gt;The conventional loop of AI-assisted engineering is pretty straightforward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write a prompt&lt;/li&gt;
&lt;li&gt;Receive generated code&lt;/li&gt;
&lt;li&gt;Review the difference&lt;/li&gt;
&lt;li&gt;Apply a correction. And then repeat.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For isolated scripts, single-function utilities or CSS adjustments, this dynamic works reasonably well. This mechanism falls apart once an agent transitions from autocompleting functions to implementing multi-tiered features.&lt;/p&gt;

&lt;p&gt;In real-world codebases for important software functions, features almost always span multiple files and alter shared abstractions while demanding precise error handling. When you rely solely on natural-language prompts, context gradually degrades as the conversational history grows.&lt;/p&gt;

&lt;p&gt;The fundamental issue in modern AI-assisted engineering/coding is how do you manage to preserve intent throughout the session. Without a persistent anchor, the model makes micro-decisions based on immediate context windows rather than overall architecture.&lt;/p&gt;

&lt;p&gt;This- causes the implementation to drift away from the system's actual requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  How specification driven development works
&lt;/h2&gt;

&lt;p&gt;SDD reorganizes an AI coding session around three documents instead of one verbose conversation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A spec:&lt;/strong&gt; A plain language document to describe what a change should do and what it should explicitly not do. This is written before any code is generated. Call this file SPEC.md.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A plan:&lt;/strong&gt; The spec broken into a numbered, ordered sequence of implementation tasks, naming the files involved. (PLAN.md)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The code:&lt;/strong&gt; Generated by your AI assistant against the plan, one task at a time, with a human checkpoint between phases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The exact form of a specification varies across the industry and context. Some organizations adopt strict JSON schemas, while others rely on GitHub Spec Kit or similar tooling.&lt;/p&gt;

&lt;p&gt;In practice, SDD requires no specialized framework or heavy toolchain. The discipline functions reliably using standard Markdown documents committed directly to the project repository alongside the source code. The core premise remains the same, which is you externalize the intent into persistent files such that it isn’t reliant on the temporary memory of each chat session. This is its winning differentiator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Specification driven development v/s vibe coding
&lt;/h2&gt;

&lt;p&gt;SDD verifies that the feature does what the requirement says, across files and services that no unit test records. Vibe coding misses out on this&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;TDD&lt;/th&gt;
&lt;th&gt;BDD&lt;/th&gt;
&lt;th&gt;Vibe coding&lt;/th&gt;
&lt;th&gt;Spec driven development&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Primary artifact&lt;/td&gt;
&lt;td&gt;Unit tests&lt;/td&gt;
&lt;td&gt;Given-When-Then scenarios&lt;/td&gt;
&lt;td&gt;Natural language prompts&lt;/td&gt;
&lt;td&gt;A written spec on disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scope&lt;/td&gt;
&lt;td&gt;One function&lt;/td&gt;
&lt;td&gt;Cross-functional behaviour&lt;/td&gt;
&lt;td&gt;Whatever the prompt covers&lt;/td&gt;
&lt;td&gt;Feature-wide architectural intent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where truth lives&lt;/td&gt;
&lt;td&gt;The test suite&lt;/td&gt;
&lt;td&gt;Workshop notes&lt;/td&gt;
&lt;td&gt;Chat history&lt;/td&gt;
&lt;td&gt;The versioned spec file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Validation&lt;/td&gt;
&lt;td&gt;Automated test run&lt;/td&gt;
&lt;td&gt;Human reference&lt;/td&gt;
&lt;td&gt;Manual review, if any&lt;/td&gt;
&lt;td&gt;Review gate per phase, plus tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Survives a session restart&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Partly&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The three levels of specification rigour
&lt;/h2&gt;

&lt;p&gt;It is not necessary that every spec needs to be a permanent artifact. Although, you must decide upfront where a given piece of work sits.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Spec First:&lt;/strong&gt; The specification is drafted to guide the initial build and is allowed to go stale once the feature merges. This minimizes overhead in case you need isolated feature additions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spec Anchored:&lt;/strong&gt; The specification is actively maintained and updated throughout the system lifecycle. This provides documentation for long-lived systems, regulatory audits and in if your code base will need additional developer onboarding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spec-as-Source:&lt;/strong&gt; The specification is the primary artifact engineers edit, while application code is regenerated programmatically via automated pipelines. This requires reasonably mature compiler infrastructure and is suited to strict, API-first environments.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Claude Code points you toward specification driven development (SDD)
&lt;/h2&gt;

&lt;p&gt;SDD is not a workaround you are bolting onto Claude Code. In fact, Anthropic's own team recommends similar workflows. They themselves recommend the EPIC pattern which stands for Explore, Plan, Implement and Commit.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter Plan Mode on Claude Code so Claude can read files and answer questions without touching anything yet.&lt;/li&gt;
&lt;li&gt;Ask it to turn that exploration into a concrete implementation plan.&lt;/li&gt;
&lt;li&gt;Review and edit that plan directly.&lt;/li&gt;
&lt;li&gt;Switch out of Plan Mode to let it write code and open a PR.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While Anthropic’s EPIC pattern helps lay the groundwork, true specification driven development takes that logic one step further. Plan Mode operates entirely inside active session memory - which basically means it vanishes the moment you clear the prompt history or restart your terminal. It offers a single review checkpoint before code generation begins.&lt;/p&gt;

&lt;p&gt;Specification driven development takes the intent of Plan Mode and turns it into persistent batch of repository files - enabling longer context work. By writing the specification and plan directly to disk, the work survives resets and also introduces distinct review checkpoints between all stages of execution.&lt;/p&gt;

&lt;p&gt;You do not need external orchestration frameworks or complex tooling to run this workflow. Claude Code natively supports persistent specification driven engineering through four built-in extension points.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to get started with specification driven development
&lt;/h2&gt;

&lt;p&gt;First, your project configuration file serves as the anchor. Placing references to active specifications and global design standards directly inside this configuration ensures that any new agent instance immediately respects existing architectural patterns.&lt;/p&gt;

&lt;p&gt;Second, Plan Mode allows the agent to inspect dependencies, verify file trees and draft the implementation plan without generating any code.&lt;/p&gt;

&lt;p&gt;Third, the agent can spawn dedicated subagents to review generated diffs or execute discrete tasks from a clean context window - and thus, totally preventing conversational drift and hallucinating.&lt;/p&gt;

&lt;p&gt;Finally, automated hooks tend to enfoce deterministic “completion” criteria.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read-only planning in Claude Code
&lt;/h2&gt;

&lt;p&gt;Claude first explores the codebase in read-only mode, gathers the relevant context, and only then drafts the implementation plan.&lt;/p&gt;

&lt;p&gt;The plan then turns that exploration into a concrete sequence of steps, files, and verification checks.&lt;/p&gt;

&lt;p&gt;This keeps the work 'grounded' before any code changes happen. This is the key difference between guessing and planning. Claude inspects the codebase first, then converts that understanding into an implementation roadmap.&lt;/p&gt;

&lt;p&gt;Plan Mode separates discovery from implementation, helping Claude build a grounded plan before any files change.&lt;/p&gt;

&lt;h2&gt;
  
  
  The route to mastery in SDD for GoML
&lt;/h2&gt;

&lt;p&gt;The progression toward specification driven development was forged directly through our production builds over the past three years. Early in 2025, before native planning features existed in Claude Code, we engineered an end-to-end report generation engine that orchestrated data ingestion, context retrieval, synthesis and final document assembly. Mostly because the platform lacked innate ways to pause and structure execution, we had to enforce planning through manual conventions.&lt;/p&gt;

&lt;p&gt;Then, as native planning features arrived, we relied heavily on SDD to build Proxure’s spend analytics platform - where the application required translating freeform prompts into reliable SQL and complex data exports, all while maintaining state across iterative queries. Plan Mode gave the agent the operational pause it needed to map out multi-step logic safely within an active session.&lt;/p&gt;

&lt;p&gt;The real inflection point came with GoML’s work for HealthOrbit, where we automated clinical documentation pipelines encompassing template creation, entity extraction, data validation and compliance governance. Given the zero-tolerance necessity for workflow disruption in healthcare/clinical environments, conversational prompting and in-memory planning were insufficient. Anchoring Claude Code to repository-native specifications gave the agent immutable boundaries for every regulatory requirement and data contract.&lt;/p&gt;

&lt;p&gt;Looking back across these systems, the takeaway is quite clear - every one of them would be built with full specification driven development today. When an architecture demands cross-stage validation, strict domain governance and persistent operational intent, early coding velocity matters far less than systemic control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;The prime value of specification driven development lies in prioritizing system design over perpetual debugging. Contrary to popular belief, software engineering with AI does not remove the need for technical mastery, if anything it elevates it’s significance if the goal is to deliver dependable systems that work at scale.&lt;br&gt;
`&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>devops</category>
    </item>
    <item>
      <title>Amazon Nova 2: A Developer's Guide to Lite, Pro, and Omni</title>
      <dc:creator>Muthali Ganesh</dc:creator>
      <pubDate>Mon, 14 Sep 2026 20:31:34 +0000</pubDate>
      <link>https://dev.to/muthali/amazon-nova-2-a-developers-guide-to-lite-pro-and-omni-15m1</link>
      <guid>https://dev.to/muthali/amazon-nova-2-a-developers-guide-to-lite-pro-and-omni-15m1</guid>
      <description>&lt;h1&gt;
  
  
  Amazon Nova 2: A Developer's Guide to Lite, Pro, and Omni
&lt;/h1&gt;

&lt;p&gt;Amazon's Nova model family has evolved significantly since its launch in 2024.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Nova 2&lt;/strong&gt;, AWS is positioning the family as a more capable alternative for developers building AI applications on Amazon Bedrock, particularly when cost, throughput, reasoning, and multimodal capabilities matter.&lt;/p&gt;

&lt;p&gt;The interesting part isn't simply that Nova 2 is "more powerful."&lt;/p&gt;

&lt;p&gt;It's that AWS has expanded the family into different models designed for different workloads:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nova 2 Lite&lt;/strong&gt; — optimized for high-volume, lower-cost workloads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nova 2 Pro&lt;/strong&gt; — designed for deeper reasoning and complex multimodal tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nova 2 Omni&lt;/strong&gt; — designed for broader multimodal, Any-to-Any workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So which one should developers use?&lt;/p&gt;

&lt;p&gt;Let's break it down.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Amazon Nova 2?
&lt;/h2&gt;

&lt;p&gt;Amazon Nova 2 is the second generation of Amazon's foundation models available through AWS.&lt;/p&gt;

&lt;p&gt;Compared with the original Nova family, Nova 2 focuses on several areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better reasoning&lt;/li&gt;
&lt;li&gt;Longer context&lt;/li&gt;
&lt;li&gt;Improved multilingual capabilities&lt;/li&gt;
&lt;li&gt;Higher throughput&lt;/li&gt;
&lt;li&gt;Lower inference costs&lt;/li&gt;
&lt;li&gt;Multimodal processing&lt;/li&gt;
&lt;li&gt;Speech understanding&lt;/li&gt;
&lt;li&gt;More control over reasoning depth&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to make the models more practical for production AI applications rather than limiting them to simple chat or content-generation tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Nova 2 model family
&lt;/h2&gt;

&lt;p&gt;The easiest way to understand Nova 2 is to think about the three models as different points on a cost-versus-capability spectrum.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Reasoning&lt;/th&gt;
&lt;th&gt;Multimodal&lt;/th&gt;
&lt;th&gt;Key advantage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nova 2 Lite&lt;/td&gt;
&lt;td&gt;High-volume AI workloads&lt;/td&gt;
&lt;td&gt;Moderate&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Cost and speed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nova 2 Pro&lt;/td&gt;
&lt;td&gt;Complex AI workloads&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Reasoning and context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nova 2 Omni&lt;/td&gt;
&lt;td&gt;Advanced multimodal workflows&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Very high&lt;/td&gt;
&lt;td&gt;Any-to-Any processing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Let's look at each model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nova 2 Lite
&lt;/h2&gt;

&lt;p&gt;Nova 2 Lite is the model I'd look at first for applications where inference volume matters.&lt;/p&gt;

&lt;p&gt;It is designed for workloads such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customer support&lt;/li&gt;
&lt;li&gt;Chatbots&lt;/li&gt;
&lt;li&gt;Classification&lt;/li&gt;
&lt;li&gt;Document processing&lt;/li&gt;
&lt;li&gt;Summarization&lt;/li&gt;
&lt;li&gt;Content generation&lt;/li&gt;
&lt;li&gt;Automation&lt;/li&gt;
&lt;li&gt;Agent workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the biggest changes from the previous Nova Lite is the addition of &lt;strong&gt;extended thinking&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Developers can control how much reasoning the model performs, effectively allowing a trade-off between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More reasoning → potentially better results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less reasoning → faster and cheaper responses&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nova 2 Lite also supports more than 200 languages, making it useful for applications serving international users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nova 2 Lite benchmarks
&lt;/h3&gt;

&lt;p&gt;According to Amazon's benchmark comparisons, Nova 2 Lite was equal to or better than:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Haiku 4.5 on 13 of 15 benchmarks&lt;/li&gt;
&lt;li&gt;GPT-5 Mini on 11 of 17 benchmarks&lt;/li&gt;
&lt;li&gt;Gemini Flash 2.5 on 14 of 18 benchmarks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These results shouldn't be interpreted as meaning Nova 2 Lite is universally better.&lt;/p&gt;

&lt;p&gt;Benchmarks depend heavily on the task, evaluation methodology, prompting and model configuration.&lt;/p&gt;

&lt;p&gt;But they do indicate that Nova 2 Lite is targeting the same general category as other efficient frontier models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nova 2 Pro
&lt;/h2&gt;

&lt;p&gt;Nova 2 Pro sits at the higher end of the Nova 2 family.&lt;/p&gt;

&lt;p&gt;It is designed for applications that require more sophisticated reasoning and multimodal processing.&lt;/p&gt;

&lt;p&gt;The model can work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;li&gt;Speech&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of its most notable capabilities is a &lt;strong&gt;1-million-token context window&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That can be particularly useful for applications involving large amounts of information, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Long documents&lt;/li&gt;
&lt;li&gt;Enterprise knowledge bases&lt;/li&gt;
&lt;li&gt;Large codebases&lt;/li&gt;
&lt;li&gt;Research workflows&lt;/li&gt;
&lt;li&gt;Complex analysis&lt;/li&gt;
&lt;li&gt;Multi-step agents&lt;/li&gt;
&lt;li&gt;Large multimodal inputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nova 2 Pro can also be used as a teacher model for knowledge distillation, allowing developers to use a more capable model to help create smaller specialized models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nova 2 Pro benchmarks
&lt;/h3&gt;

&lt;p&gt;According to Amazon's comparisons, Nova 2 Pro was equal to or better than:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Sonnet 4.5 on 10 of 16 benchmarks&lt;/li&gt;
&lt;li&gt;GPT-5.1 on 8 of 16 benchmarks&lt;/li&gt;
&lt;li&gt;Gemini 2.5 Pro on 15 of 19 benchmarks&lt;/li&gt;
&lt;li&gt;Gemini 3 Pro Preview on 8 of 18 benchmarks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Again, benchmark results are useful for comparison, but developers should test models against their own workloads before making a production decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nova 2 Omni
&lt;/h2&gt;

&lt;p&gt;Nova 2 Omni takes a different approach.&lt;/p&gt;

&lt;p&gt;Instead of simply being a more powerful reasoning model, Omni is designed as an &lt;strong&gt;Any-to-Any multimodal model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means it is intended for workflows where multiple input and output modalities need to work together.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Text
  ↓
Nova 2 Omni
  ↓
Text / Image / Speech / Video
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens up possibilities for applications involving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual understanding&lt;/li&gt;
&lt;li&gt;Speech&lt;/li&gt;
&lt;li&gt;Video analysis&lt;/li&gt;
&lt;li&gt;Image editing&lt;/li&gt;
&lt;li&gt;Multimodal agents&lt;/li&gt;
&lt;li&gt;Media workflows&lt;/li&gt;
&lt;li&gt;Conversational applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Omni isn't necessarily the model every application needs.&lt;/p&gt;

&lt;p&gt;If your application is primarily text-based and requires inexpensive inference, Nova 2 Lite may make more sense.&lt;/p&gt;

&lt;p&gt;If you need complex reasoning and large context, Nova 2 Pro may be the better choice.&lt;/p&gt;

&lt;p&gt;Omni becomes more interesting when &lt;strong&gt;multiple modalities are central to the application&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nova 2 pricing
&lt;/h2&gt;

&lt;p&gt;One of the strongest arguments for Nova 2 is cost efficiency.&lt;/p&gt;

&lt;p&gt;The original comparison published by GoML lists approximately:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input / 1M tokens&lt;/th&gt;
&lt;th&gt;Output / 1M tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nova 2 Lite&lt;/td&gt;
&lt;td&gt;$0.30&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nova 2 Pro&lt;/td&gt;
&lt;td&gt;~$1.25&lt;/td&gt;
&lt;td&gt;~$10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude 4.5 Sonnet&lt;/td&gt;
&lt;td&gt;~$12+&lt;/td&gt;
&lt;td&gt;~$12+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5 Mini / 5.1&lt;/td&gt;
&lt;td&gt;~$8–10&lt;/td&gt;
&lt;td&gt;~$8–10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini 3 Pro&lt;/td&gt;
&lt;td&gt;~$18&lt;/td&gt;
&lt;td&gt;~$18&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pricing can change, so developers should always verify current Amazon Bedrock pricing before building a cost model.&lt;/p&gt;

&lt;p&gt;The important point is that &lt;strong&gt;raw token price isn't the only metric that matters&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For production systems, you should also measure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latency&lt;/li&gt;
&lt;li&gt;Throughput&lt;/li&gt;
&lt;li&gt;Output quality&lt;/li&gt;
&lt;li&gt;Retry rate&lt;/li&gt;
&lt;li&gt;Context requirements&lt;/li&gt;
&lt;li&gt;Reasoning requirements&lt;/li&gt;
&lt;li&gt;Tool-call reliability&lt;/li&gt;
&lt;li&gt;Cost per successful task&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A cheaper model that requires multiple retries may ultimately cost more than a slightly more expensive model that completes the task correctly on the first attempt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nova 2 vs the original Nova
&lt;/h2&gt;

&lt;p&gt;If you're already using Nova, the upgrade is more than just a model refresh.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Capability&lt;/th&gt;
&lt;th&gt;Nova 1&lt;/th&gt;
&lt;th&gt;Nova 2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reasoning&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Extended thinking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Languages&lt;/td&gt;
&lt;td&gt;More limited&lt;/td&gt;
&lt;td&gt;200+ languages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context&lt;/td&gt;
&lt;td&gt;Smaller&lt;/td&gt;
&lt;td&gt;Up to 1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multimodal&lt;/td&gt;
&lt;td&gt;More fragmented&lt;/td&gt;
&lt;td&gt;More unified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speech&lt;/td&gt;
&lt;td&gt;Limited/none&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Throughput&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost efficiency&lt;/td&gt;
&lt;td&gt;Higher baseline&lt;/td&gt;
&lt;td&gt;Improved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image/video capabilities&lt;/td&gt;
&lt;td&gt;More limited&lt;/td&gt;
&lt;td&gt;Expanded&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The biggest practical improvement is that developers can build more sophisticated workflows without having to stitch together as many different models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Nova 2 model should you use?
&lt;/h2&gt;

&lt;p&gt;Here's the simple decision tree I'd use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose Nova 2 Lite if:
&lt;/h3&gt;

&lt;p&gt;You care about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High request volume&lt;/li&gt;
&lt;li&gt;Low latency&lt;/li&gt;
&lt;li&gt;Low cost&lt;/li&gt;
&lt;li&gt;Chat applications&lt;/li&gt;
&lt;li&gt;Classification&lt;/li&gt;
&lt;li&gt;Summarization&lt;/li&gt;
&lt;li&gt;Document automation&lt;/li&gt;
&lt;li&gt;Straightforward agents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start with Lite unless your application has a specific reason to require a more capable model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose Nova 2 Pro if:
&lt;/h3&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex reasoning&lt;/li&gt;
&lt;li&gt;Large context&lt;/li&gt;
&lt;li&gt;Multimodal reasoning&lt;/li&gt;
&lt;li&gt;Long documents&lt;/li&gt;
&lt;li&gt;Complex agents&lt;/li&gt;
&lt;li&gt;Advanced planning&lt;/li&gt;
&lt;li&gt;More sophisticated analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 1M-token context window can also make Pro particularly interesting for applications where context size is a bottleneck.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose Nova 2 Omni if:
&lt;/h3&gt;

&lt;p&gt;Your application fundamentally depends on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;li&gt;Speech&lt;/li&gt;
&lt;li&gt;Multimodal inputs and outputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Omni is less about simply getting "better text responses" and more about building applications around multiple modalities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nova 2 for AI agents
&lt;/h2&gt;

&lt;p&gt;One of the more interesting use cases for Nova 2 is agentic AI.&lt;/p&gt;

&lt;p&gt;A typical agent might need to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understand a user request&lt;/li&gt;
&lt;li&gt;Retrieve information&lt;/li&gt;
&lt;li&gt;Reason about the results&lt;/li&gt;
&lt;li&gt;Call external tools&lt;/li&gt;
&lt;li&gt;Inspect documents or images&lt;/li&gt;
&lt;li&gt;Decide what to do next&lt;/li&gt;
&lt;li&gt;Generate a response&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Older or smaller models can struggle when several of these steps need to happen reliably.&lt;/p&gt;

&lt;p&gt;Nova 2's reasoning capabilities make it more suitable for these multi-step workflows.&lt;/p&gt;

&lt;p&gt;A simplified architecture could look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
  ↓
Agent
  ↓
Nova 2
  ↓
┌───────────────┐
│ Tool calls    │
│ RAG           │
│ APIs          │
│ Databases     │
│ Documents     │
└───────────────┘
  ↓
Final response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important thing is not to automatically use the most powerful model for every step.&lt;/p&gt;

&lt;p&gt;A better architecture may use different models for different parts of the workflow.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Simple classification
        ↓
   Nova 2 Lite

Complex reasoning
        ↓
    Nova 2 Pro

Multimodal analysis
        ↓
   Nova 2 Omni
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can help control inference costs while maintaining quality where it matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Nova 2 better than GPT, Claude or Gemini?
&lt;/h2&gt;

&lt;p&gt;There isn't a universal winner.&lt;/p&gt;

&lt;p&gt;Different models perform differently depending on the task.&lt;/p&gt;

&lt;p&gt;For developers, the better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which model gives me the best cost-adjusted performance for my workload?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example, you might compare models using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cost per successful task
        +
Latency
        +
Accuracy
        +
Reliability
        +
Context requirements
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A model that wins a benchmark but performs poorly on your application's real data isn't necessarily the right model.&lt;/p&gt;

&lt;p&gt;If you're deploying on AWS already, Nova 2 has another advantage: it fits naturally into the Amazon Bedrock ecosystem.&lt;/p&gt;

&lt;p&gt;That can simplify infrastructure, security, access control and model management for AWS-based applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should developers test?
&lt;/h2&gt;

&lt;p&gt;Before choosing Nova 2 for production, build a small evaluation set.&lt;/p&gt;

&lt;p&gt;Include real examples from your application rather than generic benchmark questions.&lt;/p&gt;

&lt;p&gt;For each model, measure:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;What to measure&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy&lt;/td&gt;
&lt;td&gt;Does it produce the correct answer?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;How quickly does it respond?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Cost per request/task&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;How often does it fail?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reasoning&lt;/td&gt;
&lt;td&gt;Can it complete multi-step tasks?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context&lt;/td&gt;
&lt;td&gt;How much information can it handle?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multimodal quality&lt;/td&gt;
&lt;td&gt;How well does it understand images/video/audio?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Then calculate the &lt;strong&gt;cost per successful task&lt;/strong&gt;, not just the cost per million tokens.&lt;/p&gt;

&lt;p&gt;That's usually a much more useful metric for production AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Nova 2 makes Amazon's model lineup considerably more interesting for developers building on AWS.&lt;/p&gt;

&lt;p&gt;The biggest change isn't simply better benchmark scores.&lt;/p&gt;

&lt;p&gt;It's the combination of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More capable reasoning&lt;/li&gt;
&lt;li&gt;Longer context&lt;/li&gt;
&lt;li&gt;Better multimodal support&lt;/li&gt;
&lt;li&gt;Lower inference costs&lt;/li&gt;
&lt;li&gt;Higher throughput&lt;/li&gt;
&lt;li&gt;More control over reasoning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For most high-volume applications, &lt;strong&gt;Nova 2 Lite is a logical starting point&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For complex reasoning and large-context applications, &lt;strong&gt;Nova 2 Pro&lt;/strong&gt; is more compelling.&lt;/p&gt;

&lt;p&gt;And for applications where text, image, video and speech need to work together, &lt;strong&gt;Nova 2 Omni&lt;/strong&gt; is the model worth exploring.&lt;/p&gt;

&lt;p&gt;The best approach, however, is still the same one developers should use with any LLM:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmark the model against your actual workload before committing to it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your application—not a leaderboard—should determine which model wins.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article is adapted from GoML's original Nova 2 analysis and rewritten for a developer-focused audience.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Original: &lt;a href="https://www.goml.io/blog/nova-2-guide?utm_source=dev.to"&gt;GoML — Nova 2 Guide&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>llm</category>
    </item>
    <item>
      <title>Schema tester</title>
      <dc:creator>Muthali Ganesh</dc:creator>
      <pubDate>Sat, 06 Apr 2024 19:12:04 +0000</pubDate>
      <link>https://dev.to/muthali/schema-tester-1af0</link>
      <guid>https://dev.to/muthali/schema-tester-1af0</guid>
      <description>&lt;p&gt;&lt;code&gt;&amp;lt;!-- JSON-LD markup generated by Google Structured Data Markup Helper. --&amp;gt;&lt;br&gt;
&amp;lt;script type="application/ld+json"&amp;gt;&lt;br&gt;
{&lt;br&gt;
  "@context": "http://schema.org",&lt;br&gt;
  "@type": "Article",&lt;br&gt;
  "name": "All-weather road gives a strategic fillip to Ladakh",&lt;br&gt;
  "author": [&lt;br&gt;
    {&lt;br&gt;
      "@type": "Person",&lt;br&gt;
      "name": "Peerzada Ashiq"&lt;br&gt;
    },&lt;br&gt;
    {&lt;br&gt;
      "@type": "Person",&lt;br&gt;
      "name": "Peerzada Ashiq"&lt;br&gt;
    }&lt;br&gt;
  ],&lt;br&gt;
  "datePublished": "2024-04-07T00:15",&lt;br&gt;
  "image": "https://th-i.thgim.com/public/incoming/lns9r3/article68037534.ece/alternates/LANDSCAPE_1200/PTI03_27_2024_000017A.jpg",&lt;br&gt;
  "articleBody": "The Border Roads Organisation’s (BRO) latest feat in Ladakh, connecting Himachal Pradesh and Leh through the Nimmu-Padam-Darcha road, has come as a shot in the arm for security forces stationed in the region, and added significantly to India’s strategic depth in the hostile border neighbourhood. &amp;lt;/P&amp;gt;&amp;lt;DIV class=\"article-ad\"&amp;gt;&amp;lt;DIV class=\"dfp-ad articleinlinead\" id=\"Desktop_AT_Mid01\" style=\"min-height: 90px;\"&amp;gt;&amp;lt;/DIV&amp;gt;&amp;lt;/DIV&amp;gt;&amp;lt;P&amp;gt;The BRO’s breakthrough, achieved on March 27 this year, has paved the way to open up the far-off Zanskar Valley for the safest ordnance depot, away from the prying eyes of China and Pakistan, officials privy to the development told &amp;lt;I&amp;gt;The Hindu"&lt;br&gt;
}&lt;br&gt;
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to scrape google search results in Google sheets ?</title>
      <dc:creator>Muthali Ganesh</dc:creator>
      <pubDate>Wed, 08 Sep 2021 09:59:10 +0000</pubDate>
      <link>https://dev.to/muthali/how-to-scrape-google-search-results-in-google-sheets-2eoo</link>
      <guid>https://dev.to/muthali/how-to-scrape-google-search-results-in-google-sheets-2eoo</guid>
      <description>&lt;p&gt;I had written this original article on my website aozata.com . Wanted to share this method with the dev community here at Dev.to.&lt;/p&gt;

&lt;p&gt;Here are steps to scrape google search results in google sheets. It only gets 10 results per search query. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a google sheet in your google drive.&lt;/li&gt;
&lt;li&gt;Create a google custom search engine.&lt;/li&gt;
&lt;li&gt;Enable search the entire web.&lt;/li&gt;
&lt;li&gt;Copy your google custom search engine id.&lt;/li&gt;
&lt;li&gt;Get your google custom search api key from here&lt;/li&gt;
&lt;li&gt;Formulate your api key in this format.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://www.googleapis.com/customsearch/v1?key=%7BYOUR_API_KEY%7D&amp;amp;cx=%7BCUSTOM_SEARCH_ENGINE_ID%7D&amp;amp;q=%7BKEYWORD%7D" rel="noopener noreferrer"&gt;https://www.googleapis.com/customsearch/v1?key={YOUR_API_KEY}&amp;amp;cx={CUSTOM_SEARCH_ENGINE_ID}&amp;amp;q={KEYWORD}&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;key is your API key, &lt;br&gt;
cx is your google custom search id.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In your google sheets, go to tools-&amp;gt; script editor-&amp;gt; paste the following code-&amp;gt;save the file as ImportJSON.gs. The ImportJSON.gs can be downloaded from here &lt;a href="https://www.aozata.com/importjson-gs/" rel="noopener noreferrer"&gt;https://www.aozata.com/importjson-gs/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the cx, key, search query (q), API URL in different cells.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use the concatenate function to join all these 4 variables to get your final API URL. For example&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;=concatenate(D4,D2,"&amp;amp;cx=",D1,"&amp;amp;q=",D3)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use the ImportJSON function to import the google search results. for example to get the title of the search results&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;=ImportJSON($D$5,"/items/title","noHeaders")&lt;/p&gt;

&lt;p&gt;You can buy this google sheet from &lt;a href="https://www.aozata.com/product/scrape-youtube-search-results-in-google-sheets/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
