Markus Oberlehner
banner
markus.oberlehner.net
Markus Oberlehner
@markus.oberlehner.net
Working on modernizing Austria's digital tax services. Vue / Nuxt, React / Next.js expert, TDD practitioner, Node.js enthusiast, ML padawan.
Can you spot the button one has to press to add this boarding pass to Apple Wallet? Liquid Glass is an accessibility nightmare even for people with A+ eyesight.
October 27, 2025 at 7:34 AM
Another one bites the dust! Replaced my Apple Watch with a Garmin vívoactive 6.

✅ Crazy battery life
✅ Better looks (IMO)
✅ Excellent fitness features
✅ Not Apple
October 5, 2025 at 11:06 AM
Goodbye Apple Music hello Deezer!

✅ French 🇫🇷🇪🇺
✅ Large catalogue
✅ HiFi music
October 3, 2025 at 7:06 AM
Typing this on my MacBook, I think about this picture at least once a day. It has completely changed how I see my Apple devices, from loving how tightly integrated everything is to feeling like a prisoner of the Apple ecosystem. Not a single day passes without me making plans for my escape.
October 3, 2025 at 5:24 AM
I asked the AI to impersonate me, and it did so without hesitation, following my writing about how to write good tests for Vue applications. A couple of thoughts about this:
September 22, 2025 at 12:01 PM
Underappreciated upside of AI code reviewers: you can bluntly tell it that it's wrong!
September 19, 2025 at 6:56 AM
I get that as a tech CEO, you sometimes have to play the game, and you need a healthy dose of pragmatism.

But how those tech CEOs can look themselves in the mirror kowtowing to this US president is beyond me.

I find it frightening. Is there anything they won't do for financial gain?
September 5, 2025 at 2:52 PM
Every few years, I increase my editor font size and line height a notch.

Pro tip: add 2+4 points to your line height. Thank me later!
June 19, 2025 at 7:31 AM
Claude 4 is my biggest AI disappointment since GPT4.5. Getting results like this is sobering.

> Me: Update the rating functionality according to the test.
> Claude: *Modifies the test*
> Me: The test is fine! Fix the implementation
> Claude: *Hardcodes (!) the expected behavior*
May 27, 2025 at 10:06 AM
Yes! Don’t make websites accessible, stop making websites inaccessible!
May 16, 2025 at 11:45 AM
I would love to know more details about this "unauthorized modification."
May 16, 2025 at 7:14 AM
enterJS is starting! If you’re here (alone) don’t hesitate to reach out to me or other people, let’s be conference buddies!
May 7, 2025 at 7:30 AM
A useful new(ish) @vitest.dev feature I almost missed is `expect.soft`! It allows us to have assertions that don't terminate test execution when they fail.

This helps us iterate more quickly on failing tests.
April 11, 2025 at 5:50 AM
A useful new(ish) @vitest_dev feature I almost missed is `expect.soft`! It allows us to have assertions that don't terminate test execution when they fail.

This helps us iterate more quickly on failing tests.
August 16, 2025 at 6:07 AM
If you're still using ChatGPT but feel you're missing out on the capabilities of today's best models like Claude 3.7 and Gemini 2.5 Pro I highly recommend you check out ChatWise (by @egoist.dev) chatwise.app?atp=maoberle... (affiliate link, but it is my LLM client of choice!). It has MCP support!
April 4, 2025 at 8:03 AM
A harmful misunderstanding about accessibility is that it's "just" about people with disabilities. This leads to arguments like "We don't want to make UX worse for the majority of people just to cater to the few people with X disability." This way of thinking gets it backward!
March 31, 2025 at 3:17 PM
😈 Are you a developer worried about losing your job to AI? Don't panic! I have the perfect solution:

1. Rename every symbol in your codebase to random characters.
2. Create a secret cheat sheet mapping these characters back to their original names.
3. Store the cheat sheet somewhere safe.
March 21, 2025 at 3:07 PM
Do you believe LLMs are intelligent? I changed my mind about it! I think LLMs are "just" that: (large) language models. The way I see it is the following: Imagine you train a toddler to understand language and speak, mixing in texts about physics and mathematics.
March 14, 2025 at 8:41 AM
My experience with Java in a nutshell.
February 26, 2025 at 8:47 AM
📝 Parallelizing @specmatic.bsky.social Contract Tests with @playwright.dev – Only fast tests are good tests!

Read more: markus.oberlehner.net/blog/paralle...
February 20, 2025 at 9:51 AM
What the heck is going on with tech thought leaders? A man who cries must be a weak leader? I thought we had left this kind of thinking long behind us.
February 17, 2025 at 6:47 PM
Wanted to check out Angular. But it's using not one but two techniques I don't like:

1. Decorators
2. Classes

I'm interested in your opinion, particularly on Decorators, do you like them? I also regularly look at Java (Spring Boot) code and find it hard to decipher because of Decorators.
February 7, 2025 at 6:46 PM
Lasting change is only achievable through continuous, incremental improvement!

Today, a political party in Austria involved in forming a new government withdrew, stating their frustration over the other parties' unwillingness to commit to substantial changes to the current system as a reason.
January 3, 2025 at 11:43 AM
December 28, 2024 at 8:33 AM
Performance looks good! 😎
August 16, 2025 at 6:07 AM