The unknowns of JUnit 5
Java's most popular testing library may not sound like a topic interesting enough for a talk. However, apart from
@Test annotation there are a lot of useful and exciting features still waiting to get proper attention.
The goal of this presentation is to showcase the less-known features of JUnit 5 like:
- Writing data table tests similar to Spock
- Running selected tests in parallel while keeping the configuration in the code
- Avoiding test code duplication without inheritance
- Customizing test cases display names.
We will write some tests to see how these "new toys" can improve our testing experience.
CAP Theorem - two decades and few clouds later
"Consistency, Availability, Partition tolerance — pick two" is both a proven theorem and a huge oversimplification. Categorizing systems as CP, CA and AP is no longer enough in the light of configurable consistency and cloud services advertising themselves as "almost CAP". What's left of this famous theorem in 2021?
Let's deep dive into the CAP theorem in a non-academic way to identify its practical implications. During the session, we will go through some modern data stores like Cassandra, Kafka & AWS S3 to identify their place in the grey area of the CAP triangle. The audience will get an overview of possible trade-offs and their consequences for not only the three original properties.
Distributed architectures - Behind the hype
Presented at: Pozitive Technologies 2019
There seems to be a lot of marketing around the software architecture these days. As a result, some believe that without microservices, cloud, serverless, or distributed systems in general, no one will take their systems seriously. However, distributed architectures have a significant cost, hidden somewhere behind the hype. This presentation is a brief introduction of the challenges they introduce, along with the solutions to address them.
DYI: regular security audit without pentesters
Presented at: TestWarez 2018
Most of the companies cannot imagine a security audit without an external security experts team or dedicated auditing company. The role of this kind of tests (especially penetration testing) should not be underestimated, but such actions must be repeated often to give a real value. The question is: are there any practices that companies could adopt internally to regularly verify the security of their systems without significant cost? During the talk, I'd like to show some techniques that could be implemented easily to achieve that and what went well in few of my Java-based projects.