I am a Senior Software Engineer working at Microsoft. I live in Austria and I am passionate about frontend tooling and monorepos. I am a big fan of Angular and TypeScript. Outside of work, I am a husband and father of two.
I care about developer experience and making the life of developers easier. The frontend ecosystem excites me, as it is constantly evolving. I am always eager to learn new things and share my knowledge with others. As a writer and author of technical blog posts, I enjoy exploring ideas and sharing them with the dev community.
Blog
Creating a typescript-eslint Plugin
Learn how to create a custom typescript-eslint rule for your TypeScript project. If you ever wanted to enforce a certain pattern in your codebase, this article is for you. I will show you how to create a custom rule based on a real-world example.
Incremental Builds with Nx
If you have a monorepo with multiple projects and libraries, you might run into the problem of long build times. This article explains how incremental builds with Nx work under the hood and we will explore Nx's internal codebase to understand how it works.
Refactoring TypeScript at Scale
Refactoring a large codebase can be a daunting task. In this article, we will explore some strategies for refactoring at scale using the TypeScript Compiler API to programmatically analyze and transform TypeScript code.
Enhancing Angular Signals
Angular signals are a reactive primitive that offers synchronous state management at the heart of the framework. But it is a very low-level primitive that can lead to a lot of confusion and bugs if not used with an abstraction layer that hides imperative APIs.
SSR and SSG with Analog
AnalogJS describes itself as the meta-framework for Angular similar to Next.js for React, Nuxt for Vue, SvelteKit for Svelte or Solidstart for Solid. It is a framework that provides a set of tools and conventions to build Angular applications with server-side rendering and static site generation.
Module Boundaries with Nx
Module boundaries are a great way to enforce architectural rules in your monorepo and manage dependencies. They allow you to define strict boundaries, which can be used to enforce architectural rules and prevent accidental dependencies between modules.
Talks
Satisfied Clients
Professional Experience
Working on frontend tooling and monorepos...
Working on the Blockpit platform, a tax reporting tool for cryptocurrencies. I am responsible for the frontend architecture and the development of new features. Shipped a new mobile app using Capacitor.
Worked as a frontend consultant and freelancer on various projects. Worked on frontend architecture, monorepos, and developer experience. Gave talks and workshops focusing on Nx and Angular and scalable frontends in general.
Lead the development of multiple frontends for an embedded insurance CRM. Worked on the backend in .NET and Azure on a micro-service-based architecture.
Worked on a progressive web app for self-scan-and-go solutions in the point-of-sale software industry. Worked on traditional desktop applications for point-of-sale.
- Powered by Analog - The Meta Framework for Angular
- © 2025 Stefan Haas
All Rights Reserverd - Imprint
- Data Protection