Hi 👋🏻, I am Stefan.
I work on one of the largest Angular apps in the world at Microsoft. I am being called a 'monorepo-guy' because I am a big fan of scaling frontend development with Nx. I would describe myself as a frontend platform engineer. This means I am either fighting compilers, bundlers, linters or CI/CD pipelines.
This blog is about my journey as a software engineer, my learnings, and my experiences. I am trying to learn in public and share my knowledge with the community. I am planning on writing about internals of Angular, Nx, and monorepos in general.
#LearningInPublic, #FrontendOps, #TypeScript, #Angular, #Monorepos
Blog Posts
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
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.