Azure Bicep: Strongly Typed Parameters

Ever since the introduction of user-defined types in Azure Bicep, I have been experimenting with the best way to create strongly typed objects and parameters in order to improve the overall developer experience when using Bicep. I have settled on a concept that I think is worth sharing, which we will go over in this blog post. User-defined types Before we dive into the details, I will first give an introduction to user-defined types in Bicep. From the beginning, Bicep did not have strongly typed objects for anything other than resource definitions. Things have changed with a few key releases to the Bicep language, and with the introduction of export and import support for user-defined types, we can now share and reuse type definitions across modules, enabling much stronger type safety and consistency in our Bicep templates. ...

July 6, 2025 · 5 min · 870 words · Frederik Baun

ChatGPT Code Interpreter: Dynamic Sessions

In this blog post series we will be aiming to replicate the powerful Code Interpreter tool known from ChatGPT. This tool enables dynamic code execution, providing value in scenarios like data analysis, automation and custom workflows. In this first part we will focus on the technical aspect of running generated code securely in an isolated environment. This ensures that any potentially malicious code cannot harm the surrounding infrastructure. By the end of this series we will have recreated the core functionality of ChatGPT’s Code Interpreter, which dynamically generates and executes code for end users. Along the way we will explore the technologies, best practices and challenges involved in building such a tool. Stay tuned for a deep dive into both the technical and practical aspects of this topic! ...

January 26, 2025 · 5 min · 1033 words · Frederik Baun