Dirk Riehle's Industry and Research Publications

Category: 2.1 Engineering

  • The future of vibe coding, if any

    The future of vibe coding, if any

    tl;dr The future of vibe coding is end-user programming; another label for a larger danger. For a short moment, the web was abuzz about vibe coding, where non-professionals use a code AI and other assisting tools to develop software themselves. The idea was that anyone could vibe-code and that all the practices of professional software…

  • Do code AIs afford programmers a higher level of abstraction?

    Do code AIs afford programmers a higher level of abstraction?

    One of my claims to fame is to have been the main architect and implementor of the first UML virtual machine. The idea was that developers should express their programs using UML (the Unified Modeling Language) rather than Java at the time, and that work would be faster, better, cheaper than if they hand-coded everything.…

  • Can a Domain-Specific Language Improve Program Structure Comprehension of Data Pipelines? A Mixed-Method Study [EMSE Journal]

    Can a Domain-Specific Language Improve Program Structure Comprehension of Data Pipelines? A Mixed-Method Study [EMSE Journal]

    Abstract In many application domains, domain-specific languages can allow domain experts to contribute to collaborative projects more correctly and efficiently. To do so, they must be able to understand program structure from reading existing source code. With high-quality data becoming an increasingly important resource, the creation of data pipelines is an important application domain for…

  • Ensuring syntactic interoperability using consumer-driven contract testing [STVR Journal]

    Ensuring syntactic interoperability using consumer-driven contract testing [STVR Journal]

    Abstract Integrating services in service-based architectures is a major concern and challenge to their developers. A key problem is that today’s compilers cannot ensure syntactic interoperability of web APIs. Without further help, invalid calls surface only at runtime. Microservice-based architectures exacerbate this problem due to their use of polyglot software stacks and independent deployments. As…

  • A taxonomy of microservice integration techniques [INFSOF Journal]

    A taxonomy of microservice integration techniques [INFSOF Journal]

    Abstract Context Microservices have become an important architectural style for building robust and scalable software systems. A system’s functionality is split into independent units, the microservices, that communicate over a network and can be deployed independently. The shift of complexity into the integration layer necessitates enhanced collaboration among stakeholders, stressing the importance of effective communication.…

  • A systematic review of common beginner programming mistakes in data engineering [CSEE&T 2025]

    A systematic review of common beginner programming mistakes in data engineering [CSEE&T 2025]

    Abstract The design of effective programming languages, libraries, frameworks, tools, and platforms for data engineering strongly depends on their ease and correctness of use. Anyone who ignores that it is humans who use these tools risks building tools that are useless, or worse, harmful. To ensure our data engineering tools are based on solid foundations,…