Almost every customer conversation I have lately lands on the same point: the productivity gains from coding agents are real. A developer paired with a few agents ships a lot more than that same developer working alone. Nobody really argues with that anymore. What I find more interesting is where the bottleneck went. It used to be people. There were only so many work items a team could take on at…
The way we build software keeps changing, and not in a way that ever settles. Models get better every few weeks. Harnesses ship new features faster than you can read the release notes. For any developer using AI seriously, this turns into a min-max problem: how much of your time goes into doing the work with the tools you already know, and how much goes into figuring out whether your workflow is…
LLMs are getting better at writing and executing code with every release. Not just generating snippets, but actually exploring file systems, reading output, adjusting their approach, and trying again. This capability generalizes far beyond writing software. I was recently looking into Recursive Language Models (RLM) as proposed by Zhang, Kraska & Khattab (2026) in their paper Recursive Language…
In my previous article I introduced Polyclaw — an autonomous AI copilot inspired by OpenClaw and rebuilt to be Azure-native. It schedules its own work, builds long-term memory, and can call you on the phone. The follow-up question everyone asks is always the same: but how do you keep it from going rogue? Fair question. The honest answer is that there is no single switch you flip. Security for an…
What if your AI assistant didn’t forget everything the moment you closed the tab? What if it could check on things while you sleep, text you on Telegram when something breaks, and — if it’s serious enough — call you on the phone ? These questions have been stuck in my head for months. Today’s consumer AI assistants are brilliant in the moment but fundamentally amnesiac. Every…
⚠️ Disclaimer : The features discussed in this article, specifically the o3-deep-research model and certain Foundry capabilities, are currently in Preview . This architecture is intended for experimental and learning purposes and is not ready for production usage . Today, I released my new set of labs that everyone can try: Microsoft Foundry for AI Engineers: Zero to Hero . Those who know me…
Recently, a new programming pattern for AI coding agents has emerged. It is called the Ralph technique (pioneered by Geoffrey Huntley). The core idea addresses a friction point we all feel today: agent micromanagement. Currently, we guide our agents through tasks one by one. We decide where to start, we often decide the order, and we decide when to flush the context. We effectively act as the…
Recently, Anthropic released their new flagship model, Opus 4.5 . The holiday season provided a quiet window to really experiment with it, and after putting it through its paces, it is becoming clear that this model isn’t just an incremental upgrade. It is fundamentally changing how we use AI to ship software. Before Opus 4.5, my personal workflow was heavily centered on the mid-sized Sonnet…
We’ve all been there. A tight schedule, back-to-back meetings, and suddenly you find yourself staring at a blank PowerPoint slide, needing to prepare a presentation for an upcoming workshop. You dig through old decks, message colleagues, and search shared folders, hoping to find something—a diagram, a bulleted list, a reference architecture—that you can reuse to get started. In the corporate…
What problem are we solving Many agent failures are not caused by weak prompts or undertrained models, but by poor environments. The most capable agent can still fail if the world it operates in is chaotic, underspecified, or unsafe. A common pattern of failure is when tools are designed without clear feedback. If a function returns only a generic error, the agent wastes cycles trying to debug…
As AI apps become more complex, a pattern emerges: we move from a single monolithic agent to a collection of smaller, specialized agents. One agent may be an expert in searching internal documents, another excels at querying structured data in Microsoft Fabric, and a third can browse the web for recent information. This pattern is powerful, but it introduces a new challenge: how do you route a…
We’ve all been there. The AI team is proud; they’ve just launched a new AI agent. They ran load tests and ensured the infrastructure can handle the traffic. For the first few days, utilization looks great. Most people are curious about what this new AI application can do. But as time passes, adoption flatlines. A few power users know exactly how to query the app, but the initial wave…
In the initial wave of AI adoption, the focus was on making unstructured data discoverable. We used techniques like chunking and vector search to find the relevant parts of documents to answer a question, then provided that as context to the model. What I’ve seen since are more complex use cases: giving agents not only access to knowledge but also the capability to execute actions. A great…
Many years ago, I was part of a project migrating legacy APIs from an old XML-based protocol to modern, REST-based OpenAPI specs. A lesson that has stuck with me from that experience is that while you’re building, everything feels clean and modern. You might take shortcuts to meet a deadline, telling yourself you’ll clean it up later. But “later” rarely comes. The…
My views here are my own and do not reflect any employer or organization I may be affiliated with. Disclaimer: this article was written in July 2025. The landscape may change after this date. Special thanks to Sanjeev Kumar and Mike Blöchlinger for the insightful discussions and collaboration throughout this project. Your perspective helped refine the architecture and pushed the thinking beyond…
In my previous post we built a custom tool to make ETL output order consistent. This time we keep the idea of purpose built tooling but let Copilot talk to an Azure Databricks instance through the Model Context Protocol (MCP) . The result is a small Python server that runs inside VS Code and gives Copilot three new superpowers: SQL execution table inspection table to table diffing with progressive…
GitHub.com recently announced the public preview of its Copilot coding agent , which can take ownership of entire issues, plan the steps, and work through them autonomously. Similarly, Codex from OpenAI has shown how models can interact with codebases directly when connected to a repository. These capabilities are promising, but not all tasks should be delegated to autonomous agents. The two main…
GitHub Copilot Chat has taken a big leap forward by letting you connect your own custom AI model - for instance powered by Azure AI Foundry - to the chat interface. This guide will walk you through deploying the DeepSeek R1 model (or any Azure AI Foundry-supported OSS model) and using a local LiteLLM proxy (exposing an ollama-like API) to enable this integration in VSCode Insiders, currently…
Organizations manage a broad spectrum of official documents, from internal memos and client proposals to compliance submissions and operational guidelines. Creating these documents often demands considerable time and attention to consistency, accuracy, and compliance with standards. Recent advances in generative AI offer new ways to simplify and accelerate this process. By using multiple AI agents…
I often see customers eager to leverage generative AI to better understand and reason over their existing data. One common scenario is comparing different revisions of a single long-form document. While developers easily track code changes and even get commit messages suggested by tools like GitHub Copilot , handling similar insights for text documents like Word files can be tricky. Changelogs in…
Before diving into the article, there’s also a podcast version available! 😉 🔊 Listen to the Podcast We’ve all been there — you have an article or a training you want to dive into, but your day is packed, and you just can’t seem to fit it in. Much of the content we consume daily is only available in one format. It might be a YouTube video, an article, or a podcast.…
In the wake of the generative AI revolution, we’ve witnessed a surge in AI-powered applications promising to transform how we interact with computers. Many of these apps fall short of user expectations. Today, I’d like to share my thoughts on improving Retrieval-Augmented Generation (RAG) applications, focusing on enhanced multi-modal indexing techniques and the exciting potential of…
Over the past few weeks, it has been my privilege to collaborate with my distinguished colleagues, Damiano Curia , Carlos Garcia Lalicata , Francesco Rinaldi , Rolf Egli and Yasmin Sarbaoui , on investigating ways to incorporate Generative AI capabilities into Monaco-based Web IDEs. Before diving deeper into our project, I want to pause and reflect on the tools that we used to build it. If you…
In the digital era, extensive libraries of images have become ubiquitous across multiple industries, such as e-commerce, education, marketing, and online media. Often, these valuable image databases lack comprehensive tagging and captions, making pinpointing the desired assets a cumbersome task. Enter GPT-4 Vision, which stands to revolutionize how we interact with untagged image repositories.…
With the ongoing updates in Large Language Models (LLMs) and their orchestration libraries, it is important to recognize and prepare for potential changes that may arise when upgrading to newer releases. These changes can manifest in two key areas: first, updating to a newer version of a library might alter how the AI app functions or handles prompts; second, newer versions of large language…
In past articles , I talked about making a chatbot called “Upskiller” that uses the vast information from YouTube videos about Azure. While it effectively handles specific queries such as “How can I integrate an Azure Function into a Virtual Network?”, it struggles with time-sensitive queries like “What’s new on Azure Functions?” But why is that? 🤔 The…
I often study a lot of material to understand the details of Azure services. Interestingly, I’ve found that sometimes the most insightful resources aren’t always in written form. Instead, they are presented in the form of videos. These videos might be meticulously crafted by professionals pursuing it as a passion project, or they could be official recordings from industry events and…
Before we start, remember these tips are meant for fun projects that can handle some downtime . We are trying to cut costs and this may mean your project won’t always be available. If you are working on a serious project that needs to be available all the time, you’ll need a different plan. Running a pet project on Azure is a great opportunity to learn. Azure Kubernetes Service (AKS)…
Azure API Management can give you security-in-depth by already identifying invalid requests containing no or invalid JWT tokens on your requests before they even reach your backend. You can use the validate-jwt policy to validate any OIDC provider and specify the required claims, audiences, issuers, and signing keys. However, there might be situations where a single API should support multiple…
Over the past few months, we all witnessed a surge in popularity of Large Language Models. I’ve personally worked on several proof-of-concepts (PoCs) revolving around OpenAI. One such instance is X . This app utilizes the power of GPT-4 and LLM-Chains to automate complex tasks, such as writing and testing code. All in your terminal. Another project I worked on is florenceLLM . It is an…
Disclaimer: I’m just experimenting with this as a personal hobby / for fun. There has been a lot of buzz lately surrounding the ReAct Prompt Technique ( https://react-lm.github.io/ ), enabling LLMs to engage in reasoning and build thought processes. Additionally, ReAct provides a means for LLMs to articulate when they intend to execute an action, such as calling an API. ChatGPT-On-Autopilot:…
Recently, there has been a lot of hype around large language models and their application in chatbots. However, there is so much more that this technology can offer. Since the Large Language Models were introduced, I was curious about their potential for analyzing unstructured text. That was the reason why I decided to build InsightGPT, to see if it would be possible to reason over this type of…
WSL2 is the optimal solution for bringing the Linux command line experience to Windows. The user experience when using the Windows Terminal is great. Still — As a long-time user of i3wm, I was curious about the possibility of running i3wm within WSL2. Installing it is straightforward; the default WSL2 installation is Ubuntu, and i3wm is readily available in the repositories. But, how can you run…
I recently built a Unity game with the help of ChatGPT, an amazing tool for developers. I included DALLE-2 for graphics and video game backgrounds. DALLE-2 provides an outpainting capability which allowed me to create truly incredible game world. Years ago, I decided to build a multiplayer game named Rescuebomb using HTML and Vanilla Javascript. It ended up being a lot of fun during the event.…
ChatGPT is a GPT-based chatbot developed by OpenAI that allows users to engage in natural language conversations with a virtual assistant. This technology has numerous potential applications, but in this article, we will focus on three entertaining ways you can use ChatGPT. Play an RPG Game! With ChatGPT, users can transform the AI language model into an interactive role-playing game (RPG). Use…
Terraform helps users get the most out of their cloud when provisioning infrastructure in an automated and repeatable way. Azure Resource Manager (ARM) forms the basis for Azure’s Infrastructure as Code solution, and internally, Terraform communicates with ARM. However, because of the separation between Azure’s own internal representation and Terraform’s own internal…
Profiling applications can be a difficult and time-consuming process, but it is essential for understanding how an application is performing and where potential bottlenecks may exist. During Microsoft Ignite , a new feature within Application Insight was announced, which aims to make collecting profiling information for java applications much easier. Accessing the Profiler Feature To access the…
I recently ran into an issue when setting app settings via the az functionapp config appsettings command. The issue specifically occurs when there are spaces or special characters in the values: az functionapp config appsettings set --name MyFunctionApp --resource-group MyResourceGroup --subscription MySubscription --settings 'MyAppSetting=This has a # sign' The Solution If you are running into…
As developers, we are always looking for ways to be more productive. An iPad with GitHub Codespaces is a great developer experience. The iPad is portable so it can be taken anywhere. I was skeptical at first, but after using it for a while, I was convinced that it was a great way to develop software independent of location. Now, I use GitHub codespaces for everything. Building User Interfaces…
When working with GitHub Actions it can be useful to use Selenium. A common use case is for example the verification of a deployment (e.g. checking if a SPA is rendered correctly). With Selenium code, a user using a browser can be simulated. Setting up the Chrome Driver The Chrome Driver must be set up specifically to work correctly within a GitHub Action Runtime. This is the configuration I am…
It is probably no surprise for you if I tell you that I am writing this on an iPad. Recently I was looking into GitHub Codespaces . A tool that makes your development experience independent of your physical device or location. It is based on a browser-based VSCode instance, paired with surprisingly powerful dev containers (Even supporting “docker in docker”). The Keyboard Layout The…
One would usually use an interactive login to access the Google Sheets on behalf of a user. This approach works perfectly if the user is sitting in front of the computer at the time of access. However, if we want to access Google Sheet information during a batch job (or during the runtime of a Github action, for example), this approach won’t work. An alternative way is to use service…
I recently moved to a Macbook M1 as my daily driver (running Linux on top). It came to my surprise how well everything worked it was. Virtualization There are currently three options for how to run a Linux VM on top of macOS on the M1. Parallels, VMWare Fusion and UTM. I used all of them in the past, they all work fine. UTM is based on qemu and has generally more sharp edges.
This year I helped to build drugplug as part of Hack Zurich . One key feature of the app is the extraction of relevant information or warnings out of a drug leaflet. We used Azure Cognitive Services in combination with fuse.js (for fuzzy search) for this purpose. Integrating Text Analytics into our “data pipeline” was super easy. The following code will extract the named entities and…
Recently I’ve started to publish sticker designs on redbubble . As I am after the “ long-tail ” items, I planned to generate hundreds of personalized stickers. You can apply this pattern for all kinds of use cases (for instance to generate stickers for each birthday). First, we start by creating a template image. This image will be the background on top we add the text. Next, we…
In this article, we are going to take a look at the impact of the recent log4j Zero-Day on Apache Karaf based apps. The situation is evolving, I recommend this page to stay up-to-date. What Log4j Version am I using? Apache Karaf uses Log4j indirectly through PAX Logging . Karaf Version PAX Logging Version log4j2 version 3.0.10 1.8.4 not in use * 4.0.10 1.10.0 not in use * 4.1.6 1.10.1 2.8.2 4.2.12…
With the recent log4j vulnerability , everyone is currently patching their Java Applications. In this article, we’re going to take a look how such a patch can look like. Usually, we don’t use log4j directly, but get it through another maven dependency transiently. To identify what log4j version we are using, the following command can be used: $ mvn dependency:tree | grep log4j This…
Himawari-8 provides free live feed images (every 10 minutes) from geostationary orbit. I’ve put together a small script to get it as a “live wallpaper” in i3. You can get the one-line script on GitHub: https://github.com/aymenfurter/i3-himawari-bg The end result looks stunning with real-time satellite imagery of Earth updating every 10 minutes as your desktop background. How It…
No, I’m not talking about Mozilla’s newest mass-roll-outed Mr Robot Addon. Looking Glass is a Linux app developed by Geoffrey McRae of HostFission. It lets you relay frames rendered within a virtual machine (with a Pass-through GPU) to the host machine in a very fast fashion. It also handles mouse and keyboard input. What is Looking Glass? Looking Glass is a revolutionary application…
Neural Enhance is a fantastic Machine Learning Showcase. It lets you upscale photos by ‘inventing’ details using machine learning. Neural Enhance provides a docker container for easy deployment. However, for non-technical people (with slow computers) this might be a bit tricky. That’s the reason why I created a web app which lets you use the basic functionality online. About…