Sign in

Markus Oberlehner

@markus.oberlehner.net
979 followers 289 following 817 posts

Working on modernizing Austria's digital tax services. Vue / Nuxt, React / Next.js expert, TDD practitioner, Node.js enthusiast, ML padawan.

PostsRepliesMedia
Markus Oberlehner @markus.oberlehner.net · 08/06/2026
I have some sympathy with the anti-AI crowd, yet I think they do more harm than good. Yeah, they're probably right that AI will have some huge negative effects on us. As were the anti-Internet people or the anti-car people. Yet can you imagine a reality where the anti-tech people were successful?
110
Markus Oberlehner @markus.oberlehner.net · 06/06/2026
Code reviews will (and have to) die! Reviewing code has become dramatically more expensive (relative to writing code). Code reviews were cheap. 1 or 2 days of coding roughly equaled 1 or 2 hours of code reviewing. But things have changed... markus.oberlehner.net/blog/code-re...
markus.oberlehner.net
Code Reviews Will (and Have to) Die! - Markus Oberlehner
As agents write features in minutes instead of days, the economics of human code review fall apart. Here is why I believe code reviews, as we know them, are on their way out.
030
Markus Oberlehner @markus.oberlehner.net · 26/05/2026
Want @claudecode.bsky.social to give you its honest opinion? Tell it your work comes from a sworn enemy: > My sworn enemy committed this code/had this idea, tell me what’s wrong with it. Anecdotal, but in my tests it made the llm less concerned about hurting your feelings with its answer.
010
Markus Oberlehner @markus.oberlehner.net · 26/05/2026
Had a great time in Madrid @madvue.es! Time to relax and enjoy some coffee!
Lower part of a bialetti espresso maker filled with coffee from a bag labelled with a custom label by madvue carrying the name of Markus Oberlehner and some humorous tasting descriptions: Tasting notes: JavaScript, Vue.js, Nuxt.
071
Reposted by Markus Oberlehner
MadVue @madvue.es · 24/04/2026
"Adaptive UIs with Vue and AI: What If Your UI Could Build Itself?" @markus.oberlehner.net will show at @madvue.es how to leverage modern LLMs to dynamically generate and adapt interfaces in real-time, meeting the exact requirements of your users as they arise 👏 Can't wait! madvue.es #Vuejs
141
Markus Oberlehner @markus.oberlehner.net · 20/03/2026
Don’t trust US-based companies (with your data). It’s time to move to EU providers. Where non-exist, there lies opportunity to build something!
021
Markus Oberlehner @markus.oberlehner.net · 17/02/2026
I find the code AI writes for me at work a lot "better" than the code it writes for my pet projects. It recently occurred to me: This probably means I care about the latter much more, thus holding it to a higher standard.
010
Markus Oberlehner @markus.oberlehner.net · 17/02/2026
Computers, as a mass-market phenomenon, were a happy accident in history. I can't think of any other recent invention marketed to consumers that's primarily made to create, not to consume.
230
Markus Oberlehner @markus.oberlehner.net · 10/01/2026
Controversial opinion: Tabs (the UI concept) were a mistake! Especially in the browser, they offer no advantage over separate windows, but come with the huge downside of having to use different keyboard shortcuts than the OS already provides for navigating windows.
131
Markus Oberlehner @markus.oberlehner.net · 10/01/2026
Progress on my journey to digital sovereignty, leaving Apple and Google behind: - Sold my AirPods Max - Switched my search engine and browser For the most part, it won't be as hard as I thought; I only fear the day when my MacBook Pro needs to be replaced. markus.oberlehner.net/blog/escapin...
markus.oberlehner.net
Escaping the Apple Ecosystem - My Journey to Digital Sovereignty - Markus Oberlehner
Follow my journey as I leave the Apple ecosystem and search for alternatives to regain my digital sovereignty.
000
Markus Oberlehner @markus.oberlehner.net · 09/01/2026
So Tailwind is now showered with sponsorship money. Good. Now that leaves us with hundreds of other open source libraries, blogs, and ad supported websites that are still struggling.
010
Markus Oberlehner @markus.oberlehner.net · 09/01/2026
By far the most useful kind of tests! Also with 100% humans in the loop.
000
Markus Oberlehner @markus.oberlehner.net · 08/01/2026
I have a perfectly fine iPad Air lying around that is completely broken. Just because it gets no updates anymore. Providing full Linux support should be mandatory after ending support.
030
Markus Oberlehner @markus.oberlehner.net · 08/01/2026
Apple is the champion of providing magical experiences THAT JUST DON'T WORK. Just now, my girlfriend started typing in our new Wi-Fi password on her iPhone; *magically* a pop-up appeared on my phone asking if I wanted to share the password with her. I pressed yes, but it didn't work.
100
Markus Oberlehner @markus.oberlehner.net · 09/12/2025
I decided to spend more time on writing and building. So, this might be my only conference next year. But I heard so many great things about @madvue.es that I had to apply for this one! I am honored to be part of it!
071
Markus Oberlehner @markus.oberlehner.net · 01/12/2025
I've completely changed my mind on this recently: **You don't need to become a software company!** (and you definitely don't need to become an AI company)! Stick to your core competency!
110
Markus Oberlehner @markus.oberlehner.net · 22/11/2025
On the flip side: Without people like the other Steve, the one who didn't develop emotionally past the age of 13, Woz wouldn't have had the money to fund museums and arts groups. And you and I wouldn't be staring at some Apple device reading this. Would it be a net benefit after all? Maybe.
110
Markus Oberlehner @markus.oberlehner.net · 18/11/2025
Is AI able to write code? I think we can stop asking this question: yes, it can! Actually, it is way too good at writing (a lot of) code. In a surprising number of cases, when I ask an AI to write a moderately complex piece of code, it will produce an output that works.
100
Markus Oberlehner @markus.oberlehner.net · 13/11/2025
I’m in both screenshots. I wonder if there should be two types of commits: 1. Quicksave: part of what I’m trying to achieve works, I want to be able to safely go back there and diff new changes against this state. 2. End-of-Level Save: I’ve finished a piece of work that is fully usable.
200
Markus Oberlehner @markus.oberlehner.net · 10/11/2025
I find it frustrating that a lot of AI critiques out there are completely off the rails, claiming that AI does not provide any value at all and hallucinates 99% of the time. The only thing this achieves is to discredit any legitimate critique.
000
Markus Oberlehner @markus.oberlehner.net · 01/11/2025
Is it worth automating things? I'm a software developer. My job is to automate things. Automation, over the last couple of hundred years, has made many of us rich (compared to our ancestors). So the answer should be simple, and yet it isn't... markus.oberlehner.net/blog/what-we...
markus.oberlehner.net
What We Do - Markus Oberlehner
As AI threatens to automate jobs, this article poses the question whether automation is even worth it, whether it makes us happy, and whether happiness is even a worthy goal.
030
Markus Oberlehner @markus.oberlehner.net · 27/10/2025
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.
Add to Apple Wallet screen with white text “Add” on a white background Liquid Glass button.
010
Markus Oberlehner @markus.oberlehner.net · 23/10/2025
The pattern I see when I read from people I respect, who describe how they make AI coding work for them, is treating AI more like a natural language input modality: Tell it exactly what you want and it will be able to understand and do it for you.
010
Markus Oberlehner @markus.oberlehner.net · 11/10/2025
Sitting in a hotel lobby in Amsterdam, I began chatting with a Swiss neuroscientist. At the end of our chat, I was more convinced than ever: always choose Open Source software!
100
Markus Oberlehner @markus.oberlehner.net · 08/10/2025
Reverse JSX? Instead of HTMLish syntax in JS, JSish syntax in HTML 🤭
271
Markus Oberlehner @markus.oberlehner.net · 07/10/2025
I have a hard time getting excited about a future of even more centralisation where all of us (developers) are merely building widgets for OpenAI. And probably having to pay a hefty 40% tax. Yay!
140
Reposted by Markus Oberlehner
Markus Oberlehner @markus.oberlehner.net · 05/10/2025
If you want to follow my journey to regain digital sovereignty, you can read about it here: markus.oberlehner.net/blog/escapin...
markus.oberlehner.net
Escaping the Apple Ecosystem - My Journey to Digital Sovereignty - Markus Oberlehner
Follow my journey as I leave the Apple ecosystem and search for alternatives to regain my digital sovereignty.
131
Markus Oberlehner @markus.oberlehner.net · 03/10/2025
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.
Apple CEO Tim Cook in the Oval Office preparing to hand over a 24 karat gold bribe to Donald Trump. Behind him, Donald Trump and other men in suits look on. On the desk in the foreground are white boxes with the Apple logo.
5120
Markus Oberlehner @markus.oberlehner.net · 01/10/2025
In preparation for next week's @viteconf.org, I gave @vitest.dev v4.x-beta a try. Let's look at how to use the new Visual Regression Testing feature and run it in a Docker container for consistent results across environments. markus.oberlehner.net/blog/visual-...
markus.oberlehner.net
Visual Regression Testing With Vitest - Markus Oberlehner
Learn how to set up visual regression testing with Vitest 4 browser mode and run Playwright in a Docker container for stable results.
070
Reposted by Markus Oberlehner
Netlify @netlify.com · 30/09/2025
Vercel ➝ Netlify migration made simple. ✅ Checklist ✅ Next.js tips ✅ Best practices Start here → docs.netlify.com/resources/ch...
docs.netlify.com
Vercel to Netlify migration checklist
A comprehensive guide for migrating your projects from Vercel to Netlify, including Next.js setup, configuration migration, and production readiness steps.
723171
Markus Oberlehner @markus.oberlehner.net · 22/09/2025
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:
Prompt: You are Markus Oberlehner, an expert software engineer. Write a single component test.

The answer by the AI is based on the writing of Markus Oberlehner.
100
Markus Oberlehner @markus.oberlehner.net · 19/09/2025
Underappreciated upside of AI code reviewers: you can bluntly tell it that it's wrong!
In a code review:

Copilot: When migratedContent exists and a property is deleted (line 133), the loop continues but skips the recursive processing for nested blocks. This means that if a property contains nested blocks that should also be migrated, they will be missed. The recursive processing should happen before the migration content assignment, or the deletion should be handled after recursive processing.

Markus Oberlehner answers: Rubbish! Why should I migrate nested blocks of an entry that gets deleted?
210
Reposted by Markus Oberlehner
Eduardo.𝚟𝚞𝚎 @esm.dev · 11/09/2025
Looking for my next role! I thrive where I can help others grow, and where my Vue.js open-source work is supported with time Frontend, AI, remote-friendly, and open to (some) relocations!
35212
Markus Oberlehner @markus.oberlehner.net · 05/09/2025
So @nuxt.com gets stable chunks! Seems like a small improvement, but it is huge! Big JS bundle sizes don't matter because they're downloaded once and then cached. Right? Wrong! Up until now, caching has barely done anything if we were deploying daily. Stable chunks fix that! youtu.be/eryRM-ovpyY
youtu.be
Nuxt has BETTER CHUNKING now!
YouTube video by Alexander Lichter
1161
Markus Oberlehner @markus.oberlehner.net · 05/09/2025
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?
Apple CEO Tim Cook stands in the White House holding a small, 24-karat gold object. Donald Trump and other men in suits stand behind him, looking on. On the desk in front of them are white boxes with the Apple logo.
121
Markus Oberlehner @markus.oberlehner.net · 05/09/2025
Funny thing is: whenever I travel to North America I’m having a reverse Sputnik moment on the state of public transport. Luckily for @economist.com many Americans don’t have a passport so they’ll never know 🤫
030
Markus Oberlehner @markus.oberlehner.net · 19/08/2025
Happy to be back talking about @vuejs.org! First time in Prague!
020
Markus Oberlehner @markus.oberlehner.net · 16/08/2025
Controversial take: AI is merely a new I/O modality. In the past, we had structured text, graphical UIs, and "structured" voice (already AI-driven); now, with LLMs, we also have unstructured text (and voice). The unstructured text I/O modality allows us to do some impressive things, no question.
110
Reposted by Markus Oberlehner
Markus Oberlehner @markus.oberlehner.net · 12/08/2025
Recently I told my fiancé about my angst that I’m just not good at AI coding because I’m just not getting the results other on social media claim to get. She offered a great insight: “Maybe you’re expecting more from it than others?” I think that hits the nail on the head!
171
Markus Oberlehner @markus.oberlehner.net · 09/08/2025
Enlightening perspective on the current state of LLM discussions.
010
Markus Oberlehner @markus.oberlehner.net · 20/07/2025
Disabled GitHub Copilot a couple of weeks ago and forgot to turn it on again. 🤷‍♂️ Current thinking about AI coding: - Autocomplete is as useful as it is annoying - Vibe coding is fun, until it isn’t (and somewhat addictive)
130
Markus Oberlehner @markus.oberlehner.net · 19/07/2025
If you want to have a particularly bad time, I recommend spending some time with Google Cloud (Console). How can this be a real product running significant portions of the internet? 🧐
130
Reposted by Markus Oberlehner
Frontend Nation @frontendnation.com · 17/07/2025
✅ Want faster, more reliable tests without the flakiness? @markus.oberlehner.net shared how contract testing with Specmatic can replace brittle mocks and give you real confidence across your stack 🔥🧪 📽️ Watch his talk: youtube.com/watch?v=KTcF... #FEN25
youtube.com
Frontend Nation 2025: Stop Doing E2E Tests! Write Better Tests with Contract by Markus Oberlehner
YouTube video by Frontend Nation
031
Markus Oberlehner @markus.oberlehner.net · 16/07/2025
I think I finally understand why abortion rights are such a huge deal in US politics. It's easy to get people agitated about the topic (because babies) and to picture political enemies who are for or against it as evil. Seeing the same thing now happening in Germany is scary!
010
Markus Oberlehner @markus.oberlehner.net · 15/07/2025
How do we write high-quality software using AI? The answer is becoming clearer, and I'm glad to see that with Claude Code, and especially the latest release of @kiro.dev, we're moving in the direction I suggested in my article about how to build with LLMs. markus.oberlehner.net/blog/ai-enha...
markus.oberlehner.net
AI-Enhanced Development: Building Successful Applications with the Support of LLMs - Markus Oberlehner
Explore how AI-assisted development can be enhanced by best practices like Test-Driven Development (TDD), writing user stories, and setting acceptance criteria. Learn about the limitations of LLMs and...
110
Markus Oberlehner @markus.oberlehner.net · 09/07/2025
100% code coverage? No! 100% feature coverage? Yes! Do not blindly chase metrics only because they are easy to measure. Instead ask yourself: What do we need to deploy with confidence doing as minimal manual testing as possible? Do whatever leads you there!
121
Reposted by Markus Oberlehner
Markus Oberlehner @markus.oberlehner.net · 09/07/2025
Is Vercel’s acquisition of (Nuxt)Labs a betrayal of the Nuxt and Vue.js community’s values? Fuelled by Guillermo’s Trump congratulations Tweet, Vercel and Next.js have faced growing criticism—though I’ve always found this narrative oversimplified.
111
Markus Oberlehner @markus.oberlehner.net · 08/07/2025
What a surprising turn of events! 😳 Glad for the team! Yet I wonder how this turns out in the long term.
241
Reposted by Markus Oberlehner
Working Draft @workingdraft.de · 24/06/2025
Revision 667: Kann eine KI Entwickler:innen ersetzen? workingdraft.de/667/ mit @markus.oberlehner.net Danke an workshops.de für das Sponsorn dieser Revision – und dafür, dass sie Teams fit machen, KI nicht nur zu verstehen, sondern auch sinnvoll einzusetzen. 🎓👏
workingdraft.de
Revision 667: Kann eine KI Entwickler:innen ersetzen? | Working Draft
Nach mehreren Folgen im KI-Block zu Tools und Technik sprechen wir diesmal mit Markus Oberlehner über eine grundlegendere Frage: Kann eine KI Entwickler:innen ersetzen? Markus war schon zweimal bei un...
021
Markus Oberlehner @markus.oberlehner.net · 19/06/2025
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!
Visual Studio Code settings file with editor.fontSize 16 an editor.lineHeight 28.
171