Dirk Riehle's Industry and Research Publications

Category: 2.1 Engineering

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

  • Challenges of working from home in software development during COVID-19 lockdowns [TOSEM Journal]

    Challenges of working from home in software development during COVID-19 lockdowns [TOSEM Journal]

    Abstract: The COVID-19 pandemic of 2020-2022 and the resulting lockdowns forced many companies to switch to working from home, swiftly, on a large scale, and without preparation. This situation created unique challenges for software development, where individual software professionals had to shift instantly from working together at a physical venue to working remotely from home.…