Ties van de Ven

Software fundamentals, knowledge sharing

BIO

Ties is a software engineer with a passion for concepts, software engineering fundamentals and helping others. He combines these passions by doing public speaking, volunteer work for organisations like Devoxx4kids and codingcoach and working as a Software Quality Expert at Alliander.

Abstracts

Monads explained

Functional programming terminology can be quite intimidating, but it does not have to be. Learning this terminology actually helped me in becoming a better problem solver, and therefor better at programming (in any language). In this talk we will go into what all these fancy words like monad, monoid, functor etc. actually mean. We will go into a bit of theory (but not as far as category theory), and there will be a strong focus on practical everyday examples. After this talk you will see that you have been using monads all along, know why the Java Optional is not a monad, and your abstract thinking skills will level up.

Effective problem solving

Software engineering is a field that is evolving rapidly. About 10 years ago we were manually installing things on that one named server while these days we run hundreds of services in a cloud environment. It can be challenging to keep up with all these developments in our field. What is interesting however, is that the problems we are solving these days are conceptually the same problems we were solving 10 years ago. For example, there were a few technologies for services to find eachother like Spring’s Eureka or Kubernetes DNS. At first glance these seem very different technologies but once you realize they solve the same problem (service discovery), knowledge of one of those is very much transferable to the other.

In this talk we will not go into this cloud stuff, instead we will look at the kind of problems you, a Java developer, encounter every day. We will dive into the fundamental problems of software engineering (like state management and side-effect management) and focus on how we can use this knowledge as building blocks to answer problems like why some code seems to be untestable or to finally end the discussion about if static is indeed the root of all evil (spoiler… it’s not). We will also look at how to break down problems in such a way we can use the Java standard libraries to solve them.

As a programmer, critical thinking and problem solving, not writing code itself, is most of the work. So join me today in our journey to learn to become an effective problem solver.

Empowering Your Development with FP: Understanding and Practice

There are a lot of talks about the newest tools libraries and frameworks but sometimes it is good to take a step back and think about the underlying problems they are trying to solve. In this talk we will go into the 4 fundamental aspects within software engineering; problem solving, managing state, managing errors and managing side effects. There will be almost no functional programming terminology used but instead focus on recognizable examples (in Java) and look at them from a different angle that you might have never concidered. So if you want to improve your problem solving skills and get better in abstract thinking without having to learn what a monad is, this is the talk for you.

Java’s new paradigm

The new Java features like records, sealed classes and pattern matching have all been added to support the Data Oriënted Programming paradigm. But what is the idea behind it and what makes it different from the Object Oriënted style or the Functional Programming style? In this talk we will go into what Data Oriënted Programming is, what mindset you need for it and we will take a look at some Data Oriënted Programming patterns. So if you want to be ready to code modern Java and would like to add another tool to your toolbox, this is the talk is the right talk for you.

Functional programming in Kotlin: exploring Arrow

Functional programming is gaining popularity and partly because of this people have been switching to Kotlin. Although it fits the paradigm better than Java, there is still quite a bit missing to unleash the full power of FP. Arrow is here to fill in the missing bits with things like new datatypes, e.g. Try, Either, and Optics. Arrow is the most popular functional programming library for Kotlin. In this talk we will go through what problems Arrow can solve for you and how it can help you with your everyday programming.