Kaizen Teams

Dropdown

Table of Contents

Time to read

·

12

Published on

·

May 8, 2017

Last updated on

·

May 26, 2026

Fabian Fernandez, co-founder of Kaizen Softworks

Fabian Fernandez

Ruler of the ocean

Co-Founder

Technology

Technology

What’s Your Strategy to Migrate to the Cloud?

Published on

·

May 27, 2026

Last updated on

·

May 26, 2026

Time to read

·

12

Fabian Fernandez, co-founder of Kaizen Softworks

Fabian Fernandez

Co-Founder

In today's tech-driven world, the Cloud-First approach has become the norm. If you haven't yet considered moving your existing systems to the cloud or integrating cloud services into your software architecture, you're missing out on opportunities to enhance agility, reduce costs, and gain a competitive edge.

I recently had the pleasure of being the keynote speaker at the Global Azure Bootcamp Montevideo , and this article is inspired by that presentation.

What is Cloud Computing?

Gartner defines cloud computing as: 'A style of computing where scalable and elastic IT-related capabilities are provided ‘as a service’ to external customers using Internet technologies'. The cloud has five key attributes:

  1. Service-based: It abstracts consumer concerns from provider concerns through service interfaces.
  2. Scalable and elastic: Services can scale on demand by adding or removing resources.
  3. Shared: Services share a pool of resources for economies of scale.
  4. Metered by use: Services are tracked using usage metrics, enabling various payment methods.
  5. Internet technologies: Services are delivered through the use of Internet identifiers, formats, and protocols.

To make the most of these cloud attributes, you need a well-thought-out strategy for migration. Every company must decide how to leverage the cloud, focusing on three primary approaches:

  1. SaaS (Software as a Service) solutions offer time and cost savings. They enable you to access software applications via the internet, cutting down on installation and maintenance efforts.
  2. Extending Your Current Infrastructure with the Cloud: This approach involves integrating the cloud into your existing infrastructure, making your systems more agile and cost-effective.
  3. Higher-Level Services: Leveraging higher-level cloud services provides out-of-the-box solutions for common scenarios that can be adapted to your specific business needs, enhancing innovation and cost-efficiency.

By working on these three areas is how we really can transform our business.

Why Microsoft Azure?

At Kaizen Softworks , we are firm believers that Microsoft Azure offers one of the most comprehensive cloud solutions. Gartner has recognized Microsoft as a Leader in three Magic Quadrants of the Cloud: Cloud Infrastructure as Service, Public Cloud Storage Services, and Enterprise Application Platform as a Service.

Microsoft's SaaS solutions, such as Office 365, Microsoft Dynamics, and Power BI, are deployed globally and used by millions of customers.

For the other two cloud approaches, Microsoft Azure comes into play. Azure is a comprehensive cloud platform offering both higher-level services and infrastructure.

Amazon Web Services (AWS) is a great IaaS, but they don’t have SaaS, Salesforce has SaaS, but no IaaS, and the examples keep coming. By using a Cloud that covers all the three areas is how we can truly find the value of being agile, save money and integrate smoothly to transform our business.

Azure has a distinct advantage with its 34 regions , doubling what Amazon Web Services provides, and more regions are continually being added.

Azure's Foundational Pillars

Azure is built on three foundational pillars:

1. Choice and Flexibility

Azure provides an array of tools, technologies, and frameworks to choose from. You can select the best tools, programming languages, and platforms for your specific needs.

Having every Server OS including Linux with 12 different distributions, almost every DB system, so many different programming languages and platforms allows us to choose the best tool for the job and use the open source or commercial version on a case by case.

Here’s some of the tools and frameworks we can choose from:

Logos of Microsoft Azure Tools and Frameworks

We also have something very particular and unique to the Azure cloud, this is the Azure Stack. With it we get the same experience and power of the public cloud but on-premises or on a server provider hosting service.

Same management portal, same APIs, same apps and same DevOps experience. For government and other companies with particular needs and restrictions this is a huge deal. No other Cloud provider has this type of service.

2. Enterprise Ready

Azure boasts a multitude of compliance certifications and standards, making it a preferred choice for 85% of Fortune 500 companies.

Security and Privacy are key to enterprise customers and Microsoft has vast experience running online services developing industry-leading security measures and privacy policies.

These are just a few, but you can check them all:

Logos of Microsoft Azure Compliance Certifications


3. Productivity

Azure focuses on productivity, allowing teams to work seamlessly with integrations between various tools, services, workloads, and infrastructure, creating an efficient DevOps lifecycle.

Graphic Image of Microsoft Azure Tools, Workloads and Infrastructure

Using Visual Studio Team Services (VSTS) SaaS solution, we can code on a PC or Mac, using Visual Studio (and even Visual Studio for Mac — in preview), Eclipse or XCode; any IDE, any platform, any language, a SaaS solution used by more than 4 million developers worldwide.

We can have all the private repos we want using Git or TFS, without paying anything additional, or we can integrate with our repos from other platforms like GitHub. VSTS offers a full DevOps cycle with build service, deploy and unit testing; and you know what else? We can compile Java, Android, .NET and some more.

After we passed our Unit Tests we can do some Load Testing simulating thousands of users hitting our web app or backend before moving to a Production environment.

Once everything is tested and ok, we can establish and use our own release policies and deploy our apps and backends to the Azure Cloud. While in Production we can use Application Insights to study the performance of it and keep the cycle running.


Azure Success Stories

The numbers speak for themselves:

  • More than 120,000 new Azure customer subscriptions are added each month.
  • 1.6 million SQL databases run in Azure.
  • Azure processes 2 trillion messages per week through Azure IoT.
  • Azure serves 600 million Azure Active Directory users from 5 million companies.
  • Over 4 million developers are registered with Visual Studio Team Services.
  • Over 40% of Azure's revenue comes from startups and ISVs.


Real-World Azure Applications

Now, that’s some serious numbers but I also want to share some cool stories I heard from Scott Guthrie. Azure has been a game-changer for various industries:

AccuWeather, probably the biggest weather company out there, uses Azure to process more than 10 billion data inputs per day and 7 trillion unique data entities where they apply Machine Learning to be able to predict weather, not to mention they are using API services to sell this info to third parties too.

BMW built the whole ConnectedDrive platform using Azure technologies like Azure IoT, Machine Learning services, Data Services and many more.

Rolls Royce, well known for its cars but also for making flight engines are providing their customers a better experience by informing them of engine failures, preventing fails, predicting them, applying analytics and optimizing engine use.

All this by using Azure services like the IoT Suite, Cortana Analytics and Power BI, this last one used to analyze fuel consumption and suggest better routes that optimize it.

Azure App Platform

Azure's App Platform offers Web Apps, Mobile Apps, Logic Apps and API Apps. You can develop your apps in any language like Python, NodeJS, PHP, Java and .NET.

Azure offers features like:

  • Auto Patching, which means we don’t have to care or worry about updating the Operating System they are running on.
  • Autoscaling, which allows us to configure some rules to indicate how the app has to react to heavy loads and how to scale down when the load has been reduced.
  • Easy integration with existing apps, and we can configure continues deployment from our favorite repository system. Nascar and Alaska Airlines are examples of integrations between on-premises applications and new solutions in the Azure cloud. We also have Jet using everything from F# to Azure, I had the pleasure to meet Rachel Reese from the team and I can firmly say they know what they are doing.

I would like to give a special mention in the App Platform to Azure Functions. Azure Functions is a serverless computing service that allows you to code functions and pay only per invocation. It supports multiple languages and can be triggered by various events.

With this we forget about Virtual Machines, Apps and all that stuff and we just code some functions and that’s it. Our code runs in the cloud and we just pay per invocation, which can be triggered on certain events in Azure or by external services.

We can code these functions using F#, JavaScript, C#, Python, Batch, Bash, PHP and PowerShell and even code them using a web based interface, so no need for IDE neither — crazy. The Azure Functions runtime is open source and we can basically get it up and running anywhere, including AWS.

My very good friend Rachel Appel is working in the Azure Functions team at Microsoft, be sure to follow her and stay tuned for her speaking appearances.

Microservices on Azure

When it comes to Microservices, Azure doesn’t leave us alone. We have three different approaches to choose from depending of our needs and situation. The most basic one is VM Scale Sets, then we can jump to Azure Container Service or lastly use Azure Service Fabric like many Azure customers chose including BMW, TalkTalk and many more.

The Azure Container Service has standard Docker tooling and API support, you can orchestrate everything thru Azure, and you can use it on Azure or Azure Stack.

Azure Service Fabric is a prescriptive microservice platform which also uses Docker but with more services like sanity state management and more. You have .NET and Java APIs on Windows Server and Linux and you can deploy it to Azure, Azure Stack, VMWare, OpenStack and AWS.

Data and Analytics

The data management options Azure has to offer is wide. We have some official Microsoft options like SQL Azure, DocumentDB and Azure Redis Cache, but then we also have some other interesting options like Postgres, DB2, Oracle, MySQL, Cassandra, MongoDB, CouchDB and RavenDB.

SQL Azure has more than 1.6 million databases running, it’s a first class citizen developed by Microsoft with high availability, durable and fault tolerant, and you can scale elastically all around the world. For your existing SQl Server databases, fear not my friend, it is compatible and we have a really cool tool to help us: SQL Database Migration Wizard.

DocumentDB is another first class citizen here, a fully managed NoSQL database system made by Microsoft that scales from GBs to 100s of TBs. High performance with support of millions of operations per second.

Another cool thing is that we can scale app data and throughput independently, a feature introduced based on client feedback. I’m also really happy to say that my friend and Microsoft MVP Matías Quaranta is joining the DocumentDB team in Redmond.

The Walking Dead No Man’s Land app that reached number 1 in the Apple App Store is an excellent example of DocumentDB use with 1 billion queries per day with responses of less than 10ms 99% of the time. A video is worth a million words:

We all know systems generate more and more data every day at a pace that only keeps incrementing, but this is really good news if we are clever enough to take advantage of that data, gain insights from it and take intelligent actions.

For this, we have a big suite of options to use depending of our needs to know what happened, why, what will happen and what we should do about it, this suite is called the Cortana Intelligence Suite and includes: Power BI, Machine Learning, SQL Data Warehouse, HDInsight, Data Lake Analytics, Data Lake Store, Stream Analytics, Data Factory, Data Catalog and Event Hubs.

Internet of Things (IoT)

IoT is not left behind in Azure with the Azure IoT Suite offering secure device connectivity and management, business workflow integration and pre-configured solutions to start quickly and customize later to our needs.

Some big names using this Suite but not limited to these are Ford in their newest vehicles and Thyssenkrupp. The market leader in elevator systems uses the Azure IoT Suite to analyze and predict failures so they can optimize the service experience offered to their clients.

Cloud Infrastructure on Azure

If we move into infrastructure services in the Cloud, we can use Virtual Machines, Blob Storage, Active Directory, Virtual Networks, Load Balancers, DNS, Gateways.

I mean… you are a fully covered here too, there’s so many services in the Azure Cloud that we can take advantage from to create all the infrastructure of our systems in one place and manage everything from the same portal.

There’s up to 64 TB of storage per VM with less than 1ms read latency. If we step up, Azure has the largest VMs in the Public Cloud of up to 32 CPU cores and the latest generation of Intel processors, 450 GB RAM and 6.5 TB of local SSD! Crazy!

Companies using Azure Cloud Infrastructure include Walmart, United Nations, Samsung, Toyota, 3M and the list is long.

Cybersecurity on Azure

Nowadays hearing about attacks to companies systems is no surprise and Security has being positioned as a top priority for CIOs. Azure Security Center allows you to have visibility and control to prevent, detect and respond to security threats of your Cloud services.

Screenshot of Microsoft Azure Security Module

Again, all from the same management portal with integrations to known security solutions like Barracuda, Trend Micro and many more.

Logos of Security Solutions


Conclusion

I hope I gave you an overview of why Microsoft Azure is a great opportunity to jump into the Cloud, in our experience at Kaizen Softworks it has been a great choice in every project we used it.

We have vast experience using the App Platform and is probably one of the easiest ways to start investigating and doing some tests of your systems with the Azure Cloud. In several of our projects we have used SQL Azure and is not in vain that 1.6M databases are in use in Azure, the experience is practically the same if you are used to work with SQL Server.

Some other great services we have been using for a long time are Azure Active Directory, Blob Storage and Service Bus among other, all of which together allows us to build robust architectures in the Cloud.

As we are big fans of Single Page Applications built using Angular and many other non-Microsoft tech we can also say that serving applications built using these technologies has been a breeze in the Azure Cloud. Choice and flexibility checked.

The DevOps experience while working with Microsoft is great from Source Code Repo options to build, deploy, test and analyze, I think that this well integrated lifecycle in the Cloud is what has let us rely so many aspects of the process in the platform and just take care of what’s really important: building the system. The productivity focus of Microsoft is clearly noticed.

As another remarkable point from our experience, we had the opportunity to work implementing the HIPAA Compliance standard in the Azure Cloud and there are a lot of aspects of it already covered by Azure out of the box, so another great differentiator there. Enterprise Ready verified.

In today's tech-driven world, the Cloud-First approach has become the norm. If you haven't yet considered moving your existing systems to the cloud or integrating cloud services into your software architecture, you're missing out on opportunities to enhance agility, reduce costs, and gain a competitive edge.

I recently had the pleasure of being the keynote speaker at the Global Azure Bootcamp Montevideo , and this article is inspired by that presentation.

What is Cloud Computing?

Gartner defines cloud computing as: 'A style of computing where scalable and elastic IT-related capabilities are provided ‘as a service’ to external customers using Internet technologies'. The cloud has five key attributes:

  1. Service-based: It abstracts consumer concerns from provider concerns through service interfaces.
  2. Scalable and elastic: Services can scale on demand by adding or removing resources.
  3. Shared: Services share a pool of resources for economies of scale.
  4. Metered by use: Services are tracked using usage metrics, enabling various payment methods.
  5. Internet technologies: Services are delivered through the use of Internet identifiers, formats, and protocols.

To make the most of these cloud attributes, you need a well-thought-out strategy for migration. Every company must decide how to leverage the cloud, focusing on three primary approaches:

  1. SaaS (Software as a Service) solutions offer time and cost savings. They enable you to access software applications via the internet, cutting down on installation and maintenance efforts.
  2. Extending Your Current Infrastructure with the Cloud: This approach involves integrating the cloud into your existing infrastructure, making your systems more agile and cost-effective.
  3. Higher-Level Services: Leveraging higher-level cloud services provides out-of-the-box solutions for common scenarios that can be adapted to your specific business needs, enhancing innovation and cost-efficiency.

By working on these three areas is how we really can transform our business.

Why Microsoft Azure?

At Kaizen Softworks , we are firm believers that Microsoft Azure offers one of the most comprehensive cloud solutions. Gartner has recognized Microsoft as a Leader in three Magic Quadrants of the Cloud: Cloud Infrastructure as Service, Public Cloud Storage Services, and Enterprise Application Platform as a Service.

Microsoft's SaaS solutions, such as Office 365, Microsoft Dynamics, and Power BI, are deployed globally and used by millions of customers.

For the other two cloud approaches, Microsoft Azure comes into play. Azure is a comprehensive cloud platform offering both higher-level services and infrastructure.

Amazon Web Services (AWS) is a great IaaS, but they don’t have SaaS, Salesforce has SaaS, but no IaaS, and the examples keep coming. By using a Cloud that covers all the three areas is how we can truly find the value of being agile, save money and integrate smoothly to transform our business.

Azure has a distinct advantage with its 34 regions , doubling what Amazon Web Services provides, and more regions are continually being added.

Azure's Foundational Pillars

Azure is built on three foundational pillars:

1. Choice and Flexibility

Azure provides an array of tools, technologies, and frameworks to choose from. You can select the best tools, programming languages, and platforms for your specific needs.

Having every Server OS including Linux with 12 different distributions, almost every DB system, so many different programming languages and platforms allows us to choose the best tool for the job and use the open source or commercial version on a case by case.

Here’s some of the tools and frameworks we can choose from:

Logos of Microsoft Azure Tools and Frameworks

We also have something very particular and unique to the Azure cloud, this is the Azure Stack. With it we get the same experience and power of the public cloud but on-premises or on a server provider hosting service.

Same management portal, same APIs, same apps and same DevOps experience. For government and other companies with particular needs and restrictions this is a huge deal. No other Cloud provider has this type of service.

2. Enterprise Ready

Azure boasts a multitude of compliance certifications and standards, making it a preferred choice for 85% of Fortune 500 companies.

Security and Privacy are key to enterprise customers and Microsoft has vast experience running online services developing industry-leading security measures and privacy policies.

These are just a few, but you can check them all:

Logos of Microsoft Azure Compliance Certifications


3. Productivity

Azure focuses on productivity, allowing teams to work seamlessly with integrations between various tools, services, workloads, and infrastructure, creating an efficient DevOps lifecycle.

Graphic Image of Microsoft Azure Tools, Workloads and Infrastructure

Using Visual Studio Team Services (VSTS) SaaS solution, we can code on a PC or Mac, using Visual Studio (and even Visual Studio for Mac — in preview), Eclipse or XCode; any IDE, any platform, any language, a SaaS solution used by more than 4 million developers worldwide.

We can have all the private repos we want using Git or TFS, without paying anything additional, or we can integrate with our repos from other platforms like GitHub. VSTS offers a full DevOps cycle with build service, deploy and unit testing; and you know what else? We can compile Java, Android, .NET and some more.

After we passed our Unit Tests we can do some Load Testing simulating thousands of users hitting our web app or backend before moving to a Production environment.

Once everything is tested and ok, we can establish and use our own release policies and deploy our apps and backends to the Azure Cloud. While in Production we can use Application Insights to study the performance of it and keep the cycle running.


Azure Success Stories

The numbers speak for themselves:

  • More than 120,000 new Azure customer subscriptions are added each month.
  • 1.6 million SQL databases run in Azure.
  • Azure processes 2 trillion messages per week through Azure IoT.
  • Azure serves 600 million Azure Active Directory users from 5 million companies.
  • Over 4 million developers are registered with Visual Studio Team Services.
  • Over 40% of Azure's revenue comes from startups and ISVs.


Real-World Azure Applications

Now, that’s some serious numbers but I also want to share some cool stories I heard from Scott Guthrie. Azure has been a game-changer for various industries:

AccuWeather, probably the biggest weather company out there, uses Azure to process more than 10 billion data inputs per day and 7 trillion unique data entities where they apply Machine Learning to be able to predict weather, not to mention they are using API services to sell this info to third parties too.

BMW built the whole ConnectedDrive platform using Azure technologies like Azure IoT, Machine Learning services, Data Services and many more.

Rolls Royce, well known for its cars but also for making flight engines are providing their customers a better experience by informing them of engine failures, preventing fails, predicting them, applying analytics and optimizing engine use.

All this by using Azure services like the IoT Suite, Cortana Analytics and Power BI, this last one used to analyze fuel consumption and suggest better routes that optimize it.

Azure App Platform

Azure's App Platform offers Web Apps, Mobile Apps, Logic Apps and API Apps. You can develop your apps in any language like Python, NodeJS, PHP, Java and .NET.

Azure offers features like:

  • Auto Patching, which means we don’t have to care or worry about updating the Operating System they are running on.
  • Autoscaling, which allows us to configure some rules to indicate how the app has to react to heavy loads and how to scale down when the load has been reduced.
  • Easy integration with existing apps, and we can configure continues deployment from our favorite repository system. Nascar and Alaska Airlines are examples of integrations between on-premises applications and new solutions in the Azure cloud. We also have Jet using everything from F# to Azure, I had the pleasure to meet Rachel Reese from the team and I can firmly say they know what they are doing.

I would like to give a special mention in the App Platform to Azure Functions. Azure Functions is a serverless computing service that allows you to code functions and pay only per invocation. It supports multiple languages and can be triggered by various events.

With this we forget about Virtual Machines, Apps and all that stuff and we just code some functions and that’s it. Our code runs in the cloud and we just pay per invocation, which can be triggered on certain events in Azure or by external services.

We can code these functions using F#, JavaScript, C#, Python, Batch, Bash, PHP and PowerShell and even code them using a web based interface, so no need for IDE neither — crazy. The Azure Functions runtime is open source and we can basically get it up and running anywhere, including AWS.

My very good friend Rachel Appel is working in the Azure Functions team at Microsoft, be sure to follow her and stay tuned for her speaking appearances.

Microservices on Azure

When it comes to Microservices, Azure doesn’t leave us alone. We have three different approaches to choose from depending of our needs and situation. The most basic one is VM Scale Sets, then we can jump to Azure Container Service or lastly use Azure Service Fabric like many Azure customers chose including BMW, TalkTalk and many more.

The Azure Container Service has standard Docker tooling and API support, you can orchestrate everything thru Azure, and you can use it on Azure or Azure Stack.

Azure Service Fabric is a prescriptive microservice platform which also uses Docker but with more services like sanity state management and more. You have .NET and Java APIs on Windows Server and Linux and you can deploy it to Azure, Azure Stack, VMWare, OpenStack and AWS.

Data and Analytics

The data management options Azure has to offer is wide. We have some official Microsoft options like SQL Azure, DocumentDB and Azure Redis Cache, but then we also have some other interesting options like Postgres, DB2, Oracle, MySQL, Cassandra, MongoDB, CouchDB and RavenDB.

SQL Azure has more than 1.6 million databases running, it’s a first class citizen developed by Microsoft with high availability, durable and fault tolerant, and you can scale elastically all around the world. For your existing SQl Server databases, fear not my friend, it is compatible and we have a really cool tool to help us: SQL Database Migration Wizard.

DocumentDB is another first class citizen here, a fully managed NoSQL database system made by Microsoft that scales from GBs to 100s of TBs. High performance with support of millions of operations per second.

Another cool thing is that we can scale app data and throughput independently, a feature introduced based on client feedback. I’m also really happy to say that my friend and Microsoft MVP Matías Quaranta is joining the DocumentDB team in Redmond.

The Walking Dead No Man’s Land app that reached number 1 in the Apple App Store is an excellent example of DocumentDB use with 1 billion queries per day with responses of less than 10ms 99% of the time. A video is worth a million words:

We all know systems generate more and more data every day at a pace that only keeps incrementing, but this is really good news if we are clever enough to take advantage of that data, gain insights from it and take intelligent actions.

For this, we have a big suite of options to use depending of our needs to know what happened, why, what will happen and what we should do about it, this suite is called the Cortana Intelligence Suite and includes: Power BI, Machine Learning, SQL Data Warehouse, HDInsight, Data Lake Analytics, Data Lake Store, Stream Analytics, Data Factory, Data Catalog and Event Hubs.

Internet of Things (IoT)

IoT is not left behind in Azure with the Azure IoT Suite offering secure device connectivity and management, business workflow integration and pre-configured solutions to start quickly and customize later to our needs.

Some big names using this Suite but not limited to these are Ford in their newest vehicles and Thyssenkrupp. The market leader in elevator systems uses the Azure IoT Suite to analyze and predict failures so they can optimize the service experience offered to their clients.

Cloud Infrastructure on Azure

If we move into infrastructure services in the Cloud, we can use Virtual Machines, Blob Storage, Active Directory, Virtual Networks, Load Balancers, DNS, Gateways.

I mean… you are a fully covered here too, there’s so many services in the Azure Cloud that we can take advantage from to create all the infrastructure of our systems in one place and manage everything from the same portal.

There’s up to 64 TB of storage per VM with less than 1ms read latency. If we step up, Azure has the largest VMs in the Public Cloud of up to 32 CPU cores and the latest generation of Intel processors, 450 GB RAM and 6.5 TB of local SSD! Crazy!

Companies using Azure Cloud Infrastructure include Walmart, United Nations, Samsung, Toyota, 3M and the list is long.

Cybersecurity on Azure

Nowadays hearing about attacks to companies systems is no surprise and Security has being positioned as a top priority for CIOs. Azure Security Center allows you to have visibility and control to prevent, detect and respond to security threats of your Cloud services.

Screenshot of Microsoft Azure Security Module

Again, all from the same management portal with integrations to known security solutions like Barracuda, Trend Micro and many more.

Logos of Security Solutions


Conclusion

I hope I gave you an overview of why Microsoft Azure is a great opportunity to jump into the Cloud, in our experience at Kaizen Softworks it has been a great choice in every project we used it.

We have vast experience using the App Platform and is probably one of the easiest ways to start investigating and doing some tests of your systems with the Azure Cloud. In several of our projects we have used SQL Azure and is not in vain that 1.6M databases are in use in Azure, the experience is practically the same if you are used to work with SQL Server.

Some other great services we have been using for a long time are Azure Active Directory, Blob Storage and Service Bus among other, all of which together allows us to build robust architectures in the Cloud.

As we are big fans of Single Page Applications built using Angular and many other non-Microsoft tech we can also say that serving applications built using these technologies has been a breeze in the Azure Cloud. Choice and flexibility checked.

The DevOps experience while working with Microsoft is great from Source Code Repo options to build, deploy, test and analyze, I think that this well integrated lifecycle in the Cloud is what has let us rely so many aspects of the process in the platform and just take care of what’s really important: building the system. The productivity focus of Microsoft is clearly noticed.

As another remarkable point from our experience, we had the opportunity to work implementing the HIPAA Compliance standard in the Azure Cloud and there are a lot of aspects of it already covered by Azure out of the box, so another great differentiator there. Enterprise Ready verified.

Related Articles

View all articles

·

Aug 14, 2026

Running Synthetic Users Into Claude Code

A synthetic user research framework, turned into a Claude Code plugin that runs automated UX tests with AI agents, step by step.

12 read time

Read more

A synthetic user is a constrained AI decision agent defined by twelve fields, from functional role and context to assumptions and abandonment rules.

In the previous post I built an early, working implementation, and the next question was whether the same rules could hold up in a repeatable, automated test.

This post is that next step: how I turned the framework into a Claude Code plugin, and the technical decisions behind adapting methods designed for people into something an AI can execute without cheating.

Why “find the usability issues” is not enough

Give a model a URL and ask it to “find the usability issues.” It works halfway. And the “halfway” is the interesting part, It gives you a generic list, correct in the abstract, useless in practice.

A usability issue matters because of who encounters it and under what conditions.

Using an app from bed is not the same as using it on a factory floor. Urgency changes, lighting changes, attention changes, previous knowledge changes. The same confusing button can be irrelevant to a power user and an abandonment point for an operator wearing gloves.

The whole design comes from that observation: the AI does not evaluate the interface. It acts as a specific person in front of the interface.

The person brings the context with them. And the context turns a list of defects into a list of priorities.

Anatomy of a simulation

An orchestrator controls the browser through Playwright MCP. It reads each screen as an accessibility snapshot: text, roles, states, no guessing pixels. Then it acts on specific elements.

The decision on each screen is made by an isolated subagent, which returns a JSON for each step:

{

  "action": "...",

  "clarityLevel": "High|Medium|Low",

  "doubtDetected": true,

  "reason": "...",

  "abandoned": false,

  "estimatedTimeSeconds": 40,

  "emotionalState": "...",

  "memory": "..."

}

Two rules make this look more like a person and less like an oracle.

1. The evaluator never sees the end.

The evaluator receives one screen at a time, without knowing how many are left or what comes next in the flow.

If the interface leaves room for a mistake, the synthetic user makes the mistake. It clicks where a person would click, not where it is convenient to click in order to complete the test. This is where the framework’s forbidden assumptions live. The agent cannot assume backend logic or mentally complete what the screen does not show.

2. Emotion is memory, not decoration.

The memory field travels from one step to the next. The emotional state is inherited and accumulates. A frustration +1 persists. This detects something that is structurally invisible to any test that evaluates screens separately.

Screen five does not necessarily fail because of screen five. It fails because the user gets there with accumulated frustration.

Evaluated alone, that screen passes. Evaluated by someone carrying three doubts and one broken promise, it triggers abandonment. In the first post, I wrote that doubt is not failure. It is the signal that reveals structural friction.

Emotional memory is that idea turned into architecture.

Eight subagents, one job each

Each subagent gets a clean context. It knows the minimum required to do its job.

That ignorance is deliberate.

The agent acting as the user does not know what the orchestrator knows. It cannot compensate for bad design with knowledge a real person would not have.

Subagent

What it does

Subagent What it does
synthetic-screen-evaluator Acts as the user on one screen and returns the JSON for that step
synthetic-flow-synthesizer Reads the complete run and writes the report. It never simulates again
synthetic-profile-generator Generates a complete profile from an approved spec, choosing from a controlled vocabulary
synthetic-autopilot-synthesizer Consolidates N runs and classifies findings by convergence across users
heuristic-persona-generator Creates the 3 persona raters based on the business being evaluated
heuristic-expert-evaluator Detects violations of the 10 heuristics using forced enumeration
heuristic-persona-rater Scores each finding from the experience of ONE persona. It runs ×3
heuristic-report-synthesizer Builds the final report using the already computed numbers

Adapting a human test: the heuristic evaluation

A textbook heuristic evaluation uses three to five human evaluators because each human finds different problems.

My first experiment was literal, and it went meh.

I iterated until I reached two synthetic detection runs with different agents, coverage was extremely high, but it exposed another problem: an unmanageable list. Dozens of valid issues, very few important ones.

The final design separates those two jobs.

1. An expert finds violations.

Based on Nielsen’s literature, an expert goes through each screen and is forced to produce a verdict for every heuristic: 

  • Violation
  • Clean
  • Not observable

Each verdict includes textual evidence from the snapshot, forced enumeration breaks the habit of reporting only the things that stand out.

2. Three synthetic personas decide what matters based on what they bring with them: context, emotions, urgency, and constraints.

Three synthetic personas are generated according to the business being evaluated: 

  • power user
  • average user
  • low digital literacy

They score the findings without seeing the expert’s conclusions. The same issue can matter very differently depending on what each persona brings to it.

The formula is business impact × usability impact, with agreement between personas as the tiebreaker.

This keeps issue detection and user impact as separate jobs: the expert identifies the violations, and the personas help determine which ones deserve attention first.

Three modes, and a tool for building users

The plugin currently has three modes.

simulation-run (custom)

You build a profile field by field in the Synthetic User Builder, the tool I built to materialize the framework.

First come the attributes: 

  • Role in relation to the product
  • Boundaries
  • Initial emotional state
  • Context
  • Forbidden assumption

Only after that, and separately, comes the task.

The profile describes how someone decides, never what they have to do. That is why the same profile can be reused across tests.

simulation-auto (inferred)

You only give it the URL.

It researches the business, infers the typical roles, proposes users with tasks, and you adjust that proposal in natural language before anything runs.

heuristic-test (inspection)

The heuristic test described above, for one screen, one flow, or the entire site.

Everything run becomes a file

Every run leaves Markdown artifacts inside the project:

user-simulation-tests/

├── simulation/

│   ├── profiles/    ← users: the .md used for simulation + a .builder.json

│   │                   that can be imported back into the Builder and edited manually

│   └── results/     ← one report per run + the consolidated report from auto mode

└── heuristic/

    ├── personas/    ← the 3 raters + business research, reused across runs

    └── results/     ← reports with the prioritized findings table

Simulation reports include the full step by step flow, the emotional arc, risks, and a single “Fix this first.”

The consolidated report classifies findings by convergence: did one user suffer from this, or did all of them?

The decision to keep everything as accumulating .md files is strategic.

These are different runs, using different lenses, that can be analyzed together later, crossing heuristic violations with simulated emotions answers something no individual test gives us:

Of everything that is wrong, what actually matters?

Models and costs

What worked for me for the synthesis subagents:

  • For reports, consolidation, and the heuristic expert, the best available model makes sense. That is where the judgment lives.
  • For the screen evaluator, a medium and fast model is enough. There are many short, constrained calls, and the profile already restricts the decision.
  • The raters are the lightest case.

A complete run consumes between 100k and 400k tokens, depending on the model and mode, in around 20 minutes.

That is the cost of a test that previously required coordinating the schedules of three professionals, and that can now run against every iteration of the product.

See it in action

Here's a complete run against our site, kzsoftworks.com: a skeptical "Business Leader" profile, five live browser steps, and a full Markdown audit in under three minutes that names the exact moment the executive persona lost trust.

It is still early, but it already runs

Every rule in the framework became an architectural constraint: clean context, one screen at a time, emotional memory, forbidden assumptions.

The plugin is open source: github.com/PabloManzoni/user-simulation.

Three commands, and the inferred mode only needs your URL.

If you try it and your synthetic user abandons on screen three, you already know what it means:

It is not failure. It is the signal.

·

Aug 14, 2026

Generative UI: How to keep the experience under control

Generative UI can adapt interfaces to each user, but it adds risks around reliability, latency, cost, security, and accessibility. Learn the architecture that keeps those risks under control.

12 read time

Read more

Generative UI assembles the interface around what each user is trying to do, instead of showing everyone the same fixed screen. That flexibility comes with real considerations: keeping the experience consistent, secure, and easy to support once it's live. This post covers what generative UI is worth building for, what it costs, and how teams keep it under control.

Generative UI works best when the experience is dynamic, but the system behind it stays tightly controlled.

Start by defining which parts of the interface can change, which cannot, and what must be validated before anything reaches the user.

TL;DR

  • Interfaces can adapt to user context, support more variations without designing every screen by hand, and reduce unnecessary steps in a workflow.
  • The trade-offs include inconsistent experiences, unreliable or unsafe output, added latency and infrastructure cost, and harder analytics and debugging.
  • Better prompting can reduce unwanted behavior, but it cannot guarantee reliability, security, or consistency. Those controls need to exist around the model: a stable interface shell, a closed component catalog, validation of model output, session-level logging, and model routing with fallback options.
  • Every control introduces a trade-off. No architecture maximizes flexibility, reliability, privacy, performance, and cost at the same time.

What does generative UI make possible?

Interfaces that adapt to context

The interface can adapt to what a person is trying to do instead of relying only on a persona defined at design time. Steps can reorder or disappear based on intent. It can change how much information it shows and what it emphasizes. Copy can adapt to the user's locale and context instead of relying on literal translation.

More interface variations with less custom development

A small set of components can support many variations without designing each screen separately. The system can also support workflows the team did not design as individual screens, as long as the required components and actions already exist.

Fewer steps between intent and action

The interface can hide controls a task does not need, reducing the number of steps required to complete it. Generative UI can also help teams test different ways of presenting the same task. Whether that improves completion or conversion depends on the workflow.

What can go wrong with generative UI?

Experience consistency risks

When layouts change between users or sessions, they can break muscle memory and make support harder. They can also drift from the design system or disrupt accessibility patterns that depend on consistent structure.

Reliability and security risks

The system should not trust model output by default. A model can render a button that does nothing, display fabricated data in a component, or produce a state the team never tested. Prompt injection can push it toward components, content, or actions the system should not allow. Weak controls can expose sensitive data or allow actions and interface states the product should block.

Performance and infrastructure risks

A generative interface also inherits the model layer's latency, cost, and availability risks. Waiting on an LLM to generate a layout adds delay before a page renders. Each generation uses processing resources, and hosted models usually add usage-based cost. Relying on one provider also exposes your product to outages, API changes, price increases, and deprecations.

Analytics and debugging risks

Standard analytics often assume a fixed set of screens. Heatmaps and funnels become harder to compare when users see different layouts. Reproducing a bug also gets harder when you cannot reopen the exact screen the user saw.

How do you control these risks?

Prompts can reduce unwanted behavior, but they cannot enforce which components the system may render or which actions it may allow. Those limits need to be enforced in the architecture around the model.

What parts of a generative interface should remain fixed?

Keep global navigation, account and security controls, primary actions, critical transaction controls, and accessibility-critical structure fixed. Let the model modify only the content and controls that benefit from adaptation.

Fixed navigation preserves familiar interaction patterns. A stable structure also makes accessibility testing, branding, and support more predictable.

How do you stop generative UI from creating broken interfaces?

Do not let the model generate arbitrary UI code. Have it return structured configuration instead. The schema should specify the component, its data, and its position. Validate that output against a closed catalog before rendering it.

The model should not write HTML, CSS, or JavaScript or choose anything outside that catalog. This reduces invalid layouts and unsupported combinations. This is the declarative approach we covered in Part 1.

How should teams test and secure generative UI?

Treat model output as untrusted input. Validate it against the schema and component allowlist, sanitize content, and keep authorization outside the model.

Add content security policies and prompt-injection defenses based on what the model can access and what actions it can trigger. Pay particular attention to user-provided content, privileged actions, sensitive data, and external tools.

Limit valid component combinations, then use visual regression and property-based tests to exercise unexpected inputs and edge cases.

Minimize sensitive data sent to the model. Mask or anonymize it before generation when the task does not require the original values.

How do you monitor a UI that looks different for every user?

Record enough context to reconstruct each generated interface. That includes detected intent, model version, generated configuration, rendered components, task completion, and errors, all tied to the session.

That record lets teams segment analytics by generated experience and reconstruct what a user saw during a specific session.

How do you control latency, cost, and outages?

Cache reusable results where freshness and privacy allow. Show a skeleton layout immediately and stream the rest in. Route simpler requests to smaller or local models, and reserve larger ones for complex requests. Put providers behind the same integration layer so you can switch models or fall back to a static experience during an outage.

What it controls Risks it mitigates
Stable interface shell Keeps navigation, account controls, and primary actions fixed Muscle memory loss, brand drift, accessibility gaps, support friction
Component-based UI Model outputs configuration, not code UI hallucinations, broken layouts, brand inconsistency, testing complexity
Untrusted-input handling Schema validation, allowlists, sanitization, sensitive-data controls Prompt injection, unsafe states, fabricated actions, privacy exposure
Session-level logging Records intent, generated configuration, rendered components, and outcome Fragmented analytics, hard-to-reproduce bugs, support friction
Model routing and fallback Caching, streaming, model routing, provider switching Latency, model cost, provider downtime, difficulty switching providers

What do these controls cost you?

Keeping more of the interface fixed protects consistency but limits personalization. Limiting combinations makes the system easier to test but reduces how much it can vary. Caching lowers cost, but cached output can go stale.

Running models locally can reduce how much sensitive data leaves your infrastructure, but it adds systems your team has to operate and maintain. Detailed session logs can make support easier, but they also create storage, retention, and privacy requirements.

No architecture maximizes flexibility, reliability, privacy, performance, and cost at once. You need to decide which trade-offs matter most for each workflow and design around them.

llms.txt