Prasannasree Kolukula AI & Cloud Architect

Seven AI applications. An agentic marketing platform, and six agent apps on one secure platform — deployed on AWS and Azure.

Each application solves one real working problem — marketing & sales operations, security triage, outage response, research, test maintenance, design review, personal finance — with a team of AI agents built on LangGraph. Every one keeps a person in control of anything that matters.

All six agent apps are deployed on AWS, Azure or both, behind secure sign-in. A pay-per-use version also runs on AWS and Azure. The marketing platform is self-hosted.

Alongside the applications, two warehouse data platforms — the same raw-to-reporting pipeline built first on Snowflake and then on Databricks, agreeing to the penny on every reporting table. These are data pipelines, not AI apps.

Marketing & sales operations

Agentic AI Marketing Automation Platform

An AI marketing and sales team for a small B2B software business. 42 specialised agents research competitors, qualify leads, draft content and prepare outreach, driven by 45 automated workflows on schedules and events. Every result is structured and checked before it is stored, and a person approves everything that leaves the building. It drafts; it never publishes or sends on its own.

Traditional vs AI

Traditional wayWhat changedAdvantage
Research happens when someone finds timeResearch runs automatically on a schedule, and results are checkedIt happens every week, not when someone is free
One-off chatbot answers pasted aroundResults arrive in a fixed, checked format straight into spreadsheets and the CRMRepeatable results that flow straight into the tools
A budget alert fires after the overspendEach job's cost is checked against the budget before it startsA job that can't afford to finish never starts
Draft claims about competitors go uncheckedOnly fully checked research is kept; anything unverified is droppedSales material never claims something unverified

STAR outcome

SSituation
Two products launching with no marketing staff and a very small budget; the work either didn't happen or came from unverified one-off chat answers.
TTask
Run dozens of marketing and sales jobs automatically, with structured verifiable output, bounded AI cost, and a human gate on everything that leaves — portable from a laptop to a server without rework.
AAction
I designed and built the platform end to end: AI agents that run on a schedule or when something happens in the business, every result checked before it is used, and a person approving anything before it goes out. I tracked what the AI actually cost and brought it well within budget, packaged it to run the same way on any server, and set up automated checks on every change.
RResult
  • 42 AI assistants built, covering content, finding leads, sales support and strategy.
  • Researching one competitor now costs 31 cents instead of $12.69 — about 41 times cheaper — with every result still checked.
  • 27 of them passed full real-world trial runs with no failures; the rest are ready and waiting for real business information.
  • Not measured extra revenue or leads — no live campaigns yet.

Security operations

Cyber Security AI Agent

A defensive AI security analyst. It links fragments from source code, logs, cloud permissions and web traffic into ranked incidents with the evidence attached, and drafts a response that a person must approve. It recommends; it never blocks, executes or attacks.

Traditional vs AI

Traditional wayWhat changedAdvantage
Analyst reads each tool separately and joins them mentallyRelated warnings are linked into one incident automatically"These are one incident" is found every run, not only by the best analyst
Severity alone decides who gets pagedTop priority also depends on whether the weakness can really be exploitedA critical finding with no exploitation path pages nobody
Runbook chosen and copied by handThe right response guide is found automatically and summarisedConsistent, cited response plan
Generic AI summariser over logsFindings come from the security tools; the AI only explains themReproducible — it cannot invent a CVE, host or timestamp

STAR outcome

SSituation
Security signals are spread across code, dependency, container, cloud and log tools; correlation and response drafting are manual.
TTask
Correlate them into prioritised incidents with evidence and draft a response — without the system acting on its own or an AI inventing findings.
AAction
I built a multi-agent app orchestrated by LangGraph that pulls together warnings from several security tools, backs its analysis with trusted reference material, and waits for a person's approval before any response goes out. I packaged it to run the same way anywhere and set up automated build and deployment, with a manual approval step before anything goes live.
RResult
  • In a trial run it turned 37 separate security warnings into 25 ranked problems, most urgent first.
  • Recognises all 16 attack types it was designed to spot — this counts coverage, not accuracy.
  • More than 600 automated checks run before every release.
  • Not measured time saved; trialled on sample data, not a real company's systems.

2/2Cyber Security AI Agent

Screenshots

Sign-in
Sign-inSecure sign-in with a one-time code.
New scan
New scanChoose what to scan and upload the files.
Findings
FindingsProblems ranked by severity, with the evidence attached.
Ticket preview
Ticket previewDrafted, not created — waits for a person's approval.
Message draft
Message draftPreview only until approved; nothing is sent automatically.

Site reliability & on-call

DevOps Incident Analysis Suite

Upload your ops logs. A team of AI agents groups the failures into distinct incidents, ranks them, attaches remediation steps quoted word-for-word from your own runbooks, and drafts the Slack message and Jira tickets — nothing is sent until a person approves.

Traditional vs AI

Traditional wayWhat changedAdvantage
Search several log files by handLogs in many formats are read and grouped into incidents automaticallyDistinct faults surface without reading every line
Remember or search for the right runbookThe best-matching runbook is found and its steps quoted with the sourceTeam knowledge used, every step traceable, "nothing fits" said plainly
Ask a chatbot for fix stepsThe AI explains why; the fix steps come only from your runbooksNo invented commands reach the engineer
Recurrence spotted only if someone remembersRepeat faults are recognised and counted automaticallyRepeat faults flagged automatically
Hand-write the ticket and Slack updateDrafted automatically, sent only after approval, no duplicatesLess comms overhead; the human stays in control

STAR outcome

SSituation
Outage triage over noisy, multi-format logs is manual, and generic AI tools can hallucinate dangerous fix commands.
TTask
Recommend fixes an engineer can trust — auditable, safe, and still working when the databases or the AI provider are down.
AAction
I built a multi-agent app orchestrated by LangGraph that only recommends fixes it can back with evidence and says so when it can't, keeps passwords and keys out of its records, raises tickets and messages only after a person approves, and keeps working when parts of the system are down. I packaged it to run the same way anywhere and set up automated build and deployment, with a manual approval step before anything goes live.
RResult
  • In a trial on sample logs it found 34 problems in about 17 seconds, backed every suggested fix with a source, and openly declined the 4 it could not support.
  • Working on several problems at once cut one batch from 2½ minutes to under 20 seconds.
  • Gives the same answers even when its supporting services are down, and hides any passwords or keys it finds.
  • Not measured time saved compared with an engineer doing it by hand.

2/2DevOps Incident Analysis Suite

Screenshots

Sign-up
Sign-upSecure sign-up with an authenticator app.
Overview
OverviewIncidents by severity, and how many came with a matching fix.
Incident detail
Incident detailOne incident with fix steps quoted from the team's own guides.
No matching guide
No matching guideWhen nothing fits, it says so instead of guessing.
Prevention
PreventionSteps to stop it happening again, each with a way to check it worked.
Dark mode
Dark modeThe same app in dark theme.
Sign-in on Azure
Sign-in on AzureThe same app running on Azure, behind secure sign-in with a one-time code.
Incidents on Azure
Incidents on AzureTen incidents found and ranked, each with step-by-step fixes quoted from the team's own guides.

Research & analysis

Multi-Agent AI Deep Researcher

Seven AI agents answer a research question over several rounds and write a report in which every claim has a citation and a score for how well that citation backs it. Weak claims are labelled, not hidden, and places where sources disagree are shown.

Traditional vs AI

Traditional wayWhat changedAdvantage
One keyword search or one chatbot promptResearch runs in rounds, each building on what was foundFollow-ups aim at real gaps, not guesses made up front
Citations taken on trustEvery claim is checked against the source it citesWeak support is visible, claim by claim
Disagreement averaged away or missedConflicts between sources are flagged and double-checkedOne model's mistake can't erase a real conflict
A model decides "am I done?"Clear, fixed rules decide when the research is completePredictable stopping; runs can be reproduced
A single searchSearches are combined and balanced across different sourcesSix paragraphs from one paper don't count as six sources

STAR outcome

SSituation
AI research reports cite sources that don't back them and hide disagreement.
TTask
Build a researcher whose evidence can be checked, and which still works with no model and no databases.
AAction
I built a multi-agent research app orchestrated by LangGraph that checks each claim against its sources and shows where sources disagree instead of hiding it. I packaged it to run the same way anywhere and set up automated build and deployment, with a manual approval step before anything goes live.
RResult
  • Fine-tuning cut false alarms about sources contradicting each other from 21 to 9, while the one genuine disagreement always stayed visible.
  • Runs live on a server cluster.
  • Not measured business impact or accuracy on real-world material — trialled on a small demo library.

2/2Multi-Agent AI Deep Researcher

Screenshots

First-time setup
First-time setupNew users register this device and an authenticator app.
Sign-in on Azure
Sign-in on AzureThe app running on Azure, behind secure sign-in with a one-time code.
New investigation
New investigationAsk a question; choose how many search rounds and which sources.
Research in progress
Research in progressA live timeline of the research as it happens.
Research complete
Research completeClaims fact-checked; remaining gaps reported, not hidden.
Questions it worked through
Questions it worked throughThe question split into angles; unanswered ones are said so.
Passages it read
Passages it readEvery passage used, with its relevance score and source.
Every claim scored
Every claim scoredEach claim scored for how well its source supports it.
Report
ReportThe finished report with numbered citations.

Test automation & QA

Browser Automation AI Agent

A self-healing test-automation tool. It learns the user journeys on a website, writes test scripts for them, runs them against a changed version of the site, and repairs broken tests — keeping a repair only if the whole script then passes.

Traditional vs AI

Traditional wayWhat changedAdvantage
Engineer hand-codes each journeyUser journeys are discovered and tests written automaticallyCoverage starts from what the site actually does
Engineer fixes each broken test after a redesignA repair is proposed automatically, with safety checksRepairs proposed automatically, without touching the wrong thing
A fix is accepted in code reviewAccepted only if the whole test passes againNo false passes from a repair that only looks right
Read error messages by handEach failure is categorised and explained; tool problems are kept apart from real site failuresEngineers debug the right thing

STAR outcome

SSituation
Automated website tests break whenever a site's look changes, and simple auto-repair tools can make a failing test look like a pass.
TTask
Repair broken tests without ever trading correctness for a pass.
AAction
I built a multi-agent app orchestrated by LangGraph that repairs broken automated test steps on its own, double-checks every repair, and may only visit approved websites. I packaged it to run the same way anywhere and set up automated build and deployment, with a manual approval step before anything goes live.
RResult
  • In the demo it fixes broken test steps by itself — in both a simulated and a real web browser, even when its supporting services are down.
  • Caught a release that claimed to be healthy but could not actually open a browser; releases are now checked for this automatically.
  • Not measured how often repairs succeed, or time saved, on real websites.

2/2Browser Automation AI Agent

Screenshots

Sign-in on Azure
Sign-in on AzureThe same app running on Azure, behind secure sign-in with a one-time code.
Generated test script
Generated test scriptA test script written automatically for a user journey it discovered.
Test runs on Azure
Test runs on AzureRuns going from failed to passed after an automatic repair.
Verified repairs
Verified repairsOnly a verified repair is written into a test; unproven suggestions are discarded.
Dark mode
Dark modeThe same app in dark theme.

Design & accessibility review

Design Analysis Suite

Upload a screen design. Five specialist AI agents measure it, critique it, compare it with reference designs and return a prioritised, cited review — where every finding says whether it was measured from the pixels or is an AI opinion.

Traditional vs AI

Traditional wayWhat changedAdvantage
Manual contrast tool per element, often skippedReadability and button sizes measured on every uploadAccessibility checks are never skipped
One reviewer's judgementSeveral AI specialists review it; each finding is labelled measured or opinionReaders can see which claims are checkable
Reviewer's memory of guidelinesEach recommendation cites a recognised design guidelineEach recommendation has a source
Gut feel, or an average that hides severe issuesA serious problem limits the overall scoreA serious defect can't be averaged away

STAR outcome

SSituation
Design and accessibility review is manual and subjective, and AI critique tools invent measurements.
TTask
Build a reviewer whose numbers are checkable and which still works without an AI key or databases.
AAction
I built a multi-agent app orchestrated by LangGraph that reviews designs against measurable checks, explains what it finds in plain language, and keeps working even without its AI service. I packaged it to run the same way anywhere and set up automated build and deployment, with a manual approval step before anything goes live.
RResult
  • Clearly tells good designs from flawed ones: good samples score 96–98 out of 100, flawed ones 55–72.
  • Removing repeated findings shortened one report from 30 items to 21.
  • Repeat reviews of the same design came back in under a second instead of 11 seconds.
  • Not measured review time saved, or how well it agrees with human reviewers.

2/2Design Analysis Suite

Screenshots

Sign-in on Azure
Sign-in on AzureThe same app running on Azure, behind secure sign-in with a one-time code.
Upload and review
Upload and reviewUpload a design and get a scored, prioritised review in seconds.
What to fix first
What to fix firstThe top fixes, each marked with effort and impact.
Compare two designs
Compare two designsTwo designs side by side, ready to compare.
Comparison result
Comparison resultWhere one design beats the other, area by area.
Dark mode
Dark modeThe same app in dark theme.

Personal finance

AI Financial Coach

A seven-agent coach that turns your own bank statements into a debt analysis, budget, payoff plan and savings strategy. Every number is exact arithmetic you can trace back to your transactions; an AI only writes the explanation. Educational analysis, not financial advice.

Traditional vs AI

Traditional wayWhat changedAdvantage
Manual tagging or brittle keyword rulesSpending is sorted into categories automaticallyLong-tail merchants categorised; uncertain lines shown as "other"
Filter by keyword to answer "how much on X"Ask in plain English; the matching transactions are added up exactlyFinds merchants without the keyword, and shows the rows
Charts with no ordering or payoff dateCommon payoff strategies compared, each with a debt-free dateA decision, not just a picture
AI chatbot that may invent figuresThe AI only explains figures that are already calculatedSame numbers with or without AI

STAR outcome

SSituation
Personal finances live in messy, inconsistent bank exports; tools either chart without deciding, or use AI that can hallucinate numbers.
TTask
Build a coach whose figures are exact and traceable, and which keeps working with no AI key and no databases.
AAction
I built a multi-agent personal-finance coach orchestrated by LangGraph with exact money calculations, automatic sorting of spending into categories, and each person's data kept separate. I packaged it to run the same way anywhere, with one-step deployment.
RResult
  • Sorted all 234 transactions in a demo account into spending categories, with none left unsorted.
  • For a demo household its debt plan paid everything off 39 months sooner and saved £4,977.79 in interest compared with paying only the minimum (made-up data).
  • Keeps working even when its supporting services are down.
  • Not measured how many people use it, time saved, or accuracy for real households.

2/2AI Financial Coach

Screenshots

Sign-in
Sign-inSecure sign-in with a one-time code.
Overview
OverviewWhere the money goes, month by month, top merchants.
Category vs guideline
Category vs guidelineActual spend against common guidelines, gap by gap.
Budget
BudgetNeeds, wants and savings against the common 50/30/20 guideline.
Recommendations
RecommendationsWhere each month's spare money should go, and why.
Transactions
TransactionsEvery transaction; a category fix is remembered.
Ask
AskAsk about your spending in plain English; totals are exact.

Data warehouse · Snowflake

Warehouse ELT on Snowflake

Raw bank-statement and ops-log files land in Snowflake and come out as a tested, reportable star schema — raw, cleaned and reporting layers built with dbt running inside Snowflake itself, on Snowflake's own scheduler. A bad row fails the build rather than being quietly dropped, and the finished tables answer questions asked in plain English. Snowflake is hosted on AWS, in an AWS account dedicated to this platform. The source data is synthetic.

Traditional vs this build

Traditional wayWhat changedAdvantage
Scripts move the data; a report checks it afterwardsThe checks are part of the build, and a failure stops the chainBad data never reaches the reporting layer at all
A separate scheduling tool has to be run and securedSnowflake's own task graph runs the transformations inside the warehouseOne fewer moving part to operate, pay for and protect
Totals are reconciled in a report somebody reads laterReconciliation is itself a test that fails the buildA mismatch stops publication instead of being spotted weeks on
Every question needs an analyst to write SQLAsk in plain English; the generated query is checked and run read-onlyThe warehouse computes every number — the AI never produces one
"Only your own rows" enforced by the reporting toolEnforced by the warehouse itself, per householdThe rule holds whichever tool connects, including a direct query

STAR outcome

SSituation
Each of my applications kept its own figures in its own database. There was no shared warehouse, no single agreed definition of a number, and no way to prove a published total still matched the source it came from.
TTask
Build a warehouse pipeline where every published number is tested before it is published, where a bad input stops the run instead of quietly producing a wrong report, and where the schedule needs no extra orchestration tool.
AAction
I built raw, cleaned and reporting layers on Snowflake using dbt, with dbt running inside the warehouse and triggered by Snowflake's own two-step task graph. Every data test runs at error severity, so one failure fails the build, fails the task and skips everything downstream — including the reconciliation test that compares money totals between layers. I added plain-English questions over the reporting tables, a dashboard, per-household row-level access, spending caps, and a build pipeline in which every check must prove it actually examined something before it is allowed to report success.
RResult
  • Loaded 2,708 transactions, 101,178 log lines and 26 incidents in 8 seconds, with the full transformation finishing in 44 seconds inside Snowflake.
  • A load with 6 deliberately planted defects failed with exactly those 6 test failures and every reporting table was skipped, so the last good version stayed in place.
  • 89 data tests gate every run. Pull-request checks add unit tests, a full-history secrets scan, and floors that fail any check which looked at nothing.
  • Runs unattended on a daily schedule; one run metered at 0.055 Snowflake credits, under a monthly cap that suspends the warehouse when reached.
  • Not measured anything on real customer data — the source files are synthetic, generated from a fixed seed.

2/2Warehouse ELT on Snowflake

Screenshots

Task graphThe two chained tasks that load and then transform, inside the warehouse.
Bad batch stoppedSix planted defects, six test failures, every reporting table skipped.
Plain-English questionThe question, the query written for it, and the figure the warehouse computed.
DashboardSpending, merchants, categorisation quality and error rates over the finished tables.

Data lakehouse · Databricks

Warehouse ELT and MLOps on Databricks

The same raw, cleaned and reporting layers rebuilt on Databricks — the transformations written in PySpark, governed by Unity Catalog, run as a job graph defined entirely in code on compute the vendor manages. Rejected rows are kept with the reason they were rejected, money totals must agree to the penny before anything downstream runs, and a fine-tuned classifier and a copy-back into the application's own database are gated the same way. Databricks is hosted on AWS too, in its own separate AWS account — not the one the Snowflake platform uses.

Traditional vs this build

Traditional wayWhat changedAdvantage
Bad rows are dropped, or the whole load fails with no record of whyEach rejected row is written aside with its reasons and the file it came fromNothing disappears silently; every rejection can be explained
Reconciliation is a report produced after publicationReconciliation is a gate: the money totals must be exactly equalA single penny of drift skips every later step rather than publishing
Pipelines assembled by clicking in a web consoleThe job graph, its schedule and its dashboard all live in one code fileReviewable, repeatable, and rebuildable from the repository alone
A model is shipped because it scored well onceEvery training run is recorded and compared against the stored baselineA model that is worse than the one in use cannot be registered
Warehouse results stay in the warehouse, out of the product's reachA scheduled job copies the summary figures into the application's own databaseUsers see warehouse analytics in the app they already use

STAR outcome

SSituation
The Snowflake build proved the pipeline, but it covered none of the machine-learning lifecycle, and the figures it produced had no route back to the application that people actually use.
TTask
Rebuild the same pipeline on a second platform without reusing its transformation tool, add the model lifecycle and the path back to the app, and make every claim about correctness and about permissions something a run can demonstrate rather than something a document asserts.
AAction
I rebuilt the cleaned and reporting layers in PySpark under Unity Catalog governance, with the whole job graph, its schedule and its dashboard defined in one code file and run on compute the vendor manages. The quality gates set rejected rows aside with their reasons and hold a reconciliation gate that compares money totals exactly. I fine-tuned a DistilBERT text classifier over 22 spending categories, recorded every run, versioned the model in the catalogue behind an evaluation gate, and served it as a shared service used only after a rules layer and only when it is at least 80% confident. A scheduled Kubernetes job copies the summary figures into the application's own PostgreSQL through a login confined to one schema and two tables.
RResult
  • The two platforms agree on all 12 reporting tables — identical row counts and the same money totals to the penny, from the same input files.
  • Proved with a deliberately corrupt batch, not only a clean one: the gate failed and every later step was skipped, so nothing wrong was published.
  • The classifier chain — rules first, then the model only at 80% confidence or above, then closest-match on meaning — raised agreement with 245 reviewed labels from 95.5% with 9 wrong answers to 99.2% with none.
  • The first copy back into the app's database moved 780 rows in 36 seconds, and eleven checks each prove one thing that login is refused rather than asserting its permissions.
  • Not measured accuracy on real bank data — the data is synthetic, and those 245 labels were reviewed by me rather than independently produced. The drift monitoring raises an alert; it does not stop a run.

2/2Warehouse ELT and MLOps on Databricks

Screenshots

Workflows run graphEvery step of the job green, with the quality gates sitting between the layers.
Gate stops a corrupt batchThe gate red and every later step skipped, so nothing wrong is published.
Training runs comparedEach fine-tuning run with its settings and results, kept for comparison.
Copy back to the appThe scheduled job that moves the summary figures into the application's database.

Cloud deployment · AWS

AWS EKS deployment

The agent apps deployed to a managed Kubernetes cluster in AWS, set up entirely as code, with secure sign-in, encrypted storage, monitoring and security alerts. The same Helm charts can deploy the apps to Google Kubernetes Engine (GKE) with minimal effort.

The cluster and its supporting services

2/2AWS monitoring & security

Monitoring & observability

Security

Cloud deployment · AWS

AWS serverless deployment

A pay-per-use version on AWS, set up entirely as code, showing three patterns: a secure website, scheduled jobs, and jobs that start when a file is uploaded.

The three flows

Secure website. Pages come from private storage, and sign-in is checked twice — before the page loads and again on every request to the app.

Scheduled jobs. Jobs run automatically on a timetable, each in its own locked-down space.

Upload-triggered jobs. Uploading a file starts an analysis automatically, and a report is saved when it finishes.

2/2AWS serverless deployment

Screenshots

Cloud deployment · Azure

Azure AKS and Serverless

The agent apps deployed to a managed Kubernetes cluster in Azure using the same Helm charts as AWS, plus a pay-per-use serverless version — set up entirely as code, with secure sign-in, private networking and monitoring.

The cluster and its supporting services

2/3Azure monitoring, audit & cost

Monitoring, audit & cost

3/3Azure serverless deployment

The serverless flows

Scheduled jobs. A security scan runs every morning on its own, in a job that exists only while it runs.

Upload-triggered jobs. Uploading a log file starts an incident analysis automatically, and the result is saved when it finishes.

Pay-per-use functions. Small functions handle requests and start jobs, and cost nothing while idle.