RSSAmplifier

Blog

Mikhail Shilkov

mikhail.ioRSS feed ↗58 posts

Latest posts

Inside Claude Code Skills: Structure, prompts, invocation

Under the hood of Claude Code skills: folder layout, tool definition, and runtime flow. Claude Code recently added skills as an extensibility mechanism alongside MCP servers and slash commands. While MCP servers add new tools and slash commands provide pre-defined prompts, skills expand prompts on demand with task-specific instructions and local helpers. This post explains how skills are wired:…

Inside Claude Code's Web Tools: WebFetch vs WebSearch

How Claude Code uses web tools under the hood: schemas, prompts, execution, and design trade-offs Claude Code is a popular coding assistant. The tool isn’t open-source, so I inspected its runtime behavior to understand the internals. This post documents what I’ve seen in the two “web” tools— WebFetch and WebSearch —and how they’re designed. The post is written for…

Claude Code 2.0 System Prompt Changes

Analyzing the system prompt changes between Claude Code 1.x and 2.0, powered by Sonnet 4.5 Claude Code 2.0 launched in September 2025, powered by Sonnet 4.5 which Anthropic calls the “best coding model in the world.” The announcement focused on checkpoints and the new VS Code extension, but the underlying prompt and tools changed as well. Claude Code isn’t open source, and…

AI-Assisted Infrastructure as Code with Pulumi's Model Context Protocol Server

Learn how AI assistants like Cursor with Pulumi’s MCP server accelerate IaC workflows and improve developer experience. Infrastructure as Code (IaC) has revolutionized how we manage cloud resources, but navigating complex cloud provider APIs, writing boilerplate code, and iterating through deployment cycles can still be time-consuming. Pulumi offers a fantastic developer experience using…

Introducing Customizable Resource Auto-naming in Pulumi

Discover how to customize Pulumi’s resource naming to align with your organization’s standards and naming conventions. I’m thrilled to announce that you can now customize how Pulumi names your cloud resources! Our default auto-naming feature has helped thousands of customers successfully manage cloud resources at scale by automatically ensuring unique, conflict-free resource…

Pulumi + Azure Deployment Environments: Better Together for Enterprise Developers

Author Azure Deployment Environments definitions with Pulumi using your favorite programming language. We are excited to announce the support for authoring Azure Deployment Environments (ADE) environment definitions in Pulumi Infrastructure as Code (IaC) empowering developers to self-serve app infrastructure required to deploy and test cloud-based applications. With Pulumi support, you can now…

Infrastructure as Code with Java and Pulumi

Learn about Pulumi’s support for Java and JVM languages, which enable you to use Infrastructure As Code on any Cloud with the JVM ecosystem. Infrastructure has become a core part of application development as modern cloud capabilities such as microservices, containers, serverless, and data stores define your application’s architecture. The term “infrastructure” covers all…

Get Up and Running with Azure Synapse and Pulumi

Use infrastructure as code to automate deployment of an Azure Synapse workspace Azure Synapse is an integrated analytics service that combines enterprise data warehousing of Azure SQL Data Warehouse and Big Data analytics of Apache Spark. Azure Synapse is a managed service well integrated with other Azure services for data ingestion and business analytics. You could use the Azure portal to get…

How To Deploy Temporal to Azure Kubernetes Service (AKS)

Get up and running with Temporal workflows in Azure and Kubernetes in several CLI commands In my article A Practical Approach to Temporal Architecture , I outlined the various Temporal components and how they interact. Today’s blog builds on this knowledge and demonstrates an example of deploying Temporal to Kubernetes and, more specifically, to Azure Kubernetes Service (AKS). My example is…

Deploying new Azure Container Apps with familiar languages

Learn how to deploy Docker containers to Azure Container Apps using Pulumi. A step-by-step guide for building scalable serverless apps in any language. Today, Microsoft announced a new general-purpose serverless container platform: Azure Container Apps . Container Apps is a fully managed platform for microservice applications that runs on top of Kubernetes and open-source technologies like KEDA,…

How To Deploy Temporal to Azure Container Instances

Get up and running with Temporal workflows in Azure in several CLI commands In my previous article , I outlined the various components of Temporal and how they interact. Today’s blog builds on this knowledge and demonstrates an example Temporal deployment. It’s a minimalistic deployment on Azure which combines a managed MySQL database with Azure Container Instances, suitable for simple…

Eliminate Cold Starts by Predicting Invocations of Serverless Functions

Azure Functions introduce a data-driven strategy to pre-warm serverless applications right before the next request comes in Developers and decision-makers often mention cold starts as a significant drawback of serverless functions. Cloud providers continually invest in reducing the latency of a cold start, but they haven’t done much to prevent them altogether. The most common technique is to…

Choosing the Number of Shards in Temporal History Service

Tuning the sharding configuration for the optimal cluster performance with the numHistoryShards config. Today, I’m diving into the topic of tuning your Temporal clusters for optimal performance. More specifically, I will be discussing the single configuration option: the number of History service shards. Through a series of experiments, I’ll explain how a low number of shards can lead to…

Maru: Load Testing Tool for Temporal Workflows

Benchmarking Temporal deployments with a simple load simulator tool Temporal enables developers to build highly reliable applications without having to worry about all the edge cases. If you are new to Temporal, check out my article Open Source Workflows as Code . Temporal is an open-source project, a system consisting of several components . While a managed Temporal service is coming, all the…

Farmer or Pulumi? Why not both!

Azure Infrastucture as Code using F#: combining Pulumi and Farmer The post is a part of F# Advent Calendar 2020 . You are a proud F# developer. You deploy your applications to Microsoft Azure. You know that you should never right-click-deploy to production. You don’t create important Azure resources via the Azure portal. You are awesome. You want to define your cloud resources with…

Get Up and Running with Azure Synapse and Pulumi

Use infrastructure as code to automate deployment of an Azure Synapse workspace Azure Synapse is an integrated analytics service that combines enterprise data warehousing of Azure SQL Data Warehouse and Big Data analytics of Apache Spark. Azure Synapse is a managed service well integrated with other Azure services for data ingestion and business analytics. You could use the Azure portal to get…

Running Container Images in AWS Lambda

AWS Lambda launches support for packaging and deploying functions as container images When AWS Lambda launched in 2014, it pioneered the concept of Function-as-a-Service. Developers could write a function in one of the supported programming languages, upload it to AWS, and Lambda executes the function on every invocation. Ever since then, a zip archive of application code or binaries has been the…

How to Monitor Your Business with BAM Tools?

Guest Post by Nadeem Ahamed Riswanbasha Introduction Business Activity Monitoring (BAM) plays a vital role in identifying and resolving issues in the flow of a business process. Also, the concept of BAM is not very new to the world of technology because there are already a handful of organisations leveraging BAM to achieve end-to-end business tracking. This blog will feed you with everything that…

How To Deploy Temporal to Azure Kubernetes Service (AKS)

Get up and running with Temporal workflows in Azure and Kubernetes in several CLI commands In my article A Practical Approach to Temporal Architecture , I outlined the various Temporal components and how they interact. Today’s blog builds on this knowledge and demonstrates an example of deploying Temporal to Kubernetes and, more specifically, to Azure Kubernetes Service (AKS). My example is…

How To Deploy Temporal to Azure Container Instances

Get up and running with Temporal workflows in Azure in several CLI commands In my previous article , I outlined the various components of Temporal and how they interact. Today’s blog builds on this knowledge and demonstrates an example Temporal deployment. It’s a minimalistic deployment on Azure which combines a managed MySQL database with Azure Container Instances, suitable for simple…

A Practical Approach to Temporal Architecture

What it takes to get Temporal workflows up and running Temporal enables developers to build highly reliable applications without having to worry about all the edge cases. If you are new to Temporal, check out my article Open Source Workflows as Code . Now that you’re excited, I’ll cover how you can get up and running with Temporal. Temporal consists of several components. In this post,…

Temporal: Open Source Workflows as Code

Temporal reimagines state-dependent service-orchestrated application development Regular readers of my blog may recognize me as a big fan of Azure Durable Functions . Durable Functions are an extension of Azure Functions that lets you write stateful functions and workflows . The SDK does a lot behind the scenes allowing you to focus exclusively on business logic: State management Automatic…

Announcing Next Generation Pulumi Azure Provider

Next Generation Pulumi Azure Provider with 100% API Coverage and Same-Day Feature Support is now available in beta I am excited to announce the beta release of a next generation Microsoft Azure provider for Pulumi. Azure has been a rapidly growing cloud platform among Pulumi users over the last year, and with the next generation Azure provider, we are doubling down on providing the best support…

How to Drain a List of .NET Tasks to Completion

Custom await logic for a dynamic list of .NET tasks, fast and on-time The Pulumi .NET SDK operates with an unusual asynchronicity model. Resource declarations are synchronous calls and complete instantaneously. Yet, they kick off the actual operations of resource creation as background tasks. An end-user does not see these tasks and does not await them. Nonetheless, Pulumi must not stop the…

The Emerging Landscape of Edge-Computing

What is edge computing, and what are the primary use cases in the world today? (a paper review) While I have a good understanding of what cloud computing is, “edge computing” has remained vague. What is edge computing, and what are the primary use cases in the world today? As with other buzzwords, it’s hard to give a single definite answer. Anyway, I found a paper that presents a…

The Best Interview is No Interview: How I Get Jobs Without Applying

My humble story of getting (or not) a job at Amazon, Qualcomm, Jet.com, Pulumi, and more Interviews I think I’m reasonably good at passing job interviews. When I was open for a job change a couple of years ago, I interviewed at eight local companies here in the Netherlands. I got job offers from seven of them. Of course, I have enough experience, and the market was scorching and…

Eliminate Cold Starts by Predicting Invocations of Serverless Functions

Azure Functions introduce a data-driven strategy to pre-warm serverless applications right before the next request comes in Developers and decision-makers often mention cold starts as a significant drawback of serverless functions. Cloud providers continually invest in reducing the latency of a cold start, but they haven’t done much to prevent them altogether. The most common technique is to…

Unit Testing Cloud Deployments with Pulumi in C#

Developing infrastructure programs in C# with unit tests, TDD, and mocks Because Pulumi uses general-purpose programming languages to provision cloud resources, you can take advantage of native tools and perform automated tests of your infrastructure. The full power of each language is available, including access to libraries and frameworks for testing. This blog post takes a deeper dive into…

Unit Testing Cloud Deployments with Pulumi in F#

Developing infrastructure programs in F# with unit tests, TDD, and mocks Because Pulumi uses general-purpose programming languages to provision cloud resources, you can take advantage of native tools and perform automated tests of your infrastructure. The full power of each language is available, including access to libraries and frameworks for testing. This blog post takes a deeper dive into…

Serverless in the Wild: Azure Functions Production Usage Statistics

Insightful statistics about the actual production usage of Azure Functions, based on the data from Microsoft’s paper Microsoft Azure and Microsoft Research released a paper called “Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider”. In part 1 of the paper, they revealed some insightful statistics about the actual production…

InfiniCache: Distributed Cache on Top of AWS Lambda (paper review)

My review of the paper “InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache” “InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache” by Ao Wang, et al. ( link ) is a recently published paper which describes a prototype of a serverless distributed caching system sitting atop AWS Lambda. Most…

Hosting Azure Functions in Google Cloud Run

Running Azure Functions Docker container inside Google Cloud Run managed service Suppose you are a .NET developer, you love the Function-as-a-Service (FaaS) model, but you want to run your serverless functions in Google Cloud. You want to keep using C# or F#, and still leverage all serverless benefits—ease of use, scalability, elasticity, pay-per-value cost model—running in GCP. You look at Google…

Serverless Containers with Google Cloud Run

Google Cloud Run is the latest addition to the serverless compute family. While it may look similar to existing services of public cloud, the feature set makes Cloud Run unique. Google Cloud Run is the latest addition to the serverless compute family. While it may look similar to existing services of public cloud, the feature set makes Cloud Run unique: Docker as a deployment package enables using…

Provisioned Concurrency: Avoiding Cold Starts in AWS Lambda

AWS recently announced the launch of Provisioned Concurrency, a new feature of AWS Lambda that intends to solve the problem of cold starts. AWS recently announced the launch of Provisioned Concurrency , a new feature of AWS Lambda that intends to solve the problem of cold starts. In this article, we take another look at the problem of latency-critical serverless applications, and how the new…

Santa Brings Cloud to Every Developer

How Santa Cloud uses F# and Pulumi to bring cloud resources to the homes of software engineers. The post is a part of F# Advent Calendar 2019 . It’s Christmas time! Cloud is everywhere, and yet it’s still inaccessible to millions of developers and IT pros. With shining yet cloudy eyes return they from KubeCon’s and re:Invent’s, just to pick up an issue in Jira, fix yet…

Choosing the Best Deployment Tool for Your Serverless Applications

Factors to consider while deploying cloud infrastructure for serverless apps. Function-as-a-Service solutions, such as AWS Lambda and Azure Functions, are a great way to build modern, scalable, and affordable cloud-native applications. By delegating routine work to cloud providers, serverless applications focus on custom logic to provide the ultimate business value. But, in fact, serverless is…

AWS Lambda vs. Azure Functions: 10 Major Differences

A comparison AWS Lambda with Azure Functions, focusing on their unique features and limitations. Forget about managing virtual machines or paying for idle hardware! Serverless compute brings unlimited scale and high availability to every company in the world, from small startups to multinational corporations. At least, that’s the vision of Amazon and Microsoft, today’s biggest cloud vendors. AWS…

How To Deploy a Function App with KEDA (Kubernetes-based Event-Driven Autoscaling)

Hosting Azure Functions in Kubernetes: how it works and the simplest way to get started. Azure Functions is a managed service for serverless applications in the Azure cloud. More broadly, Azure Functions is a runtime with multiple hosting possibilities. KEDA ( Kubernetes-based Event-Driven Autoscaling ) is an emerging option to host this runtime in Kubernetes . In the first part of this post, I…

How To Build Globally Distributed Applications with Azure Cosmos DB and Pulumi

A reusable component to build highly-available, low-latency applications on Azure In a previous blog post , I shared how easy it is to create a globally distributed, highly-available, low-latency application with Azure Functions, Azure Cosmos DB, and Pulumi. Today, I want to show how the same approach can be generalized for any cloud compute service, including containers, virtual machines, and…

How to Avoid Cost Pitfalls by Monitoring APIs in AWS Lambda

How to monitor your APIs using serverless technologies and an Epsagon dashboard. The modern software world runs on application programming interfaces, otherwise known as APIs. There is an API for everything: charging a credit card, sending an email, finding an address on a map, or hailing a taxi. Likewise, the huge computing power of the cloud is entirely accessible via multiple layers of…

Ten Pearls With Azure Functions in Pulumi

Ten bite-sized code snippets that use Pulumi to build serverless applications with Azure Functions and infrastructure as code. In this post, we’ll take a look at 10 “pearls”—bite-sized code snippets—that demonstrate using Pulumi to build serverless applications with Azure Functions and infrastructure as code. These pearls are organized into four categories, each demonstrating a…

AWS Lambda Cold Starts After 10 Minutes

How AWS Lambda changed the policy of recycling idle instances I’ve just released an update to the Serverless Cold Starts section of my website. The most significant change to the previous dataset seems to be in how AWS treats idle instances of AWS Lambda. Cold starts are expensive, so all cloud providers preserve a warm instance of a cloud function even when the application is idle. If the…

How to Measure the Cost of Azure Functions

Azure pricing can be complicated—to get the most value out of your cloud platform, you need to know how to track spend and measure the costs incurred by Azure Functions. Azure Functions can be hosted in multiple ways: there’s an App Service plan with a fixed cost per hour, a new Premium plan with both fixed and variable price components, not to mention self-managed options based on container…

7 Ways to Deal with Application Secrets in Azure

From config files to Key Vault and role-based access, learn how infrastructure as code helps manage application secrets in Azure. Every non-trivial application relies on configuration values that may depend on the current execution environment. Some of these values contain sensitive information that shouldn’t be shared publicly. In general, the fewer parties that have access to those secret…

Load-Testing Azure Functions with Loader.io

Verifying your Function App as a valid target for the cloud load testing. When Azure Functions team presented the new Premium plan , they made a series of demos which compared the response time of a Function App running on the Consumption plan vs. an App running on the Premium plan. Both apps would receive a rapid growth of incoming requests, and then the percentiles of response latencies were…

How Azure CLI Manages Your Access Tokens

Azure CLI is a powerful tool to manage your cloud resources. Where does it store the sensitive information and why might you want to care? Azure has several tools available to create and manage cloud resources. The Azure command-line interface (CLI) is probably the second most-used tool after the web portal. The CLI runs on any platform and covers a wide variety of actions. Here is a command to…

Globally-distributed Serverless Application in 100 Lines of Code. Infrastructure Included!

Building a serverless application on Azure with both the data store and the HTTP endpoint located close to end users for fast response time. Pulumi is excellent at connecting multiple cloud components into a cohesive application. In my previous post , I introduced the way to mix JavaScript or TypeScript serverless functions directly into the cloud infrastructure programs. Today, I will build a…

Hosting a Static Website on Azure with Pulumi

Static websites are back in the mainstream these days. Setting up the infrastructure to serve a static website in Azure is a task where Pulumi shines. Static websites are back in the mainstream these days. Website generators like Jekyll, Hugo, or Gatsby, make it fairly easy to combine templates and markdown pages to produce static HTML files. Static assets are the simplest thing to serve and…

Serverless as Simple Callbacks with Pulumi and Azure Functions

The simplest way to take a Node.js function and deploy it to Azure cloud as an HTTP endpoint using Pulumi. Serverless compute services, like Azure Functions, offer an amazing power to application developers to leverage: highly available, automatically scaled, low-ceremony, pay-per-value functions created in several lines of code. So, what’s the simplest way to take a Node.js function and…

Level up your Azure Platform as a Service applications with Pulumi

Leverage Pulumi for continuous delivery of code and infrastructure to Azure PaaS. An ASP.NET Core application running on App Service and DevOps pipelines. Pulumi enables developers to define cloud infrastructure using general purpose programming languages. Pulumi works with multiple cloud providers and has first-class support for all services in Microsoft Azure. Today I want to guide you through…