Markus Oberlehner

Blog

Read articles about React and Next.js, Nuxt and Vue.js, JavaScript and TypeScript, CSS, Test Driven Development, and Software Architecture.

Escaping the Apple Ecosystem - My Journey to Digital Sovereignty

There are plenty of good reasons to turn your back on the major US technology companies: from shady monopolistic business practices (e.g., app stores); to crafting ever more addictive algorithms that tie us to our screens; to enabling state mass surveillance. Yet all of this is not new. Companies like Apple have been trying to force us into their golden cage of services...

Visual Regression Testing With Vitest

Visual regression testing is the perfect tool to catch regressions within our UI component libraries and applications early, yet few teams practice it. Teams often avoid it due to complicated setups, cumbersome workflows, and difficulties syncing tests across different operating systems...

Let's Share Our Failures Not Our Successes!

Stop sharing only the things that went well! Start sharing your failures instead! I wholeheartedly agree with David Duchovny that there is more to learn from failure than from success. So why are we so obsessed with sharing mostly useless (and often fake) success stories...

Will LLMs Ever Be Creative Enough To Solve Programming?

Imagine you train a toddler to read, mixing in texts about physics and mathematics. Sure, at some point, the toddler might be able to predict the correct formula when you ask them to solve a particular mathematical problem, but they don't have the slightest idea why this is the correct answer...

Nomenclature in Microservices Architecture: Modules, Components, and Services

'Naming things is hard!' is a common saying in developer circles. One thing that has confused me more than once is how to differentiate between modules, components, and services in the context of microservices. But recently, I watched a talk by Ian Cooper, where he clarifies what is what and how these three terms relate to each other...

Parallelizing Specmatic Contract Tests with Playwright

Specmatic quickly became my favorite tool for contract testing microservices and for using it as a stub service to test frontend applications. Together with Playwright this makes for a great combo! Yet there is a problem with this approach: Out of the box we can't run tests in parallel with this setup because Specmatic's stub server, by default, isn't designed for parallel execution...

You Can't Fight 'Not-enoughness' with 'More'

After being rejected to speak at several conferences, I wondered: Why is it so important to me? The answer: a deep sense of not-enoughness that I try to overcome by pushing harder and harder to accomplish more and more...

Using react-hook-form with React 19, useActionState, and Next.js 15 App Router

I'm currently working on building a comprehensive form component with React. As usual, as I typically do, I built it all by myself without reaching for a form library. And, as usual, although I kinda got where I wanted, I was not satisfied with my code and decided to opt for a ready-made form library...

Non-English Variable, Function, and Symbol Names in Code

Recently, I switched jobs from karriere.at, Austria's largest job platform, to the Austrian Federal Computing Centre, where my colleagues and I work on modernizing Austria's digital tax services. One of the first things I noticed, looking at the new codebase, was that we heavily use German terms for naming certain classes, functions, and variables. At first, this seemed to me like a giant red flag. But now, after seeing the problem through a different lens, I realize that in many instances, it can make a lot of sense to use our native tongue to name certain things...