Recent
Phonetic Matching with Apache Solr
Contribution to a customer-facing workshop (2022/07/21)
Abstract: In this session, I'll talk about phonetic matching with Apache Solr. We start off with an explanation of various Soundex algorithms and learn their shortcomings, then move on to the characteristics of the Beider-Morse algorithm for phonetic matching. I'll demonstrate how to integrate Beider-Morse into your Solr setup and discuss the benefits of it as part of an evaluation performed on real-world data.
Streaming Data with Apache Kafka
Contribution to a customer-facing workshop (2021/10/21)
Abstract: Apache Kafka is a highly distributed publish-subscribe messaging system that has been optimized for collecting and delivering high volumes of data with low latency. The designers of Kafka made some interesting design choices which distinguish it from traditional approaches to messaging systems. We are going to see what the tradeoffs are and how Kafka achieves its performance and scalability, making it suitable for implementing fast data pipelines. The presentation closes with a reference architecture for streaming systems and discusses where each and every component of the Kafka ecosystem fits in.
Testing Kafka Components using Kafka for JUnit
Contribution to a customer-facing workshop
Abstract: Kafka for JUnit enables developers to start and stop a complete Kafka cluster comprised of Kafka brokers and distributed Kafka Connect workers from within a JUnit test. It also provides a rich set of convenient accessors to interact with such an embedded or external Kafka cluster in a lean and non-obtrusive way. Kafka for JUnit can be used to both whitebox-test individual Kafka-based components of your application or to blackbox-test applications that offer an incoming and/or outgoing Kafka-based interface. This presentation gives a brief introduction into Kafka for JUnit, discussing its design principles and code examples to get developers quickly up to speed using the library.
A Journey Through the JDKs
Contribution to a customer-facing workshop (2021/07/15)
Abstract: This presentation gives an overview of the most relevant updates and features going from Java 9 to Java 11 from a developer's perspective.
Introduction to Lombok
Contribution to an on-site Coding Dojo (2017/08/17)
Abstract: Lombok is a great tool to get rid of unneccessary boilerplate code. But its conciseness also comes at a cost. In this talk we explore some of the features of Lombok, discuss when and how to apply in your project and also show some of its features that you should avoid. Furthermore, we demonstrate its integration with Maven and discuss the impact of Lombok wrt. code analysis tools.
Apache Kafka for Fast Data Pipelines
At the Rhein-Main Scala Enthusiasts Group (2016/11/03)
Abstract: Apache Kafka is a highly distributed publish-subscribe messaging system that has been optimized for collecting and delivering high volumes of data with low latency. The designers of Kafka made some interesting design choices which distinguish it from traditional approaches to messaging systems. We are going to see what the tradeoffs are and how Kafka achieves its performance and scalability, making it suitable for implementing fast data pipelines. Simple coding samples in Scala showcase the message exchange between a producer and a consumer. The presentation concludes with some caveats and best practices to work around them.
The code examples are on GitHub.
Introduction to Property-Based Testing
At the Rhein-Main Scala Enthusiasts Group (2016/06/07)
Abstract: Writing unit tests helps a lot in verifying that our code is correct - or does it? Unit-tests are typically written as example-based tests. We will see that this approach to testing falls short in certain situations. Adding property-based tests to our repertoire bridges the gap. A property-based test verifies a statement about the output of your code based on some given input. The same statement - or property - is verified for many different possible inputs to find one that falsifies the property. The talk also gives details on how to find and extract properties to test for using a couple of patterns that can drive the design of your tests. All coding examples are shown in Scala.
The code examples are on GitHub.
At the Heart of for-yield
At the Rhein-Main Scala Enthusiasts Group (2016/02/02)
Abstract: In this short talk we learn a bit about the inner workings of for-comprehensions in Scala. The presentation is accompanied by a couple of code examples.