<?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: Diana Aliya</title>
    <description>The latest articles on DEV Community by Diana Aliya (@evaaliya).</description>
    <link>https://dev.to/evaaliya</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4078423%2F9a396bb2-d49b-467b-9187-8af09be35e19.gif</url>
      <title>DEV Community: Diana Aliya</title>
      <link>https://dev.to/evaaliya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/evaaliya"/>
    <language>en</language>
    <item>
      <title>Agents for Humans</title>
      <dc:creator>Diana Aliya</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:02:46 +0000</pubDate>
      <link>https://dev.to/evaaliya/agents-for-humans-1id6</link>
      <guid>https://dev.to/evaaliya/agents-for-humans-1id6</guid>
      <description>&lt;h2&gt;
  
  
  The Problem, In One Sentence
&lt;/h2&gt;

&lt;p&gt;Data catalogs are excellent at telling you your data is broken. They are considerably worse at actually fixing it. Someone still has to write the SQL, get it reviewed, and ship it. Albugent tries to close that specific gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;p&gt;It scans SQLite datasets, finds the classics—negative billing amounts, NULL patient names, exposed PII—and generates a targeted fix for each. No giant, all-or-nothing SQL script. Just one isolated fix per problem, where you click Approve or Reject and move on. There's also a full CLI mode where an agent investigates everything on its own and opens a GitHub PR with a written report.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2fk7tg7pxohy3qchpen1.jpeg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2fk7tg7pxohy3qchpen1.jpeg" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  And Here's the Part I Actually Care About
&lt;/h2&gt;

&lt;p&gt;The agent never touches the database. Not because it was told not to in a system prompt, but because it cannot. No write-access function is exposed to its runtime. Only a plain Python function, triggered strictly by a human clicking Approve, can execute any writes.&lt;br&gt;
I went back and forth on whether this was overkill for a hackathon demo. It was not. The one time I let a patch auto-apply, it overwrote a legitimately empty column—a delivery date for an order still in transit—with a default value, because the logic hadn't yet learned the difference between "this is broken" and "this is just what normal looks like sometimes." Small bug on a demo dataset, but absolutely unacceptable in production.&lt;br&gt;
The point is: don't ask the model to be careful. Just don't give it the capabilities to be careless.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things That Actually Broke (Said With Love)
&lt;/h2&gt;

&lt;p&gt;A risk-scoring function had a parameter mismatch that silently zeroed out risk scores for a while, and I didn't notice because the flat numbers looked fine. A date-matching check happily paired two unrelated date columns together because it only asked "does this look like a date," never "should these two go together." Neither of these is a dramatic bug, but both would've been mortifying to demo if I hadn't caught them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd Tell Someone Doing This Next
&lt;/h2&gt;

&lt;p&gt;Don't let the LLM do arithmetic or decide what "risky" means through vibes and a hopeful prompt when you can just compute it. Save the model for what's genuinely hard to hardcode—prioritizing the investigation or writing summaries humans actually want to read. Everything else with exactly one correct answer belongs in code, not in a model that is confidently wrong exactly as often as it is confidently right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thanks&lt;/strong&gt;&lt;br&gt;
Special thanks to AWS for hosting this hackathon, providing access to Bedrock, and building the infrastructure around Strands and MCP that made integrating agentic workflows into this architecture so seamless.&lt;br&gt;
Project Links&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/evaaliya/albugent_v2.0w" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;br&gt;
&lt;a href="https://youtu.be/bugIL_5iie8?si=mQ3jqZMPOx0g3lDf" rel="noopener noreferrer"&gt;3-Minute Demo Video&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/evaaliya"&gt;Engineering Retrospective on DEV.to&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>mcp</category>
      <category>bedrock</category>
      <category>ai</category>
    </item>
    <item>
      <title>Albuget WebMCP</title>
      <dc:creator>Diana Aliya</dc:creator>
      <pubDate>Mon, 07 Sep 2026 17:32:23 +0000</pubDate>
      <link>https://dev.to/evaaliya/albuget-webmcp-ajk</link>
      <guid>https://dev.to/evaaliya/albuget-webmcp-ajk</guid>
      <description>&lt;p&gt;Submitted my entry for the WebMCP Challenge: &lt;strong&gt;Albugent WebMCP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Traditional data governance tools usually require shipping sensitive datasets to external servers to scan for PII and compliance risks. I wanted to see if we could do the entire pipeline locally, right inside the browser.&lt;/p&gt;

&lt;p&gt;Albugent runs SQLite WASM inside a Web Worker. All SQL queries, anomaly profiling, and data masking happen strictly in browser RAM—zero data leaves the client. The AI agent registers tools natively using the &lt;code&gt;document.modelContext&lt;/code&gt; WebMCP API, scans for unmasked PII, and proposes SQL remediation scripts. The human engineer always stays in the loop to review and approve the SQL before anything executes.&lt;/p&gt;

&lt;p&gt;Building a zero-backend governance engine with reactive state sync between WASM worker threads and React was definitely an intense engineering sprint, but really rewarding to see working end-to-end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s Next:&lt;/strong&gt;&lt;br&gt;
Albugent was built as a privacy-first proof-of-concept to show what’s possible when WASM and AI agents run entirely on the client. To turn this into a fully usable, zero-cost utility for everyone, the next step on the roadmap is adding a &lt;strong&gt;BYOK (Bring Your Own Key)&lt;/strong&gt; option and local model support (via Ollama/WebLLM), along with drag-and-drop CSV and SQLite file loading.&lt;/p&gt;

&lt;p&gt;If you'd like to try it out or look through the code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live App: &lt;a href="https://albugent-webmcp-6mwn.vercel.app/" rel="noopener noreferrer"&gt;albugent&lt;/a&gt;
• GitHub: &lt;a href="https://github.com/evaaliya/albugent-webmcp" rel="noopener noreferrer"&gt;evaaliya&lt;/a&gt;
• Demo Video: &lt;a href="https://youtu.be/-gdDc3IR6iU?si=36hQwHRK0ZU3AiH4" rel="noopener noreferrer"&gt;matricula&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to the team behind the WebMCP Challenge for organizing this!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; Built this as a true human-AI collaboration — shoutout to AI coding tools for acting as a 24/7 pair programmer throughout the build.&lt;/p&gt;

&lt;h1&gt;
  
  
  BuildInPublic
&lt;/h1&gt;

</description>
      <category>webmcp</category>
      <category>ai</category>
      <category>mcp</category>
      <category>openai</category>
    </item>
  </channel>
</rss>
