Venkat Subramaniam
Great Lakes Software Symposium
Chicago · November 3 - 5, 2017

Founder @ Agile Developer, Inc.
Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, 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 sustainable agile practices on their software projects.
Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.
Presentations
Functional Programming with Java 8
Java 8 is the most significant change to the language since it's introduction, surpassing changes seen in any of the previous versions. It is not merely syntactical change or addition of a few extra features, it's a paradigm shift. Come to this presentation to learn about the power and capabilities of functional programming using Java 8 and how to benefit from those when building Java applications.
The Power and Perils of Parallel Streams
Turning a stream into a parallel stream is extremely easy, but is that the prudent thing to do? While flipping that switch is almost effortless there are some significant ramifications. In this presentation we will learn the power of parallel streams but also why, when, and where it makes sense to use parallel streams. Through a series of example we will learn about cases where it makes sense and some there it does not.
Design Patterns in the Light of Lambda Expressions
Design patterns are common place in OO programming. With the introduction of lambda expressions in languages like Java, one has to wonder about their influence on design patterns.
Reactive Programming in Java
Reactive Programming in gaining a lot of excitement. Many libraries, tools, and frameworks are beginning to make use of reactive libraries. Besides, applications dealing with big data or high frequency data can benefit from this programming paradigm. Come to this presentation to learn about what reactive programming is, what kind of problems it solves, how it solves them. We will take an example oriented approach to learning the programming model and the abstraction.
Tools for High performance Big Data Computing on the JVM
Big data applications have entire different demands than typical CRUD applications that have ruled the enterprise for decades. When dealing with high frequency and high volume of data, we have to reach to a different set of tools than we have been used to.
Putting a Spark in your Applications
Distributed and parallel computing have been around for a while. The problem is not new, but solutions have generally been complex. Over the years several solutions have come along to ease the pain. Spark is a wonderful programming API and a tool that can ease the pain of creating distributed, high concurrent, performing code.
Profiling Client Side JavaScript Applications
We can often easily tell when the performance of the code is poor, but, it is not easy to figure out where things are going wrong. Guessing where the problem may be is not only frustrating, but also may keep us away from the real problem area.
Improving Quality of JavaScript Code
JavaScript is a very powerful and ubiquitous language. At the same time, it is also a language that is often misunderstood and misused. Better quality code greatly reduces the effort and time to maintain software. So, there is a good incentive to improve quality of code.
MetaProgramming with JavaScript
Tools/libraries/frameworks that rely on modern JavaScript heavily make use of metaprogramming capabilities that is relatively new in the language.
Twelve Ways to Make Code Suck Less
We all have seen our share of bad code and some really good code as well. What are some of the common anti patterns that seem to be recurring over and over in code that sucks? By learning about these code smells and avoiding them, we can greatly help make our code better.