Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston.
He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects.
Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. You can reach him by email at venkats at agiledeveloper dot com or on twitter at @venkat_s.
Complexity hurts. We find it everywhere, in our daily lives, in products, and in the code we have to maintain as developers. Complexity comes in different forms and flavors. The ways in which complexity can manifest is, well, complex. In this keynote, an award winning author, programmer, and practitioner, will share personal experiences dealing with complexity for a few decades, ways to tackle existing complexity, and how to minimize complexity from entering into applications.
Reactive Programming is receiving quite a bit of attention and for good reasons. It’s a nice logic next step from functional programming. It takes the concept of function composition and lazy evaluations to the next level. It streamlines handling of many critical issues that are architectural in nature: resilience, scale, responsiveness, and messaging.
In this workshop, we will start with a quick introduction to reactive programming. We will then dive into code examples and learn how to create reactive applications. We’ll learn to implement observables, to deal with errors in a graceful manner, learn both synchronous and asynchronous solutions, hot vs. cold observables, and dealing with backpressures.
Functional programming has gained the recognition it deserves and almost all mainstream languages now support functional style of programming. With the introduction of lambdas in Java 8, we have new tools on our hands. In this presentation, we explore this tool and how we can benefit from it.
We start with an introduction to lambda and learn about imperative vs. declarative style and learn how to solve some common problems with it.
Java does not permit multiple implementation inheritance, but the problem is not gone. We solve the issue using a bunch of interfaces and classes. Thankfully there are some alternatives, in Java, Scala, and Groovy.
In this presentation we will first learn about the problem, the solution in old Java, then we take up some possible solution in Java 8 and explore the options available in Scala and Groovy.