Venkat Subramaniam
ÜberConf
Denver · June 24 - 27, 2014

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
Programming with Lambda Expressions
Now that Java is supporting lambda expressions, it's time to hone our skills to make use of them. Lambda expressions can help create concise code, however, it takes more than learning the syntax to put them to good use.
Programming with Neo4J
A nice alternative to relational databases, graph databases are being used in a number of applications from social networking to data analysis. Neo4J is a powerful, high performance industrial strength database that is highly scalable. It provides nice integration with Java.
Taking Command of the Command Line
Moderns IDEs are great, they let us get our work done, focus on solving problems, provide code prompts, and more. On the flip-side, they hide of lot of details and often do not provide everything to help get our work done. Learning to effectively use the command line, can help us navigate around, write script to automate certain routine tasks, isolate and understand issues, and more.
Applying Groovy Metaprogramming (Workshop)
Multiple languages on the JVM offer the ability to write concise and expressive code. One thing that sets Groovy apart, more distinctively than a few others, is its ability to extend the program at runtime.
Classes are open in Groovy and we can not only add methods, but we can synthesize methods as well, at runtime. This ability provides for quite an interesting set of flexibilities, paving the way to create highly dynamic applications, domain specific languages, lightweight configurable components, all with less code.
Applying Groovy Metaprogramming (Workshop)
Multiple languages on the JVM offer the ability to write concise and expressive code. One thing that sets Groovy apart, more distinctively than a few others, is its ability to extend the program at runtime.
Classes are open in Groovy and we can not only add methods, but we can synthesize methods as well, at runtime. This ability provides for quite an interesting set of flexibilities, paving the way to create highly dynamic applications, domain specific languages, lightweight configurable components, all with less code.
JVM Tools for the Java Developers
When we run into issues with our programs we often run to the debugger. While that's a powerful tool, there are problems far beyond what a debugger can expose. We often want to profile code, take a look at the memory usage or where a bottle neck may be.
Designing with Lambda Expressions
Java 8 brings support for lambda expressions and functional style of programming. With that, the design concepts and the patterns we're used to in Java enjoy a makeover.
Concurrency without Pain in Pure Java
Programming concurrency has turned into a herculean task. I call the traditional approach as the synchronized and suffer model. Fortunately, there are other approaches to concurrency and you can reach out to those directly from your Java code.
Reactive Programming
Reactive programming is gaining some good attention recently. If you wonder what this is all about come to this presentation for a practical introduction.
Exploring Nashorn
JavaScript has regained quite a bit of popularity, not just on the client side, but also on the server side.
Haskell for Java Programmers
Java is statically typed, but often there are debates about how the typing gets in our ways. Haskell has largely been credited for its static typing and for enforcing the functional programming paradigm. Learning about Haskell can help us program in Java better and even borrow some nice pattern of programming.