Dirk Riehle's Industry and Research Publications

Category: 2.1 Engineering

  • 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,…

  • “Two hard things in computer science” explained

    “Two hard things in computer science” explained

    You may have heard the saying “There are only two hard things in computer science: Cache invalidation and naming things.” The web and Martin Fowler attribute this saying to one Phil Karlton; I actually thought it was Leslie Lamport, but maybe I’m confusing it with this saying “A distributed system is one in which the…

  • Is isEven() a bad function to have?

    Is isEven() a bad function to have?

    Someone on Twitter got all exasperated that there is an isEven() function in Javascript to compute whether a number is an even number. After all it is equivalent to the simple expression of ((n % 2) == 0); why would they not use this? Well, already this simple example contains most of what you need…