<?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: Rakibul Alam</title>
    <description>The latest articles on DEV Community by Rakibul Alam (@rakibulmdalam).</description>
    <link>https://dev.to/rakibulmdalam</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%2F4046779%2F6b2eb766-b5a6-4b15-b4ba-69f8b66bebb6.jpg</url>
      <title>DEV Community: Rakibul Alam</title>
      <link>https://dev.to/rakibulmdalam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rakibulmdalam"/>
    <language>en</language>
    <item>
      <title>The 4 Metrics an Early-Stage AI Startup Should Actually Track</title>
      <dc:creator>Rakibul Alam</dc:creator>
      <pubDate>Sat, 08 Aug 2026 10:34:55 +0000</pubDate>
      <link>https://dev.to/rakibulmdalam/the-4-metrics-an-early-stage-ai-startup-should-actually-track-2oc5</link>
      <guid>https://dev.to/rakibulmdalam/the-4-metrics-an-early-stage-ai-startup-should-actually-track-2oc5</guid>
      <description>&lt;p&gt;There's a dashboard-shaped hole in most early-stage AI companies, and the usual instinct is to fill it with everything. Latency percentiles, token counts, cache hit rates, prompt versions, retrieval scores, a funnel, an NPS widget. Within a quarter you have forty charts and no idea which one to look at when something feels off.&lt;/p&gt;

&lt;p&gt;The problem isn't too little measurement. It's that measurement without a decision attached to it is just decoration.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A metric earns its place on the dashboard only if a specific number would make you do a specific thing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;By that test, an early-stage AI startup needs about four. Here they are, in the order they'll save you.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Time-to-diagnosis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;When an AI output is wrong, how long until you know why?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the metric that quietly governs your entire iteration speed, and almost nobody tracks it. A user says "the assistant gave me nonsense." Now the clock starts. Can you pull up that exact request, see the prompt that was assembled, the context that was retrieved, the model's raw output, and the tool calls it made — in minutes? Or does it take an afternoon of grepping logs and guessing?&lt;/p&gt;

&lt;p&gt;For an AI product this is harder than for a normal CRUD app, because failures are probabilistic and contextual. The same prompt can succeed and fail. So you need the actual inputs preserved, tied together by a request ID that follows the user's action from the frontend all the way through your retrieval, inference, and post-processing steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target:&lt;/strong&gt; Under 10 minutes from "here's the complaint" to "here's the offending trace." Miss it and you're not shipping improvements — you're shipping guesses.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Cost per successful outcome
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Are your unit economics real, or are you subsidizing every user?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most teams track cost per token or cost per API call. Those are inputs, not economics. The number that matters is cost per outcome your user actually values — a resolved support ticket, an accepted draft, a completed workflow. That's the denominator that lines up with revenue.&lt;/p&gt;

&lt;p&gt;Why "successful"? Because AI products spend real money on failures — the retry, the re-prompt, the multi-turn recovery, the human escalation. If you only count cost per API call you'll congratulate yourself on a cheap model while your effective cost per resolved ticket is 3× higher because a third of them need three attempts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target:&lt;/strong&gt; Know this number, updated daily, with its trend week over week. Alert when it moves more than ~20% in a week.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Task success rate
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is the product actually working, from the user's point of view?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uptime is not success. Your API can be at 99.9% while your assistant confidently hands users garbage. For an AI product, "working" is a quality judgment, so you need a lightweight, honest signal of it — thumbs up/down, an implicit signal like "did the user accept the suggestion or immediately redo it by hand," or a small offline eval set you run against every meaningful prompt or model change.&lt;/p&gt;

&lt;p&gt;The trap here is over-engineering. You do not need a research-grade eval harness at ten customers. You need a signal directional enough to catch a regression before your users do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target:&lt;/strong&gt; A success signal you trust enough to block a release on.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Lead time to production
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How fast can a good idea become a live change?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Commit to production — capturing the whole pipeline: review, CI, deploy friction, and the invisible tax of "is it safe to ship right now?" For AI teams it matters double, because so much of your improvement is empirical. You don't know if the new prompt is better until it's in front of users. A slow, scary path to production means you run fewer experiments, which means you learn slower — the only thing you can't afford.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target:&lt;/strong&gt; Minutes-to-hours, not days. Multiple safe deploys a day.&lt;/p&gt;




&lt;h2&gt;
  
  
  The twenty you can ignore (for now)
&lt;/h2&gt;

&lt;p&gt;Not because they're useless — because they don't yet change a decision at your stage. Detailed latency histograms, cache hit rates, per-endpoint error taxonomies, cohort retention curves, model-by-model A/B dashboards, infra utilization graphs. Every one of these becomes worth it eventually. Adding them now is how a four-person team ends up maintaining a monitoring stack instead of a product.&lt;/p&gt;

&lt;h2&gt;
  
  
  How they fit together
&lt;/h2&gt;

&lt;p&gt;Notice these four form a loop, not a list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Task success rate&lt;/strong&gt; tells you if there's a problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time-to-diagnosis&lt;/strong&gt; tells you why, fast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lead time&lt;/strong&gt; tells you how quickly you can ship the fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost per outcome&lt;/strong&gt; keeps the whole loop honest about money.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the entire early-stage operating picture: is it working, why not, how fast can we fix it, and can we afford it. Four numbers. Each one attached to a decision. Everything else can wait until you've earned the right to complexity.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>product</category>
      <category>startup</category>
    </item>
    <item>
      <title>Generative Observability</title>
      <dc:creator>Rakibul Alam</dc:creator>
      <pubDate>Wed, 05 Aug 2026 12:59:16 +0000</pubDate>
      <link>https://dev.to/rakibulmdalam/generative-observability-1nac</link>
      <guid>https://dev.to/rakibulmdalam/generative-observability-1nac</guid>
      <description>&lt;p&gt;Every AI startup I walk into has a graveyard of dashboards. There's the one someone built during the last incident, still pinned even though nobody remembers what it was for. There's the "overview" that tries to show everything and therefore shows nothing. There's a folder of near-duplicates — extraction quality, extraction quality (v2), extraction quality FINAL — each spawned by a question that the previous one couldn't quite answer.&lt;/p&gt;

&lt;p&gt;And still, the day something breaks, the dashboard you actually need does not exist.&lt;/p&gt;

&lt;p&gt;It's 2 a.m. Extraction quality on your document pipeline is down for one specific customer, on one specific document type, since roughly Tuesday. You have forty charts. None of them is that chart. So you do what everyone does: you open a query console and start writing SQL by hand, in the dark, under pressure, hoping you remember the schema.&lt;/p&gt;

&lt;p&gt;The instinct after that night is to build another dashboard. Resist it. The problem is not that you're missing a dashboard. The problem is the whole idea of pre-building them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A dashboard answers the question you had when you built it — never the one you have at 2 a.m.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the reframe. A dashboard is a frozen question. You picked the metrics, the grouping, the time window, the filters — all in advance, for a situation you were imagining, not the one you're in. Real incidents are specific in ways you can't anticipate. So teams try to anticipate harder: more dashboards, more filters, more drill-downs. The long tail of possible questions is effectively infinite, and you are trying to cover it by hand, one frozen question at a time. You will always lose that race.&lt;/p&gt;

&lt;h2&gt;
  
  
  What generative observability actually is
&lt;/h2&gt;

&lt;p&gt;Stop covering the tail by hand. Build a layer that covers it on demand.&lt;/p&gt;

&lt;p&gt;Generative observability is one addition to your stack: a natural-language command bar over your telemetry. You type the question you actually have — "why is extraction quality down this week?" — and instead of routing you to a pre-built view, it assembles a bespoke one, right then, for that question.&lt;/p&gt;

&lt;p&gt;Under the hood it's four unglamorous steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Interpret.&lt;/strong&gt; An LLM turns your sentence into a structured intent: the metric (extraction accuracy), the window (last 7 days vs. prior), the cut you probably care about (by customer, by document type).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan the views.&lt;/strong&gt; From that intent it chooses a small layout — a couple of KPI tiles, a trend line, a breakdown by the dimension in question, an offenders table. Not "write one query" but "decide which handful of views, together, answer this."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Query.&lt;/strong&gt; It compiles that plan into read-only queries against your warehouse or telemetry store and runs them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render.&lt;/strong&gt; It drops the results into those view components and shows you a dashboard that did not exist ninety seconds ago and will not exist ninety seconds from now.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The LLM isn't inventing your data or "reasoning about your numbers." It's doing translation — English to a query plan to a layout — over telemetry you already collect. Whatever your team does to answer a question by hand at 2 a.m., you're teaching the system to do the boring first pass.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this beats pre-building
&lt;/h2&gt;

&lt;p&gt;Three reasons, each one a thing a founder feels directly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It covers the long tail.&lt;/strong&gt; You still can't predict the 2 a.m. question — but now you don't have to. The bespoke view is generated for the question instead of the question being crammed into whatever view happens to exist. The view fits the question, not the reverse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anyone can ask.&lt;/strong&gt; Today, "why is quality down for this customer?" is answerable only by whoever knows the schema and the query language — usually one or two engineers, usually the tired ones. A command bar turns that into a sentence a support lead or a PM can type.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's honest about what you don't know yet.&lt;/strong&gt; A pre-built dashboard implies its metrics are the important ones. A blank command bar makes no such claim. It meets you where the incident actually is.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The proactive loop — where it becomes a weapon
&lt;/h2&gt;

&lt;p&gt;On its own, a command bar is a nice convenience. Paired with your alerting, it becomes an on-call weapon.&lt;/p&gt;

&lt;p&gt;Close the loop like this: an alert fires — "extraction quality dropped 13% in the last 24h." In most setups that's where the tooling stops and the human scramble begins. Here, the alert is a link. You click it, and the same generative layer receives the alert's context as a pre-filled question, and hands you the exact diagnostic view: the trend that shows when it broke, the breakdown that shows the drop is concentrated in one document type from one customer, the offenders table that surfaces the specific failing documents. Thirty seconds from page to probable cause.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Detect → ask → see → fix.&lt;/strong&gt; That loop is the actual product. Detection alone just wakes you up. Detection wired to instant, question-shaped diagnosis is what turns a two-hour incident into a ten-minute one — which, for a small team on call, is the difference between a rough night and a ruined week.&lt;/p&gt;

&lt;h2&gt;
  
  
  The right-sizing guardrail
&lt;/h2&gt;

&lt;p&gt;You still pre-build the handful of dashboards you look at every day. Generative observability is for the long tail, not the core. The four or five numbers you check with your coffee should be a fixed, fast, boring dashboard that loads the same way every morning. You do not want an LLM re-deriving your north-star metrics on every page load.&lt;/p&gt;

&lt;p&gt;And you must bound it, hard. You are pointing a language model at a window into your data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read-only, always.&lt;/strong&gt; The query path can select. It cannot write, drop, or mutate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scoped queries.&lt;/strong&gt; Query a curated set of views or a read replica — not raw production tables — with row limits, cost ceilings, and timeouts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metadata, not payloads.&lt;/strong&gt; It reasons over the shape of your data — counts, rates, aggregates — not raw customer documents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And don't build it before you have the telemetry to feed it. A generative layer over three log lines is worse than useless — it's confidently useless. First wrap your boundaries and get clean, structured telemetry flowing. Then put a command bar on top. Do it in that order or don't do it yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The payoff
&lt;/h2&gt;

&lt;p&gt;The graveyard of dashboards was never a tooling problem. It was a category error — trying to pre-answer an infinite set of questions with a finite set of frozen ones. You don't win that by building faster. You win it by building the answering machine once, keeping your daily few, and letting the long tail generate itself.&lt;/p&gt;

&lt;p&gt;What you get is a system you can talk to. An alert fires, you ask it what happened, and it shows you — in the shape of the question, not the shape of some dashboard you built for a different incident six months ago. Not fifty dashboards, but one layer that makes the fifty-first unnecessary.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>debugging</category>
      <category>monitoring</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
