About:
Markus Oberlehner is a Software Engineer living in Austria. He writes articles about Vue.js / Nuxt, React / Next.js, Test-driven Development, and CSS.
Website:
Outgoing Links:
Subscribe to RSS:
This article discusses the implementation of visual regression testing using Vitest, highlighting its benefits for catching UI regressions early. It addresses common challenges teams face, such as complex setups and cross-platform...
The author, a software developer, explores the complexities of automation and its relationship with happiness and purpose. He questions the societal acceptance of wealth and status as indicators of happiness, suggesting that the p...
The author discusses their decision to break free from major US technology companies, particularly Apple, due to concerns over monopolistic practices, addictive algorithms, and mass surveillance. They outline their main quest to e...
The text discusses the harmful obsession with sharing success stories and the importance of sharing failures instead. It highlights the unreliability of success stories and the need to listen to real-world experiences. The author ...
The text discusses the concept of 'magic' in programming frameworks, comparing frameworks that rely on magic and those that emphasize explicitness, transparency, and predictability. It provides examples of magical and explicit way...
The text discusses the limitations of large language models (LLMs) in terms of creativity and their capability to write code. The author argues that LLMs lack true intelligence and creativity, and therefore, they are not capable o...
The text discusses the differences between modules, components, and services in the context of microservices architecture. It explains that a module is a named collection of code, components are independent and easily replaceable ...
The text discusses the problem of running tests in parallel with Specmatic and Playwright, and the solution found to allow truly parallel tests. It involves modifying the OpenAPI specification, configuring Playwright workers, sett...
The author reflects on his deep sense of not-enoughness and the need to constantly push himself to achieve more, but realizes that it is not sustainable. He aims to shift his focus from proving himself to being curious and in serv...
The author discusses using react-hook-form with React 19, useActionState, and Next.js 15 App Router. They explain how they made react-hook-form work with server actions, syncing server-side and client-side validation with Zod, and...
The author discusses the use of non-English terms in code, particularly in the context of domain-specific languages and internationalization. He provides examples from his experience in Austrian tax law and the job marketplace dom...
The article discusses how to set up Playwright with Storybook to run visual regression tests on UI components. It explains the process of creating reference screenshots, making changes to components, and running tests within Docke...
The text explains how to run and deploy a Next.js application within a Docker container. It outlines the steps to create a Dockerfile, build the Docker image, and run the Next.js application using Docker. It also provides informat...
The text discusses the hype around microservices and microfrontends, the drawbacks of overusing them, and the importance of thinking decoupled when building software systems.
The article discusses the challenges of end-to-end testing in microservices-based software systems and proposes the addition of end-to-mock and end-to-contract tests to the testing canon. It explains the benefits of contract testi...
The text discusses the transition from Jest to Vitest for testing workflow, and how to extend Vitest matchers with jest-dom library.
The article discusses the limitations and potential of AI-assisted development workflows, focusing on the similarities between human flaws and those of AI language models (LLMs). It emphasizes the importance of adhering to best pr...
The article discusses the challenges of testing server-side rendered applications that communicate with microservices and introduces the concept of Contract Testing with Specmatic as a solution. It explores the differences between...
The article discusses the application of Large Language Models (LLMs) for Vector Search using text embeddings, and how to build a 'similar products' functionality with Nuxt using SQLite and the VSS plugin. It explains the concept ...
The text discusses the use of text embeddings and Vector Search algorithms to build powerful search experiences. It explains how to set up SQLite with the Vector Search Plugin VSS and Node.js, and how to store and search for data ...
The article explores the concept of returning composables from other composables in Vue applications, discussing scenarios where it might be useful and the pros and cons of this approach. The author emphasizes that the best approa...
The text discusses the challenge of managing data across different components in a Nuxt 3 app and proposes a solution involving creating a global context for managing refresh handlers keyed by API endpoints. It explains the proces...
The text discusses the importance of focusing on outcomes rather than outputs in product management and testing in programming. It emphasizes the significance of feedback loops, the debate around unit testing, and the value of end...
The Rule of Least Power suggests using the least powerful language or tool for a task, leading to better coding practices, security, and maintainability. The author demonstrates this with PostgreSQL policies in their pet project, ...