<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://saikrishna-poluri.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://saikrishna-poluri.github.io/" rel="alternate" type="text/html" /><updated>2026-06-14T19:52:59+00:00</updated><id>https://saikrishna-poluri.github.io/feed.xml</id><title type="html">Saikrishna Poluri</title><subtitle>Data Engineering, AI Agents, and Enterprise Automation — notes from a Lead Data Engineer working across Azure, Databricks, Microsoft Fabric, and Gen AI.</subtitle><author><name>Saikrishna Poluri</name></author><entry><title type="html">The Quiet Takeover — AI Agents in the Enterprise</title><link href="https://saikrishna-poluri.github.io/2026/04/05/the-quiet-takeover-ai-agents-in-the-enterprise/" rel="alternate" type="text/html" title="The Quiet Takeover — AI Agents in the Enterprise" /><published>2026-04-05T00:00:00+00:00</published><updated>2026-04-05T00:00:00+00:00</updated><id>https://saikrishna-poluri.github.io/2026/04/05/the-quiet-takeover-ai-agents-in-the-enterprise</id><content type="html" xml:base="https://saikrishna-poluri.github.io/2026/04/05/the-quiet-takeover-ai-agents-in-the-enterprise/"><![CDATA[<p>It started as a curiosity. I’d been watching the AI agentic tool space explode — Claude Code, OpenClaw, Claude Cowork — and decided to actually wire some of these up myself and see what happened.</p>

<p>So I sat down on a Saturday and ran <strong>two completely independent experiments in parallel</strong>, on the same laptop:</p>

<ul>
  <li>One with <strong>OpenClaw</strong>, the open-source multi-agent orchestrator.</li>
  <li>A separate, unrelated experiment with Anthropic’s <strong>Claude Cowork</strong> — using <strong>Dispatch</strong> for remote task assignment and <strong>Computer Use</strong> for screen-level task execution.</li>
</ul>

<p>These are not one stack. They don’t talk to each other. I didn’t wire OpenClaw to Claude Cowork or vice versa. I ran them in two different sessions, against two different simulated workflows, because I wanted to understand each ecosystem on its own terms — and see what each can do today.</p>

<p>A few hours later, I had two parallel things running that I genuinely hadn’t expected. Both stacks read messages, reasoned about context, wrote and executed code, and took action. Not perfectly. But at a clip that made me put my coffee down.</p>

<p>Around 80% accuracy. On real messages. Monotonous, repetitive, context-requiring tasks that I or a colleague would have spent 15–30 minutes on. Dispatched in seconds.</p>

<p>That number — 80% — is the threshold at which enterprise conversations stop being theoretical and start being uncomfortable.</p>

<h2 id="how-these-two-stacks-are-different">How These Two Stacks Are Different</h2>

<p>It helps to be precise about what each of these is before describing what each did, because the AI press tends to lump them all together.</p>

<p><strong>OpenClaw</strong> is an open-source multi-agent orchestration framework. Think of it as the substrate where you wire together purpose-built agents — one for reading messages, one for executing code, one for browser interaction — with a shared context and an orchestrator managing handoffs. It is model-agnostic: it can drive Claude, Gemini, ChatGPT, or anything you point it at.</p>

<p><strong>Claude Cowork</strong> is Anthropic’s desktop agent layer — a separate product, by a different team, with a different paradigm. It runs natively on your machine and gives Claude access to your local files, connectors, and applications. <strong>Dispatch</strong> is a feature inside Cowork that lets you assign tasks remotely from your phone while Claude works on your desktop. <strong>Computer Use</strong> is the underlying capability that lets Claude actually operate your screen when no direct connector exists — moving the mouse, clicking, navigating browsers, typing into apps. Claude’s hands, essentially.</p>

<p>These are two distinct bets on what an enterprise agent should look like. OpenClaw asks: <em>what if you compose specialized agents into a workflow?</em> Claude Cowork asks: <em>what if a single capable model just operates the computer the way a person does?</em></p>

<p>I wanted to feel the difference between those two answers, so I ran both — in parallel, independently, no integration.</p>

<h2 id="experiment-1--openclaw-composed-agents-in-a-pipeline">Experiment 1 — OpenClaw: Composed Agents in a Pipeline</h2>

<p>For the OpenClaw experiment I set up a simulated work environment: a data engineer’s inbox, a Slack workspace, and a project context file in the style of a <code class="language-plaintext highlighter-rouge">CLAUDE.md</code>-style description of my simulated finance data engineering stack — what tools we use, what the pipelines look like, what kind of incidents come through.</p>

<p>Then I wired up the orchestration:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>agent_pipeline = [
    EmailReader("fetch_unread_since=6h"),
    ContextClassifier("intent + urgency"),
    SlackCrossReference("thread_history"),
    ActionDispatcher("reply | escalate | close"),
]
</code></pre></div></div>

<p>A reader, a classifier, a cross-referencer, a dispatcher. Each agent had a narrow remit. Each one was given the project context file. The orchestrator managed the handoffs and the shared state.</p>

<p>That context file is the secret ingredient. Without it, you get a generic agent. With it, you get something that sounds like it’s been on your team for six months.</p>

<blockquote>
  <p><em>A context file is the difference between a generic LLM and something that sounds like it’s been on your team for six months.</em>
— Observed after first live run on real enterprise messages</p>
</blockquote>

<p>What I watched OpenClaw do: pull a fresh batch of messages, classify each by intent and urgency, cross-reference any related Slack thread to enrich the context, then route each one to the appropriate action — reply, escalate, or close. End-to-end, no human in the loop after kickoff, all in a single composed pipeline.</p>

<p>The insight from this experiment is straightforward: <strong>specialized agents, each built for a specific skill, composed by an orchestrator, give you a workflow.</strong> No single agent did the whole job. The pipeline did. That’s the OpenClaw mental model.</p>

<h2 id="experiment-2--claude-cowork--computer-use-one-agent-your-whole-desktop">Experiment 2 — Claude Cowork + Computer Use: One Agent, Your Whole Desktop</h2>

<p>Separately — and I want to stress separately — I ran a Claude Cowork experiment. Different session. Different setup. No connection to the OpenClaw work at all.</p>

<p>For this one I set up a simulated data engineering environment on my laptop: Azure Databricks open in the browser, Slack, email. Then I gave the agent a task through Cowork. What followed wasn’t a chatbot response. Browser tabs opened on their own. It navigated to Azure Databricks, created a notebook, wrote SQL, and executed it. Not scaffolded code for me to run — it ran it. Then it read the output, identified an issue, switched to <strong>Databricks Genie</strong> — an AI agent powered by Anthropic’s Claude model that writes code, analyzes outputs, and debugs and fixes issues in both Python and SQL — iterated, and fixed it. I was watching my own screen work without me.</p>

<p><strong>What happened in a single uninterrupted Cowork session on my laptop:</strong> Opened Azure Databricks → created a notebook → wrote and executed SQL → read the output → identified a data issue → opened Databricks Genie (AI agent powered by Claude — writes, debugs, and fixes Python &amp; SQL) → ran a corrective query → confirmed the fix → posted a summary to Slack → drafted a follow-up email with findings. I approved two permission prompts. That was my entire contribution to the session.</p>

<p>At key decision points — before posting to Slack, before sending the email — Cowork paused and asked permission. Explicitly. That UX detail matters more than it sounds. It’s the difference between a rogue automation and a trusted colleague who checks before acting. The human stays in the loop not because the agent can’t proceed — but because it chooses not to without consent.</p>

<p>The insight from this experiment is different from the OpenClaw one: <strong>a single capable agent, with Computer Use as its hands and Dispatch as its remote-control surface, can collapse a multi-tool workflow into one fluid session</strong> — without you wiring up a pipeline.</p>

<p>Two paradigms. Two experiments. Both running on commodity hardware, both billing-decision, not infrastructure-decision.</p>

<h2 id="the-thought-that-genuinely-stopped-me">The Thought That Genuinely Stopped Me</h2>

<p>Watching either of those experiments run is one thing. The thing that genuinely stopped me cold came when I asked myself a different question.</p>

<p>What happens when you give a system like this — either flavor — an isolated enterprise VM with every tool a Data Engineer uses day to day?</p>

<p>Jira or Azure DevOps for tickets. Slack for team communication. Email for stakeholders. A browser with Databricks, Azure Portal, and documentation. The same surface a new hire gets on day one. The agent reads the ticket, correlates it with the Slack thread, cross-references the email chain, writes the fix, tests it, posts the Jira update, sends the Slack message, replies to the email. Full loop. Closed.</p>

<p>For a moment I genuinely thought: there is almost nothing in a junior data engineer’s first year that this can’t do. And then I thought — it would probably do most of it better.</p>

<blockquote>
  <p><em>Personal observation after laptop simulation, April 2026</em></p>
</blockquote>

<p>That’s not a comfortable thought. But it’s an honest one. And it came from two real experiments, on a real laptop, with tools anyone can set up today.</p>

<h2 id="why-80-is-the-paradigm-shift-number">Why 80% Is the Paradigm Shift Number</h2>

<p>The software industry spent years chasing automation at 60–70% reliability. At that level, you need a human in the loop for every decision — the automation saves some time but adds coordination overhead. It’s net-neutral at best.</p>

<p>80% changes the math. At 1-in-5 exceptions, you build an exception-handling workflow. A human reviews the flagged 20%. The agent handles everything else. You’ve just created a system where the human’s job is to train and correct the AI, not to do the work itself. That is a fundamentally different job description — and a fundamentally smaller headcount requirement. Enterprise risk tolerance will rightly demand that number climb higher before full autonomy is granted — but 80% is the threshold at which the conversation stops being theoretical.</p>

<p>The agents I ran weren’t doing trivial tasks. They were reading messages with ambiguous tone, cross-referencing Slack threads, understanding that an email flagging a Finance data pipeline discrepancy required escalation versus a routine system notification that just needed acknowledgment. That contextual intelligence, running reliably at 80%, is what makes this different from every previous wave of automation.</p>

<h2 id="the-jobs-it-will-remove-first">The Jobs It Will Remove First</h2>

<p>Let me be direct about something the AI industry often dances around: this technology, at enterprise scale, will eliminate categories of work. Not every job in those categories — but the monotonous, repetitive, context-interpretation portions of those roles.</p>

<p>The highest displacement risk correlates almost perfectly with <strong>“work that is high-volume, rule-adjacent, and communication-heavy.”</strong> That is most of what large enterprise operations centers actually do. That is most of what a significant portion of the white-collar workforce does, every day.</p>

<p><strong>A note from my own domain:</strong> My day job involves Finance Data Engineering pipelines — complex integrations, data quality governance, and cross-system reconciliation workflows. This domain is dense with exactly the kind of repetitive, rule-heavy communication that agents excel at: pipeline failure triage, data quality flag follow-ups, cross-system sync requests. Based on what I tested, I can already see 60–70% of that communication overhead being agent-handleable in the near term. That’s not speculation — it’s extrapolating from what ran on my laptop last week.</p>

<h2 id="its-not-imagination-anymore--its-already-happening">It’s Not Imagination Anymore — It’s Already Happening</h2>

<p>Here’s what made my laptop experiments feel less like a hobby project and more like a preview: I looked up what was happening in enterprise settings while I was running my own simulations. And the answer was — exactly this, just further along.</p>

<p><strong>Devin</strong>, built by Cognition AI, is an autonomous AI software engineer already deployed inside real enterprises. It reads Jira and Slack tickets, navigates codebases, writes implementations, runs tests, and opens pull requests — the entire software delivery loop — without a human touching it. Goldman Sachs has deployed it as what their CIO called a “new employee” in a hybrid human-AI workforce. Nubank used it to migrate a multi-million line codebase that would have taken over a thousand engineers 18 months to complete manually — Devin did it in weeks, at a fraction of the cost.</p>

<blockquote>
  <p><em>Engineers are going to be expected to describe problems coherently, turn them into prompts, and supervise the work of agents. That’s the new job description.</em>
— Goldman Sachs CIO Marco Argenti on deploying Devin</p>
</blockquote>

<p>What’s striking about Devin is how narrow it still is — it operates almost exclusively within the software engineering toolchain. Code, tests, PRs, version control. It doesn’t read your email, it doesn’t post to Slack on your behalf, it doesn’t open Databricks and analyze query results, it doesn’t cross-reference a Slack thread with a Jira ticket and a Teams message to form a complete picture of what’s going wrong.</p>

<p>That broader scope is exactly what my two experiments pointed at — from two different angles. The OpenClaw experiment showed how composed agents can span communication channels in a workflow. The Claude Cowork experiment showed how a single agent with Computer Use can span them by operating the screen directly. Different paradigms, same destination: agents that span tools, contexts, and surfaces — not just one toolchain.</p>

<p>The scope expands. The toolset broadens. The accuracy compounds. The question isn’t whether this comes to enterprise environments. It’s which enterprises move first — and how far behind the rest fall.</p>

<h2 id="why-enterprise-adoption-will-be-slower-than-you-think--then-faster">Why Enterprise Adoption Will Be Slower Than You Think — Then Faster</h2>

<p>Here’s the honest counter-argument to my own enthusiasm: enterprise environments are hostile to autonomous agents in ways that a weekend experiment doesn’t surface.</p>

<p><strong>Security and data residency.</strong> The moment an agent reads a Slack message in a regulated enterprise, it has potentially touched PII, MNPI, or legally privileged communication. Legal teams will correctly ask where that data goes, who owns the context window, and what the audit trail looks like. These are solvable problems — but they’re months-of-procurement solvable, not weekend solvable.</p>

<p><strong>The identity problem.</strong> Agents need credentials. Credentials need governance. When an agent sends an email on your behalf or closes a ticket in ServiceNow, what’s the audit trail? Who’s accountable when the 10% exception causes a real problem? Enterprise risk frameworks aren’t wrong to ask these questions.</p>

<p><strong>Change management.</strong> The people whose jobs are most at risk are also the people who know where the bodies are buried — the edge cases, the tribal knowledge, the undocumented exceptions. You can’t replace them until you’ve extracted that knowledge. And extracting it requires their cooperation. That’s a delicate organizational conversation.</p>

<p>The agents aren’t waiting for enterprise approval. They’re already running in engineers’ personal workflows, learning the terrain. By the time procurement catches up, the patterns will already be set.</p>

<p>But here’s why I said “slower than you think, then faster”: all of these barriers are bureaucratic, not technical. The technology already works. The moment a forward-thinking enterprise leader gets a live demo of a properly configured agent handling a real data pipeline incident — reading the ticket, triaging Slack, drafting the update, all with a clean audit trail — the procurement conversation will move at a pace that surprises everyone who thought enterprise meant slow.</p>

<h2 id="what-this-means-for-people-like-us">What This Means for People Like Us</h2>

<p>I’m a Senior Data Engineer and Technical Lead. My job involves building pipelines, designing schemas, governing data quality, making architectural decisions. I’m not particularly worried about an agent replacing that — yet. The judgment calls in my role are genuinely hard, cross-contextual, and require understanding business intent that isn’t in any document.</p>

<p>But I’m also realistic: every year that passes, more of that judgment becomes pattern-matchable. The schemas I design today become training data for tomorrow’s agent. The architecture decisions I document in Confluence become the RAG corpus for the agent that recommends architecture to my successor.</p>

<p>The practical advice I’d give to anyone reading this is not “be afraid” — it’s <strong>move upstream, now, before the current takes you.</strong> The engineers who will thrive are the ones who understand how to configure, govern, evaluate, and correct these agents. The ones who know when the 10% exception is a model failure versus a data quality issue versus a genuinely novel edge case. That meta-skill — human-in-the-loop judgment about autonomous systems — is the most valuable thing you can be developing right now.</p>

<p>And — relevant to my two experiments — being fluent in <em>both</em> paradigms matters. Knowing when a workflow is better served by a composed multi-agent pipeline (OpenClaw-style) versus a single capable agent operating the desktop (Cowork-style) is going to be a real architectural skill in the next 18 months. They’re not in competition. They’re complementary tools for different shapes of problem.</p>

<h2 id="the-paradigm-shift-simply-put">The Paradigm Shift, Simply Put</h2>

<p>Every previous wave of enterprise software automation — ERP, RPA, low-code platforms — required processes to be formalized before they could be automated. You had to map the workflow, hardcode the rules, build the connectors. The limitation was always: <em>if it’s in language, it’s not automatable.</em></p>

<p>LLM-powered agents break that constraint entirely. Language <em>is</em> the interface now. The messy, unstructured, context-dependent communication that makes up most of knowledge work — the emails, the Slack threads, the meeting follow-ups, the ticket descriptions — is now the primary substrate for automation, not the exception to it.</p>

<p>That is a genuine paradigm shift. Not a productivity improvement. Not a feature. A structural change in what categories of human labor have economic moats.</p>

<p>I built — or rather, ran — two flavors of this on a Saturday afternoon. Both running on commodity hardware. Both costing roughly what a mid-tier API subscription costs. The barrier to enterprise transformation is no longer technological. It’s organizational, legal, and cultural. And those barriers erode faster than anyone expects once a decision-maker sees it live.</p>

<p>We’re early. We’re not as early as most people think.</p>

<hr />

<p><em>If you’re experimenting with agentic tools in an enterprise context — OpenClaw, Claude Cowork, or anything adjacent — I’d love to compare notes. Drop a comment or reach out on <a href="https://www.linkedin.com/in/saikrishna-poluri/">LinkedIn</a>.</em></p>]]></content><author><name>Saikrishna Poluri</name></author><category term="ai" /><category term="data-engineering" /><category term="ai-agents-in-action" /><category term="automation" /><category term="databricks" /><category term="claude-cowork" /><category term="openclaw" /><category term="computer-use" /><summary type="html"><![CDATA[A Senior Data Engineer's hands-on take after running two independent agentic stacks — OpenClaw and Claude Cowork — in parallel on a personal laptop. What it means for the enterprise.]]></summary></entry><entry><title type="html">I Vibe Coded a Full-Stack Web App in One Session — Here’s What Happened</title><link href="https://saikrishna-poluri.github.io/2026/03/07/i-vibe-coded-a-full-stack-web-app-in-one-session/" rel="alternate" type="text/html" title="I Vibe Coded a Full-Stack Web App in One Session — Here’s What Happened" /><published>2026-03-07T00:00:00+00:00</published><updated>2026-03-07T00:00:00+00:00</updated><id>https://saikrishna-poluri.github.io/2026/03/07/i-vibe-coded-a-full-stack-web-app-in-one-session</id><content type="html" xml:base="https://saikrishna-poluri.github.io/2026/03/07/i-vibe-coded-a-full-stack-web-app-in-one-session/"><![CDATA[<p>Let me get this out of the way: I’ve spent 9+ years in the data engineering world. Azure Data Factory, Databricks, Synapse, Power BI — that’s my comfort zone. I hold multiple Azure certifications (DP-700, DP-600, DP-203) and I’ve built data pipelines that move millions of records across enterprise systems.</p>

<p>But a full-stack web application? With authentication, role-based access, image uploads, and a live deployment? That was never on my resume.</p>

<p>Until last week.</p>

<p>I sat down, opened Claude AI, and said: <em>“We need to integrate Supabase and Vercel — make it as a fully functional multi-user app.”</em></p>

<p>A few hours later, I had a production-ready web application live on the internet. No boilerplate tutorials. No Stack Overflow rabbit holes. No weekend-long debugging sessions.</p>

<p>Just a conversation with an AI and a willingness to ship.</p>

<h2 id="the-backstory-an-idea-that-sat-for-a-year-and-a-half">The Backstory: An Idea That Sat for a Year and a Half</h2>

<p>About a year and a half ago, I was leading a migration project — moving legacy Oracle APEX applications to Microsoft Power Platform. I built the Power Apps version of the Furniture Standards Database using Model-Driven Apps on Dataverse, with Copilot assisting the development. It worked. It shipped. It’s in production.</p>

<p>But the moment I finished that build, a thought planted itself in my head and never left: <em>“What if I could build this entire thing — from database to deployment — using just AI tools and open-source tech?”</em></p>

<p>Not as a replacement. As an experiment. To see how far AI-assisted development had come.</p>

<p>That idea sat in the back of my mind for almost a year and a half.</p>

<p>Here’s the thing that kept bugging me: <strong>Power Apps is locked inside the Microsoft ecosystem.</strong> You need licenses. You need an admin to configure environments. You need GCC compliance checks. It’s the right tool for enterprise — but it’s slow to iterate and impossible to share with the outside world.</p>

<p>I kept thinking: <em>What if I could build the same app using open-source tools? Something I could deploy in minutes, share with a URL, and iterate on instantly?</em></p>

<p>Then I finally stopped overthinking and just built it.</p>

<h2 id="the-stack">The Stack</h2>

<p>Here’s what I used — and honestly, if you’d told me a year ago that this stack could replace an enterprise app, I would’ve laughed.</p>

<h3 id="claude-ai-vibe-coding-engine">Claude AI (Vibe Coding Engine)</h3>

<p>This is where the magic happened. I didn’t write code from scratch. I described what I wanted in plain English, and Claude generated the entire codebase — database schemas, React components, authentication logic, API integrations, deployment configs. Everything.</p>

<p>The term “vibe coding” is new, but the concept is simple: you describe the <em>vibe</em> of what you want, and AI translates it into working software. You’re the architect, the AI is the builder.</p>

<h3 id="supabase-database--auth--storage">Supabase (Database + Auth + Storage)</h3>

<p>Think of Supabase as “Firebase, but with PostgreSQL.” It gave me:</p>

<ul>
  <li>A real PostgreSQL database with proper relationships and constraints</li>
  <li>Row Level Security (RLS) — so readers can only view data, admins can edit</li>
  <li>Built-in email authentication with signup/login flows</li>
  <li>File storage for product images with access policies</li>
  <li>All hosted, managed, and free-tier friendly</li>
</ul>

<h3 id="nextjs-frontend-framework">Next.js (Frontend Framework)</h3>

<p>React-based framework that handles both the UI and server-side logic. The app has a public catalog page, a login system, an admin panel with full CRUD operations, and responsive design that works on mobile. All in one codebase.</p>

<h3 id="vercel-deployment--hosting">Vercel (Deployment + Hosting)</h3>

<p>Connected my GitHub repo, added two environment variables, and clicked deploy. That’s it. The app was live on a <code class="language-plaintext highlighter-rouge">.vercel.app</code> URL in under two minutes. Every time I push code to GitHub, Vercel automatically redeploys. Zero DevOps.</p>

<h3 id="github-code-repository">GitHub (Code Repository)</h3>

<p>Version control and the bridge between local development and cloud deployment. Push code, Vercel picks it up, app updates. Simple.</p>

<h2 id="the-session">The Session</h2>

<p>Fast forward to February 2026. Almost a year and a half of “I should really try this” finally turned into “let’s go.” Let me walk you through the session as it unfolded, because I think the process is more interesting than the result.</p>

<p>I told Claude: <em>“We need to integrate Supabase and Vercel — make it as a fully functional multi-user app.”</em> I specified the features I needed:</p>

<ul>
  <li>User authentication with Reader and Admin roles</li>
  <li>Furniture catalog with search and filters</li>
  <li>Admin CRUD for all lookup tables (categories, manufacturers, facilities, office locations)</li>
  <li>Image upload for product photos</li>
</ul>

<p>That’s it. No wireframes. No PRD. No technical specifications.</p>

<p>Within minutes, I had:</p>

<ul>
  <li><strong>4 SQL migration files</strong> — table definitions, row-level security policies, storage bucket config, and seed data</li>
  <li><strong>28 application files</strong> — React components, authentication logic, admin panels, catalog pages, middleware, styling</li>
  <li><strong>A setup guide</strong> — step-by-step instructions for Supabase configuration, local development, and Vercel deployment</li>
</ul>

<h2 id="the-first-hurdles">The First Hurdles</h2>

<p>I unzipped the project, ran <code class="language-plaintext highlighter-rouge">npm install</code>, and… got errors. I was running commands in the wrong directory in WSL. Classic. Claude walked me through the fix in 30 seconds.</p>

<p>Then <code class="language-plaintext highlighter-rouge">npm run dev</code> hung for a minute with a webpack warning. I panicked. Claude said: <em>“That’s normal — Next.js is compiling for the first time. Just wait.”</em></p>

<p>It was fine.</p>

<p>I opened <code class="language-plaintext highlighter-rouge">localhost:3000</code> and there it was — a fully functional furniture catalog with a navy and gold theme, a login page, and an admin panel. I signed up, made myself an admin via a SQL command, and started adding furniture records.</p>

<h2 id="the-image-upload-debugging-session">The Image Upload Debugging Session</h2>

<p>This was the most educational part. The image upload spinner just kept spinning. Claude and I debugged it together:</p>

<ul>
  <li>First we checked if the Supabase storage bucket existed (it did)</li>
  <li>Then we realized the Row Level Security policies were blocking uploads</li>
  <li>The <code class="language-plaintext highlighter-rouge">is_admin()</code> function worked for table queries but not in the storage context</li>
  <li>We replaced it with a simpler <code class="language-plaintext highlighter-rouge">auth.role() = 'authenticated'</code> check</li>
</ul>

<p>Fixed. Images started uploading instantly.</p>

<p><strong>This is what vibe coding actually looks like.</strong> It’s not magic. You still hit problems. But instead of spending 2 hours on Stack Overflow, you have a conversation and iterate in real-time.</p>

<h2 id="deployment">Deployment</h2>

<p>I pushed the code to GitHub, connected the repo to Vercel, added my Supabase keys as environment variables, and deployed. First deployment failed because Vercel didn’t auto-detect Next.js — I had to change the Framework Preset from “Other” to “Next.js” in settings.</p>

<p>Second deploy: live on the internet.</p>

<h2 id="iteration-the-real-win">Iteration: The Real Win</h2>

<p>Once it was live, I kept going:</p>

<ul>
  <li>Added a <strong>card/table toggle</strong> to the catalog view (enterprise users prefer table views)</li>
  <li>Removed org-specific branding to make it reusable</li>
  <li>Made the GitHub repo private</li>
</ul>

<p>Each change was a conversation: I described what I wanted, got the code, pushed to GitHub, and Vercel auto-deployed. The feedback loop was minutes, not days.</p>

<h2 id="power-apps-vs-modern-stack--my-honest-take">Power Apps vs. Modern Stack — My Honest Take</h2>

<p>Since I’ve now built the same app on both platforms, here’s my honest take:</p>

<p><strong>Neither is “better.”</strong> Power Apps is the right choice when you need enterprise governance, Dataverse integration, and GCC compliance. The modern stack is the right choice when you need speed, flexibility, and the ability to share with the world.</p>

<p>The real power move? <strong>Knowing both.</strong></p>

<h2 id="what-i-learned">What I Learned</h2>

<p><strong>1. The AI didn’t just write code — it architected the system.</strong> Claude didn’t give me a pile of files. It designed a proper data model with foreign key relationships, implemented row-level security, set up authentication middleware, created reusable components, and structured the project like a senior developer would. The code was clean, organized, and production-grade.</p>

<p><strong>2. Debugging with AI is weirdly efficient.</strong> When the image upload broke, I didn’t Google the error. I showed Claude a screenshot of my browser, and it diagnosed the issue immediately. The back-and-forth felt like pair programming with a senior engineer who never gets frustrated.</p>

<p><strong>3. The deployment story is incredible.</strong> Push to GitHub → Vercel auto-deploys → live in 60 seconds. Coming from the enterprise world where deployments involve change requests, approval chains, and maintenance windows, this felt almost illegal.</p>

<p><strong>4. I built a full-stack app without learning React “properly.”</strong> I didn’t take a React course. I didn’t read the Next.js docs cover to cover. I described what I wanted, understood the code that was generated, made decisions about architecture and UX, and shipped. Is that cheating? I don’t think so. It’s a new way of building.</p>

<p><strong>5. The hardest part wasn’t the code.</strong> The hardest part was deciding to start. I sat on this idea for almost a year and a half because “I’m a Data Engineer, not a web developer.” The tech was ready long before I was.</p>

<h2 id="what-this-means-for-the-rest-of-us">What This Means for the Rest of Us</h2>

<p>If you’re reading this and thinking <em>“This sounds cool but my org would never allow this”</em> — you’re probably right, and that’s okay. Here’s what I’d take away:</p>

<p><strong>Learn the modern stack anyway.</strong> Even if your day job is Power Platform or Azure, understanding Supabase, Vercel, and Next.js makes you a more versatile engineer. It changes how you think about what’s possible.</p>

<p><strong>Use AI as a force multiplier, not a crutch.</strong> I didn’t blindly copy-paste code. I made architectural decisions, debugged issues, and understood what was being built. The AI accelerated my execution, but the product vision was mine.</p>

<p><strong>Ship something.</strong> The gap between “I should build this” and “I built this” is smaller than you think. Especially now. Stop planning. Start building.</p>

<p><strong>Document and share your journey.</strong> Writing this article forced me to reflect on what I learned. Sharing it publicly holds me accountable to keep building.</p>

<h2 id="whats-next">What’s Next</h2>

<p>This was a proof of concept, but the foundation is solid. Here’s what I’m planning:</p>

<ul>
  <li>Add <strong>Power Automate-style notifications</strong> using Supabase Edge Functions</li>
  <li>Build a <strong>dashboard with charts</strong> using Recharts or Chart.js</li>
  <li>Explore <strong>Supabase Realtime</strong> for live updates when admins add new furniture</li>
  <li>Eventually open-source the template so other teams can fork and customize it</li>
</ul>

<h2 id="the-tldr">The TL;DR</h2>

<p>I’m a Data Engineer who vibe coded a full-stack web app in one session using Claude AI, GitHub, Supabase, Next.js, and Vercel. The app is live, multi-user, and production-grade.</p>

<p>A year and a half ago, I built this app on Power Apps over several weeks. Today, I rebuilt it on open-source tools in a single session using AI. That’s how fast the world is moving.</p>

<p>The tools have changed. The question is: <strong>have you?</strong></p>

<hr />

<p><em>If you’re an enterprise professional experimenting with AI-assisted development, I’d love to hear your story. Drop a comment or connect with me on <a href="https://www.linkedin.com/in/saikrishna-poluri/">LinkedIn</a>. And if you sat on a side project for months before finally building it — you know exactly what I’m talking about.</em></p>

<p><em>Originally published on <a href="https://skpoluri.substack.com/p/i-vibe-coded-a-full-stack-web-app">Substack</a>.</em></p>]]></content><author><name>Saikrishna Poluri</name></author><category term="software-engineering" /><category term="artificial-intelligence" /><category term="data-engineering" /><category term="web-development" /><category term="programming" /><category term="supabase" /><category term="nextjs" /><category term="vercel" /><category term="vibe-coding" /><summary type="html"><![CDATA[A Senior Data Engineer rebuilds an enterprise Power Apps application in a single session using Claude AI, Supabase, Next.js, and Vercel. Here's how it went.]]></summary></entry><entry><title type="html">Databricks: The End-to-End Game Changer? A Microsoft Azure/Fabric Data Engineer’s Candid Take</title><link href="https://saikrishna-poluri.github.io/2025/07/06/databricks-end-to-end-game-changer-microsoft-azure-fabric-data-engineer-candid-take/" rel="alternate" type="text/html" title="Databricks: The End-to-End Game Changer? A Microsoft Azure/Fabric Data Engineer’s Candid Take" /><published>2025-07-06T00:00:00+00:00</published><updated>2025-07-06T00:00:00+00:00</updated><id>https://saikrishna-poluri.github.io/2025/07/06/databricks-end-to-end-game-changer-microsoft-azure-fabric-data-engineer-candid-take</id><content type="html" xml:base="https://saikrishna-poluri.github.io/2025/07/06/databricks-end-to-end-game-changer-microsoft-azure-fabric-data-engineer-candid-take/"><![CDATA[<p>From a decade in Microsoft Data, my candid take on Databricks’ end-to-end ambition at the Data + AI Summit.</p>

<hr />

<p>My journey in the data world began over a decade ago, deeply embedded in the Microsoft ecosystem. From the foundational SQL Server and MSBI stack, I navigated the evolving landscape of Azure Data Factory, then embraced Azure Databricks, and later delved into Azure Synapse Analytics. Most recently, I’ve been spending considerable time with Microsoft Fabric, getting certified and doing POCs. This long-standing relationship with Microsoft’s data offerings gives me a unique lens through which to view Databricks’ latest announcements.</p>

<p>And frankly, what I saw at the recent Databricks Data + AI Summit was really impressive. Databricks is not only enhancing its capabilities; it’s actively positioning itself as <strong>the</strong> singular, end-to-end platform for data engineering, analytics, and AI. This means a concerted effort to reduce, and in some cases eliminate, the need for many external tools we’ve traditionally relied upon. From my “Microsoft-first” perspective, this is a fascinating and potentially disruptive shift.</p>

<p>Let’s unpack some of the most impactful announcements from the Summit, and why they paint a picture of Databricks becoming a truly standalone powerhouse.</p>

<h2 id="databricks-latest-features-building-the-all-encompassing-data-intelligence-platform">Databricks’ Latest Features: Building the All-Encompassing Data Intelligence Platform</h2>

<h3 id="1-lakebase-bringing-operational-databases-to-the-lakehouse-party">1. Lakebase: Bringing Operational Databases to the Lakehouse Party</h3>

<p>This was a massive revelation for me. Databricks is now integrating a fully-managed PostgreSQL offering, powered by Neon, directly into its Data Intelligence Platform. <strong>Lakebase</strong> isn’t just about analytics; it’s about handling operational workloads natively within the lakehouse. For data engineers like myself, who’ve often had to wrangle data between transactional databases and analytical systems, this means a significantly simplified architecture. Imagine building real-time applications and AI agents with transactional capabilities right there — no messy ETL pipelines just to move data around. It’s a huge step towards true data unification.</p>

<h3 id="2-agent-bricks-no-code-power-for-ai-agents">2. Agent Bricks: No-Code Power for AI Agents</h3>

<p><strong>Agent Bricks</strong> is a brilliant move to democratize AI agent development. It offers a simple, no-code approach to building and deploying high-quality AI agents, deeply integrated with the Databricks platform. For us, it means less heavy lifting in terms of coding and more focus on defining the task. This will undoubtedly accelerate the adoption of generative AI, allowing businesses to leverage large language models and build intelligent applications that interact directly with their lakehouse data with surprising ease.</p>

<h3 id="3-apache-spark-40--open-sourcing-of-declarative-pipelines-a-nod-to-the-community">3. Apache Spark 4.0 &amp; Open-Sourcing of Declarative Pipelines: A Nod to the Community</h3>

<p>The release of <strong>Apache Spark 4.0</strong> brings significant performance and connectivity enhancements. But the real kicker, especially for someone who values open standards, is the <strong>open-sourcing of Databricks’ core declarative ETL framework as Apache Spark™ Declarative Pipelines</strong>. This is a powerful commitment! It provides a simpler, more robust way to define and execute data pipelines for both batch and streaming, with less boilerplate code. This kind of open contribution truly benefits the broader data community and fosters innovation.</p>

<h3 id="4-lakeflow-the-orchestration-evolution-youve-been-waiting-for">4. Lakeflow: The Orchestration Evolution You’ve Been Waiting For</h3>

<p>The suite of <strong>Lakeflow</strong> announcements collectively represents Databricks’ definitive answer to end-to-end data pipeline orchestration. This is where the magic really happens for a data engineer, especially when you consider my background with Azure Data Factory.</p>

<ul>
  <li><strong>Lakeflow Connect for incremental CDC (ZeroBus Improvements):</strong> More efficient and real-time ingestion of changes from source systems, reducing the reliance on external CDC tools that add complexity and cost. Databricks wants to be your primary entry point for data.</li>
  <li><strong>Lakeflow Declarative Pipelines:</strong> Building on the open-sourced framework, these pipelines offer a unified, declarative API for defining data flows, whether batch or streaming. The <code class="language-plaintext highlighter-rouge">AUTO CDC</code> API for handling out-of-order events is a real problem-solver. No more wrangling complex code for every transformation.</li>
  <li><strong>Lakeflow Jobs (Enhanced Workflow Orchestration):</strong> Their beefed-up workflow orchestration engine, formerly known as Databricks Workflows. Robust capabilities for scheduling, managing task dependencies, and monitoring complex data and AI pipelines <em>natively within Databricks</em> — conditional branching, loops, comprehensive observability with intuitive dashboards, repair, and rerun capabilities. This is Databricks’ bold statement that they can handle your most complex scheduling and workflow orchestration needs, potentially sidelining other dedicated orchestration tools like external schedulers or even, in some cases, elements of Azure Data Factory. For someone who’s spent years building intricate pipelines in ADF, the idea of having this power so tightly integrated within the Databricks workspace is incredibly appealing.</li>
  <li><strong>Lakeflow Designer:</strong> The game-changer for wider adoption — an AI-powered, no-code visual pipeline builder. Even business users can design and build scalable production pipelines without writing code, while still generating the standard Lakeflow Declarative Pipelines that engineers can fine-tune. That’s true democratization of data engineering.</li>
</ul>

<h3 id="5-lakebridge-migrating-made-easy-seriously">5. Lakebridge: Migrating Made Easy (Seriously)</h3>

<p><strong>Lakebridge</strong>, leveraging the acquired BladeBridge technology, focuses squarely on accelerating lift-and-shift migrations from legacy systems like on-prem SQL, Oracle, or even Snowflake into Spark SQL. The promise of “no refactoring or no metadata driven pipelines &amp; no modernization just getting on to new platform” is incredibly attractive for organizations burdened by technical debt. For anyone who’s lived through tedious, manual migration projects, this is music to the ears, further reducing the need for costly external migration services and lengthy manual refactoring efforts.</p>

<h3 id="6-databricks-apps-building-beyond-the-lakehouse">6. Databricks Apps: Building Beyond the Lakehouse</h3>

<p><strong>Databricks Apps</strong> is a serverless compute service that allows developers to host custom applications built on popular frameworks like Dash, Flask, Streamlit, and even Node.js (think React, Angular!) directly on Databricks. This means we can create interactive data and AI applications, even something resembling a React Native app on Databricks, without managing complex infrastructure. It significantly broadens the utility of the Databricks platform, allowing us to deliver full-fledged data products.</p>

<h3 id="7-databricks-clean-rooms-secure-collaboration-simplified">7. Databricks Clean Rooms: Secure Collaboration Simplified</h3>

<p><strong>Databricks Clean Rooms</strong> enable secure and privacy-preserving data collaboration using Delta Sharing and serverless compute. This “no-trust” model allows multiple parties to collaborate on sensitive data without directly exposing their raw datasets. In a world of increasing data privacy regulations, this is a crucial capability, simplifying complex data sharing agreements.</p>

<h3 id="8-aibi-genie-enhancements--databricks-one-natural-language-for-everyone">8. AI/BI Genie Enhancements &amp; Databricks One: Natural Language for Everyone</h3>

<p>The enhancements to <strong>AI/BI Genie</strong> and the introduction of <strong>Databricks One</strong> are all about breaking down the barriers between data and business users. Databricks One lets users ask questions in natural language against their Unity Catalog data, getting answers and visualizations automatically. Coupled with Genie’s improved query displays and editable filters, it makes data exploration accessible and intuitive, which is fantastic for driving self-service analytics.</p>

<h3 id="9-unity-catalog-enhancements-the-governance-backbone">9. Unity Catalog Enhancements: The Governance Backbone</h3>

<p><strong>Unity Catalog</strong> continues to evolve as the central governance layer, and the new features are a testament to Databricks’ commitment to enterprise readiness. <strong>Data Classification Scanning</strong> (using LLMs to identify sensitive data), streamlined <strong>Request for Access</strong> workflows, and clearer <strong>certifications</strong> bolster its capabilities for data discovery, security, and compliance. The expanded support for <strong>Apache Iceberg</strong> within Unity Catalog also highlights Databricks’ dedication to open data formats and interoperability — a critical factor for avoiding vendor lock-in. We also saw <strong>Unity Catalog Metrics with partners</strong> and other features that strengthen data observability and quality.</p>

<h3 id="10-mosaic-ai-enhancements-the-full-ai-lifecycle">10. Mosaic AI Enhancements: The Full AI Lifecycle</h3>

<p>The <strong>Mosaic AI</strong> suite saw comprehensive improvements, cementing Databricks as an end-to-end platform for AI development and deployment:</p>

<ul>
  <li><strong>Agent Bricks</strong> (as mentioned)</li>
  <li><strong>AI Functions:</strong> Easier access to generative AI directly from SQL, with performance boosts</li>
  <li><strong>Vector Search:</strong> Seamless integration for real-time vector indexing, essential for RAG applications</li>
  <li><strong>Model Serving:</strong> Enhanced capabilities for deploying and managing ML models at scale</li>
  <li><strong>AI Gateway:</strong> A unified API for accessing various foundation models</li>
  <li><strong>MLflow 3.0:</strong> Redesigned for GenAI, with agent observability and prompt versioning</li>
  <li><strong>MCP Support (Managed Compute Plane) &amp; Serverless GPUs:</strong> Flexible and cost-effective compute for demanding AI workloads, taking away infrastructure headaches</li>
</ul>

<h2 id="databricks-ecosystem-partners-powering-the-platform-and-filling-the-gaps">Databricks’ Ecosystem: Partners Powering the Platform (and Filling the Gaps)</h2>

<p>Beyond their native capabilities, Databricks is actively fostering a rich partner ecosystem that further extends its “end-to-end” vision. This is where some of those crucial enterprise capabilities, perhaps not fully “in-house” for Databricks directly, get filled in with tight integrations.</p>

<ul>
  <li>
    <p><strong>Frisco Analytics’ LakeFusion for MDM:</strong> This was particularly interesting for me. LakeFusion, built natively on Databricks, offers an AI-powered Master Data Management (MDM) solution. Traditional MDM often involves moving data <em>out</em> of systems, processing it, and moving it back — a complex, high-latency affair. LakeFusion embraces the Lakehouse principle of “data gravity,” processing data where it lives. This drastically simplifies MDM for scenarios like provider data in healthcare, leveraging Databricks’ capabilities for entity resolution, data quality, and seamless integration with Unity Catalog for governance. It’s a prime example of how partners are filling crucial enterprise gaps directly <em>within</em> the Databricks platform’s paradigm.</p>
  </li>
  <li>
    <p><strong>SAP Business Data Cloud (BDC) with Databricks:</strong> This partnership is a game-changer for many enterprises. The SAP data landscape is notoriously complex. BDC introduces “data products” — curated datasets that go beyond raw tables, preserving the rich semantic layer of SAP data. Critically, BDC leverages low-cost cloud object storage (moving away from purely in-memory solutions) and utilizes open table formats like Delta Lake, enhanced by Delta Sharing. This means you can get live, governed SAP data into your enterprise data platform, often without traditional ETL or even egress charges, directly blessing Delta Sharing as the “compliant path.” For companies heavily invested in SAP, this integrated approach (even if it’s a “limited version of Databricks” within SAP’s BDC) is a monumental step towards breaking down SAP data silos and enabling AI.</p>
  </li>
  <li>
    <p><strong>Posit for Data Science &amp; ML:</strong> Posit, a long-standing partner, continues to deepen its integration, offering a seamless experience for data scientists using R and Python. Their tools like Positron and Posit Connect allow data teams to build, deploy, and share insights with their preferred IDEs, all while leveraging Databricks’ backend. This strengthens the overall data science workflow directly within the Databricks environment.</p>
  </li>
  <li>
    <p><strong>Monte Carlo for Data Observability:</strong> Another critical partner is Monte Carlo, which offers comprehensive data observability directly integrated with Unity Catalog. This provides insights into data quality, freshness, and lineage, ensuring the reliability and trustworthiness of data assets, which is vital for any enterprise.</p>
  </li>
</ul>

<p>These partnerships underscore Databricks’ strategy: if they don’t build it natively, they’ll enable a partner to, tightly integrated within their platform, keeping the “end-to-end” experience cohesive and addressing specific industry or niche needs.</p>

<h2 id="my-microsoftie-perspective-the-shifting-sands-and-the-foundational-layer">My “Microsoftie” Perspective: The Shifting Sands (and the Foundational Layer)</h2>

<p>Looking at all these advancements through my Microsoft lens, I can’t help but draw comparisons to Microsoft Fabric. Fabric’s ambition for a unified data platform is commendable, but what I’m witnessing is Databricks executing with a clearer, more mature, and rapidly expanding set of capabilities.</p>

<p>It’s absolutely true that Databricks, at its core, still relies on underlying cloud object storage services like <strong>Azure Data Lake Storage (ADLS)</strong> or <strong>Amazon S3</strong> for hosting the actual data files (Parquet, ORC, etc.) that make up your Delta Lake or Iceberg tables. When you configure Unity Catalog, you’re essentially pointing it to these external locations, and that’s the only real “external” configuration you explicitly need to manage for the data itself. This fundamental reliance on cloud storage for persistence is a common architectural pattern for data lakes and lakehouses across all cloud providers. It’s not about replacing ADLS or S3, but about building an incredibly powerful, intelligent layer <em>on top</em> of them.</p>

<p>However, the genius of Databricks’ strategy, especially with the Lakehouse architecture and Unity Catalog, is how it abstracts away so much of the complexity of interacting directly with that storage. We manage schema, access control, time travel, and even increasingly complex data ingestion and transformation logic directly within the Databricks platform. The fact that they’ve significantly beefed up their <strong>Lakeflow Jobs</strong> (formerly Workflows) means you can truly orchestrate complex, multi-step pipelines entirely <em>within</em> Databricks, minimizing the need to jump out to another service like Azure Data Factory for scheduling or intricate ELT workflows. This level of in-house orchestration is a huge efficiency gain, making the “end-to-end” story incredibly compelling.</p>

<p>For large-scale data migration projects, especially those moving from on-prem or even other cloud data warehouses, Databricks’ mature tools like Lakebridge are proving incredibly appealing. The “lift and shift” approach, combined with the power of the Lakehouse architecture, makes it a pragmatic choice over what some perceive as Fabric’s still-developing offerings.</p>

<p>The reality on the ground is that data professionals are constantly evaluating the best tools for the job. And increasingly, the market signals — the surging demand for Databricks Data Engineers, the breadth of the Summit announcements, and the growing partner ecosystem — indicate that Databricks is not just a strong contender but a leading force. They are indeed building a compelling argument for being the ultimate standalone platform. It’s an exciting, slightly unsettling, but undeniably powerful future for data engineering, and one that even a decade-long Microsoft enthusiast like myself can’t help but be deeply impressed by.</p>

<hr />

<p><em>Originally published on <a href="https://medium.com/@sk.poluri8/databricks-the-end-to-end-game-changer-a-microsoft-azure-fabric-data-engineers-candid-take-1ce7782efc79">Medium</a>.</em></p>

<p><strong>Tags:</strong> #Databricks #DataAISummit #DataEngineering #MicrosoftFabric #Azure #CloudComputing #DataMigration #TechTrends</p>]]></content><author><name>Saikrishna Poluri</name></author><category term="databricks" /><category term="azure" /><category term="data-engineering" /><category term="microsoft-fabric" /><category term="cloud-computing" /><category term="data-migration" /><summary type="html"><![CDATA[A Microsoft-first data engineer's perspective on Databricks' Data + AI Summit announcements: Lakebase, Agent Bricks, Lakeflow, Unity Catalog, Mosaic AI and more.]]></summary></entry></feed>