# Heath Stewart (@heaths.dev)

Profile: https://sifa.id/p/heaths.dev
Headline: Principal Software Engineer
Location: United States

## About

With over 20 years of experience in Windows and cross-platform terminal applications, I am currently the architect the Azure SDK for Rust at Microsoft, guiding partners and reviewing design for service crates. I led the Azure SDK for .NET, started our Rust SDKs, and am now exploring generative AI and MCP servers to enhance partner agility and improve customer outcomes with safe, efficient use of our SDKs.

My background includes designing and building primarily Windows apps and services with C/C++ and .NET, as well as deep proficiency in deployment. With a complete architecture, I improved Visual Studio installer reliability by 200% and speed by 400%, contributed to the .NET Framework and former Visual Studio installers, worked on the Windows Installer XML toolset, created and advised on many first- and third-party installers, and have worked extensively with deployment tools like SSMS, WinGet, and Homebrew, and others.

## Experience

- **Web Developer at Iowa State University, College of Veterinary Medicine** (2001 – 2002)
  • Re-designed the website for the College of Veterinary Medicine using ASP.NET, transitioning from static pages to a data-driven approach.
  • Supported the network administrator by developing useful utilities for faculty and staff, enhancing operational efficiency.
  • Collaborated with a team to ensure seamless integration of new technologies, improving user experience and site functionality.
- **Software Developer at Palisade Systems, Inc.** (1999 – 2001)
  • Designed and implemented user authentication and data encryption for Internet filtration software.
  • Supported network administration on both Windows and Linux platforms.
  • Conducted software testing and developed automation tools to enhance efficiency.
  • Maintained the installer for new software versions using Windows Installer.
- **Principal Software Engineer at Microsoft** (2024 – present)
  • Developed the Azure SDK for Rust, focusing on architecture, guidelines, and core libraries.
  • Developed instructions, skills, and MCP server for partner agility and customer success.
  • Supported partners through design and code reviews, enhancing collaboration and code quality.
  • Implemented DevOps infrastructure, including recorded tests in Rust utilizing custom attribute-like proc macros.
- **Principal Software Engineer at Microsoft** (2019 – 2024)
  • Developed and maintained the Azure SDK for .NET, focusing on Key Vault and Cognitive Services.
  • Unified test resource provisioning with PowerShell and build pipelines across all Azure SDK languages to enhance developer efficiency.
  • Participated in the Azure REST API review board, advising on partner service APIs in OpenAPI and TypeSpec.
- **Senior Software Engineer at Microsoft** (2004 – 2019)
  • Architected the new Visual Studio Installer, improving reliability from under 50% to 99% and install performance 4x.
  • Improved division agility from almost 2 days to build the installers to about 2 hours.
  • Developed major features for the WiX Toolset, enhancing package management and interoperability.
  • Innovated serviceability processes for .NET, including the first NGEN service integrated into .NET.
- **Director of Technology at Proplanner** (2002 – 2004)
  • Architected and implemented the Proplanner ERP application suite, enhancing operational efficiency.
  • Managed builds and installations, ensuring seamless deployment of our Web-deployed software.
  • Oversaw the interoperability of our .NET applications with EDS's Java applications, facilitating better integration.
  • Established and upgraded the network infrastructure and web servers, improving system performance.

## Education

- **Iowa State  University** — Bachelor of Liberal Arts and Sciences, Computer Science (1997 – 2001)

## Skills

- Software Deployment
- Windows UI
- Rust (Programming Language)
- .NET
- C#
- Powershell
- C++
- Go (Programming Language)
- C (Programming Language)
- Git
- Model Context Protocol (MCP)
- Windows
- Linux
- Windows Installer
- WiX Toolset
- .NET Core
- Azure SDK
- JavaScript
- TypeScript
- Node.js
- Docker
- Windows Presentation Foundation (WPF)
- Azure Key Vault
- TypeSpec
- OpenAPI Specification (OAS)
- Representational State Transfer (REST)
- Visual Studio
- WiX
- Microsoft Cognitive Services
- ASP.NET
- Software Development
- T-SQL
- .NET Framework
- XML
- SQL
- LINQ
- Windows Azure
- Software Engineering
- Microsoft SQL Server

## Projects

- **PowerShell**
  I added support to install the product per-user or per-machine and continue to help maintain the installer.
- **azsdk-samples-mcp**
  Adds samples from the Azure SDKs as context to better generate idiomatic samples following recommended practices.
- **Windows Installer PowerShell Module** — https://github.com/heaths/psmsi
  I am the founding developer on the project, which exposes Windows Installer functionality to PowerShell providing means to query installed product and patch information and to query views on packages.
- **GitHub CLI**
  I've added a number of features as a top external contributor that improve the Azure SDK team's automation including batch operations, project V2 support via extension prior to first-party support, expansive templating, and more.
- **Windows Installer XML** — http://wixtoolset.org
  Windows Installer XML is a toolset for creating and building deployment packages and bundles. It is one of the first open source projects at Microsoft and is used throughout Microsoft to ship major products like Office, SQL Server, Visual Studio, and the .NET Framework.

During this time period I was a core developer in a small team. We implemented many of the requirements from many divisions in ways that would work for the global community.

Notable features I worked on were the product dependency and reference counting feature, the patch build system, validation rules, and migrating from Source Depot (in-house version control system) to Mercurial and finally into Git with full historical context.
- **azcrypto**
  Cryptography client for Azure SDK for Go. I lead the development of cryptography clients for other Azure SDK languages that help customers use Key Vault cryptography operations securely and that cache public keys for faster public key operations. We decided not to write one for Go
- focused on generation-only
- so this a side project.

## Publications

- Apropos of power tools — heaths.dev (https://heaths.dev/general/2026/06/20/apropos-of-power-tools.html)
- Cargo scripts are also manifests — heaths.dev (https://heaths.dev/rust/2026/06/08/cargo-scripts-are-also-manifests.html)
- Introducing the sequoia-recommend button — heaths.dev (https://heaths.dev/atproto/2026/05/31/introducing-the-sequoia-recommend-button.html)
- Support for enhanced links in Sequoia — heaths.dev (https://heaths.dev/atproto/2026/05/24/support-for-enhanced-links-in-sequoia.html)
- Initial stable release of Azure SDK for Rust — heaths.dev (https://heaths.dev/azure/2026/05/16/initial-stable-release-of-azure-sdk-for-rust.html)
- Cooler theme palette — heaths.dev (https://heaths.dev/general/2026/05/03/cooler-theme-palette.html)
- Improving the Azure SDK developer experience with MCP — heaths.dev (https://heaths.dev/azure/2026/05/01/improving-the-azure-sdk-developer-experience-with-mcp.html)
- Light and dark themes for my blog — heaths.dev (https://heaths.dev/general/2026/04/20/light-and-dark-themes-for-my-blog.html)
- We all make mistakes — heaths.dev (https://heaths.dev/general/2026/04/18/we-all-make-mistakes.html)
- Making the key version required for Key Vault cryptography APIs — heaths.dev (https://heaths.dev/azure/2026/04/08/making-the-key-version-required-for-key-vault-cryptography-apis.html)
- Cleaning up Rust made easier — heaths.dev (https://heaths.dev/rust/2026/03/21/cleaning-up-rust-made-easier.html)
- Publishing to the ATmosphere — heaths.dev (https://heaths.dev/atproto/2026/02/21/publishing-to-the-atmosphere.html)
- Cross-compiling x64 on Aarch64 — heaths.dev (https://heaths.dev/rust/2025/05/11/cross-compiling-x64-on-aarch64.html)
- Cleaning up Rust — heaths.dev (https://heaths.dev/rust/2025/03/01/cleaning-up-rust.html)
- 12 Months: Over 7000m with Strava — heaths.dev (https://heaths.dev/sport/2024/12/20/12-months-over-7000m-with-strava.html)
- Helix support for TypeSpec — heaths.dev (https://heaths.dev/tips/2024/08/02/helix-support-for-typespec.html)
- Using 1Password for git SSH signatures in WSL — heaths.dev (https://heaths.dev/tips/2023/05/19/using-1password-for-git-ssh-signatures-in-wsl.html)
- Oh My Posh — heaths.dev (https://heaths.dev/general/2023/01/02/oh-my-posh.html)
- On Mastodon — heaths.dev (https://heaths.dev/general/2022/11/08/on-mastodon.html)
- Reduce fetch and checkout times in git — heaths.dev (https://heaths.dev/tips/2022/06/18/reduce-fetch-and-checkout-times-in-git.html)
- git sync any branch — heaths.dev (https://heaths.dev/tips/2021/08/31/git-sync-any-branch.html)
- Table formatting in GitHub CLI 2.0 — heaths.dev (https://heaths.dev/tips/2021/08/24/table-formatting-in-github-cli-20.html)
- Add aliases to GitHub CLI from stdin — heaths.dev (https://heaths.dev/tips/2021/05/19/add-aliases-to-github-cli-from-stdin.html)
- gh user — heaths.dev (https://heaths.dev/tips/2021/04/22/gh-user.html)
- Configure Multiple Clocks — heaths.dev (https://heaths.dev/tips/2021/04/16/configure-multiple-clocks.html)
- Debugging tests in Linux containers with Visual Studio — heaths.dev (https://heaths.dev/tips/2021/04/09/debugging-tests-in-linux-containers-with-visual-studio.html)
- Getting back to a good state in Git — heaths.dev (https://heaths.dev/tips/2020/09/24/getting-back-to-a-good-state-in-git.html)
- Batch operations with Azure CLI in bash — heaths.dev (https://heaths.dev/tips/2020/07/30/batch-operations-with-azure-cli-in-bash.html)
- git sync — heaths.dev (https://heaths.dev/tips/2020/05/29/git-sync.html)
- Fixing Time Drift in Docker on WSL2 — heaths.dev (https://heaths.dev/troubleshooting/2020/05/23/fixing-time-drift-in-docker-on-wsl2.html)
- Simple WiX Project — heaths.dev (https://heaths.dev/setup/2020/05/13/simple-wix-project.html)
- Get Azure Search Keys in ARM Templates — heaths.dev (https://heaths.dev/azure/2020/05/08/get-azure-search-keys-in-arm-templates.html)
- Powerline in Vim — heaths.dev (https://heaths.dev/tips/2020/05/06/powerline-in-vim.html)
- Tracing Azure SDK for .NET — heaths.dev (https://heaths.dev/azure/2020/02/04/tracing-azure-sdk-for-net.html)
- Rebasing commits on one topic branch onto another branch — heaths.dev (https://heaths.dev/tips/2019/11/11/rebasing-commits-on-one-topic-branch-onto-another-branch.html)
- Welcome to my blog — heaths.dev (https://heaths.dev/general/2019/11/10/welcome-to-my-blog.html)
- Hosting .NET Controls in Java — DevX.com (http://www.devx.com/interop/Article/19845/0)

## Volunteering

- Umpire at Kirkland National Little League
- Committee Chair at Boy Scouts of America

## Languages

- German (elementary)
- Italian (elementary)

## Other profiles

- keyoxide: https://keyoxide.org/dcde9318c22bb51e3821b6ab8a9859dbe7728faa
- activitypub: https://fosstodon.org/@heaths
- tangled: https://tangled.org/heaths.dev
- dns: https://heaths.dev
- github: https://github.com/heaths
