'training and mentoring with agility'

Home

Blog

Downloads

Courses

Consulting

Conferences

Talks

Testimonials

About us

Contact us

Downloads: Presentations and Articles
Presentations:
Exploring Java 9 Modularization, NFJS, Boston, March 19, 2017
Functional programming in Java 8, NFJS, Boston, March 18, 2017
Angular vs. React: Which one to Choose?, NFJS, Madison, March 10, 2017
Putting a Spark in your Applications, NFJS, Minneapolis, March 4, 2017
Twleve Ways to Make Code Suck Less, NFJS, Minneapolis, March 4, 2017
Programming with Vert.x, NFJS, Minneapolis, March 3, 2017
Automated Testing JavaScript, NFJS, Minneapolis, March 3, 2017
Developing Angular 2 Apps, NFJS, Minneapolis, March 3, 2017
Twelve Ways to Make Code Suck Less, Devoxx, Belgium, November 9, 2016
Patterns for Programming in Javascript, NFJS, Minneapolis, October 22, 2016
Testing Functional Java 8 Using Junit 5, NFJS, Minneapolis, October 21, 2016
Mastering Angular2 Dependency, Angular Summit, Boston, September 28, 2016
Keeping your Promises, Angular Summit, Boston, September 28, 2016
Exploring ECMAScript 2015, Angular Summit, Boston, September 28, 2016
Get Reactive with RxJS, Angular Summit, Boston, September 28, 2016
Automated Testing of Angular 2, Angular Summit, Boston, September 27, 2016
Exploring TypeScript, Angular Summit, Boston, September 27, 2016
Angular 2 Beyond the Introduction, Angular Summit, Boston, September 27, 2016
A Practical Intro to Angular2 Using Good Old JavaScript, Angular Summit, Boston, September 27, 2016
Exploring Java: JavaOne4Kids, JavaOne4Kids, San Francisco, September 17, 2016
Testing JavaScript MEAN Stack, Dallas JavaMUG, August 10, 2016
Interactive Development and Fast Feedbacks with Java 9 REPL, UberConf, Denver, July 22, 2016
Frege for Java Programmers, UberConf, Denver, July 22, 2016
Twleve Ways to Make Code Suck Less, UberConf, Denver, July 22, 2016
Let's Get Lazy: Explore the Real Power of Streams, UberConf, Denver, July 21, 2016
Parallel Programming with Java 8 Streams, UberConf, Denver, July 21, 2016
A Few Hidden Treasures in Java 8, UberConf, Denver, July 21, 2016
Java 8 Programming Idioms, UberConf, Denver, July 21, 2016
Refactoring to Functional Style using Java 8, UberConf, Denver, July 21
Transitioning to Angular 2, Angular Summit, Chicago, May 18
End-to-End Testing of the MEAN Stack, Angular Summit, Chicago, May 18
Automated Testing Angular 2, Angular Summit, Chicago, May 17
A Practical Intro to Angular 2, Angular Summit, Chicago, May 17
What's Brewing in Java 9, NFJS, Columbus, April 30, 2016
Automated Testing of JavaScript, DevDay, Colombo, December 18, 2015
Programming with Elm: Functional Reactive UI Language, RWX2015, Fort Louderdale, December 2, 2015
Get a Taste of Lambdas and Get Addicted to Streams, Devoxx, Belgium, November 10, 2015
Designing Reactive Systems, NFJS, New York, October 30, 2015
A Few Hidden Treasures in Java 8, JavaOne, San Francisco, October 29, 2015
Exploring TypeScript, AngularJS Summit, Boston, Sept 30, 2015
The Future of JavaScript What is Brewing, AngularJS Summit, Boston, Sept 29, 2015
JavaScript Programming Idioms—Creating Elegant Code, AngularJS Summit, Boston, Sept 29, 2015
Caring about JavaScript Code Quality, AngularJS Summit, Boston, Sept 28, 2015
JavaScript the Fun and Useful Parts, AngularJS Summit, Boston, Sept 28, 2015
Hacking Groovy Compile Time Metaprogramming, Spring2GX Washington, D.C., Sept 17, 2015
Programming with Traits, Spring2GX Washington, D.C., Sept 17, 2015
Using Groovy Annotations, Spring2GX Washington, D.C., Sept 16, 2015
Programming Groovy with Java 8, Spring2GX Washington, D.C., Sept 15, 2015
FP in F#, Visma in Paris, Sept 12, 2015
FP in Java, Visma in Paris, Sept 12, 2015
Lazy Evaluations and its Impact on Efficiency, Dallas JUG, Aug 12, 2015
Automated Testing JavaScript, MidwestJS, Minneapolis, Aug 14, 2015
A Practical Introduction to AngularJS, NFJS, Austin, July 12, 2015
Taking Command of the Command Line, Uberconf, Denver, July. 22, 2015
The Power and Practicality of Programming with Immutability, GIDS, Bangalore, Apr. 21, 2015
Exploring TypeScript, GIDS, Bangalore, Apr. 21, 2015
Core Software Design Principles, NFJS, Reston, Apr. 19, 2015
Towards an Evolutionary Architecture, NFJS, Reston, Apr. 19, 2015
Agile, Not Fragile, Agile, Hyderabad, Apr. 7, 2015
Functional Programming: Technical Reasons to Adapt, Private Corporate Event, Illinois, Mar. 31, 2015
Testing with AngularJS, Private Corporate Event, Illinois, Mar. 31, 2015
Design Patterns in the Light of Lambdas, DevNexus, Atlanta, Mar. 12, 2015
Programming Reactive, NFJS Boston, Feb. 28, 2015
The Story of Traits, NFJS Boston, Feb. 28, 2015
Being Lazy in Scala, NFJS Boston, Feb. 28, 2015
Java 8 Lambdas, the Path way to Functional Style, San Diego JUG, Feb. 17, 2015
Using Traits, Mixins, and Monads, Devoxx, Antwerp, Nov. 10, 2014
Applying Groovy Closures for Fun & Productivity, JavaOne, San Francisco, Oct. 2, 2014
Transforming Code to Java 8, JavaOne, San Francisco, Oct. 2, 2014
Reactive Programming for Java Programmers, JavaOne, San Francisco, Oct. 2, 2014
Exploring Groovy Metaprogramming, JavaOne, San Francisco, Sept. 30, 2014
Programming with Streams in Java 8, JavaOne, San Francisco, Sept. 29, 2014
Thinking in Functional Style, JavaOne, San Francisco, Sept. 29, 2014
Programming with Lambda Expressions in Java, JavaOne, San Francisco, Sept. 29, 2014
Java 8 for Groovy Programmers, SpringOne2GX, Dallas, September 10, 2014
Test Driving Grails Applications, SpringOne2GX, Dallas, September 10, 2014
Understanding Groovy Typing, SpringOne2GX, Dallas, September 9, 2014
jQuery for Grails Developers, SpringOne2GX, Dallas, September 9, 2014
Haskell for Java Programmers, Uberconf, Denver, June 27, 2014
Exploring Nashorn JavaScript engine, 33Degree, Krakow, June 09, 2014
Transforming your C# code to Functional Style, NDC, Oslo, June 06, 2014
Programming in Functional Style, Private event, Oslo, Apr. 29, 2014
Reactive Programming, NFJS, Boston, Feb. 28, 2014
Programming with neo4j, NFJS, Boston, Feb. 28, 2014
Prog. in Functional Style w Java 8 Lambdas, JFokus, Stockholm, Sweden, Feb. 3, 2014
Thinking Functional Style, Devoxx, Antwerp, Belgium, Nov. 12, 2013
Asynchronous Programming with JavaScript, NFJS, Reston, VA, Nov. 3, 2013
Modular JavaScript, NFJS, Reston, VA, Nov. 3, 2013
10 Commandments of Technical Presentations, NFJS, Reston, VA, Nov. 3, 2013
Integrating JVM Languages, JavaOne, San Francisco, Sept. 25, 2013
Designing with Lambda Expressions in Java, JavaOne, San Francisco, Sept. 26, 2013
Programming with Lambda Expressions in Java, JavaOne, San Francisco, Sept. 25, 2013
Ten Cool Things in Popular JVM Langs, JavaOne, San Francisco, September 24, 2013
Demystifying InvokeDynamic, JavaOne, San Francisco, September 24, 2013
Taming Shared Mutability w/ STM, JavaOne, San Francisco, September 23, 2013
Compile time AST transformation, SpringOne2GX, Santa Clara, September 11, 2013
Exploring Groovy Annotations, SpringOne2GX, Santa Clara, September 10, 2013
Grails beyond the Hello World, GR8Conf, Minneapolis, July 22, 2013
Developing Offline Web Apps, NDC, Oslo, June, 2013
Workshop: JVM Concurrency, Software Arch. Summit, Berlin, June, 2013
Functional Programming in Groovy, GR8Conf, Copenhagen, May, 2013
Web Development with Grails Workshop, GR8Conf, Copenhagen, May, 2013
Concurrency without Pain in Pure Java, NFJS, Dallas, May, 2013
Server Side Programming with Javascript, GIDS, Bangalore, May, 2013
Asynchronous Programming on the .NET Platform, GIDS, Bangalore, May, 2013
Eloquent C#, GIDS, Bangalore, May, 2013
Succeeding With TDD: pragmatic mocking techniques, Private Event, Oslo, April, 2013
Picking a JVM Language, NFJS, NYC, April, 2013
Demystifying InvokeDynamic, NFJS, NYC, April, 2013
Benefits of TDD, Private Event, March, 2013
A Dozen Cool Things with Popular JVM Langs, 33degree, Warsaw, March, 2013
Programming with Lambda Expressions in Java, 33degree, Warsaw, March, 2013
Developing Offline Applications with HTML5, NFJS, Minneapolis, March, 2013
Understanding the 'NO' in NoSQL, NFJS, Minneapolis, March, 2013
Java 8 Languages Capabilities, DevNexus, Atlanta, February, 2013
Thinking & Programming Functional Style, Jfokus 2013, Stockholm, January, 2013
Html5 Animations, RichWeb Experience, Fort Lauderdale, FL, November, 2012
Options for Concurrency in Groovy, Spring2GX, Washington, D.C., October, 2012
Improving your Groovy code quality, Spring2GX, Washington, D.C., October, 2012
Design Patterns in Modern JVM Languages, JavaOne, San Francisco, September, 2012
Scala Tricks, JavaOne, San Francisco, September, 2012
Design Patterns in Groovy, JavaOne, San Francisco, September, 2012
The Good, Bad, and Ugly of Java Generics, JavaOne, San Francisco, September, 2012
Concurrency without Pain in Pure Java, JavaOne, San Francisco, September, 2012
Programming Concurrency with Akka, NFJS, Des Moines, August, 2012
Creaging DSLs with Groovy, Uberconf, Denver, June, 2012
HTML5 Workshop, Uberconf, Denver, June, 2012
Thinking in Functional Style in F# (and some C#), NDC-Oslo, June, 2012
Using Traits & Mixins in JVM Languages, NFJS, Dallas, May, 2012
Applying Groovy Closures for Fun & Productivity, NFJS, Dallas, May, 2012
Pragmatics of Agile Development, GIDS, Bangalore, April, 2012
CoffeeScript for Recovering JavaScript programmers, GIDS, Bangalore, April, 2012
Java 8 - Sneak Peek, GIDS, Bangalore, April, 2012
Evoloution of C# - departure from its roots, GIDS, Bangalore, April, 2012
How to approach Refactoring, ScanAgile, Helsinki, March, 2012
Taming Shared Mutability with STM, NFJS, Madison, Jan. 2012
Programming with Actors, NFJS, Madison, Jan. 2012
Programming HTML 5, NFJS, Madison, Jan. 2012
Programming with Netty, December 2011, RWX2011, Fort Lauderdale
Tail Call Optimization & Memoization, November 2011, BoulderJUG, Boulder
Functional Programming Workshop, November 2011, Sysart Hotspot, Helsinki
GPars Deep Dive, October 2011, Spring 2GX, Chicago
Design Patterns in Groovy, October 2011, Spring 2GX, Chicago
Options for Concurrency in Groovy, October 2011, Spring 2GX, Chicago
Integrating Groovy and JVM Langs, October 2011, Spring 2GX, Chicago
Testing JavaScript, September 2011, NFJS, Boston
Rediscovering JavaScript, September 2011, NFJS, Boston
Design Patterns in Modern JVM Langs, July 2011, Uberconf, Broomfield, CO
Hands on Scala Workshop, Uberconf, Broomfield, CO, July 2011
Workshop: Programming Concurrency, Uberconf, Broomfield, CO, July 2011
Scala for the intrigued, NFJS, New York, NY, June, 2011
Testing with Spock, NFJS, St. Louis, May 2011
Collections for Concurrency, NFJS, St. Louis, May, 2011
Towards a Humane Interface - Aesthetics and Usability, GIDS, Bangalore, Apr. 2011
JavaScript, GIDS, Bangalore, Apr. 2011
Programming HTML 5, GIDS, Bangalore, Apr. 2011
Design Patterns for .NET Programmers, GIDS, Bangalore, Apr. 2011
Programming Clojure, 33degree, Krakow, Apr. 2011
State of Scala, NFJS Boston, Mar. 2011
Testing with easyb, NFJS Boston, Mar. 2011
Concurrency without pain in pure Java, NFJS Madison, Feb. 2011
Integrating JVM Languages, NFJS Madison, Feb. 2011
TDD iPhone App - code sample, RichWebExperience, December 2010
Objective-C for Experienced Programmers, NFJS Reston, November, 2010
Functional Style in Groovy, Spring2GX, October, 2010
Improving Your Groovy Code Quality, Spring2GX, October, 2010
Unit and Functional Testing using Groovy, Spring2GX, October, 2010
Test Driving Multithreaded Code, NFJS, Des Moines, August, 2010
Essence of Functional Programming - Workshop, GIDS, Bangalore, March, 2010
F# - Functional Programming, GIDS, Bangalore, March, 2010
What's Brewing in Java, NFJS Boston, February, 2010
Testing with Dependencies, NFJS Boston, February, 2010
Transforming to Groovy, NFJS Milwaukee, January, 2010
How to approach Refactoring, Memphis JUG, January, 2010
Tackling Concurrency on the JVM, NFJS Boston, August, 2009
Effective Java, NFJS Phoenix, June, 2009
Functional Programming Workshop, Agile Bangalore, March, 2009
Fallacies of Agile Development, Agile Chennai, March, 2009
Programming Scala, CodeMash 2009, , 2009
Caring About Code Quality, NFJS Raleigh, NC, May, 2008
Towards an Evolutionary Design, Agile S/W Community Bangalore & Mumbai, April, 2008
Design Patterns in Java and Groovy, NFJS, Seattle, WA, March, 2008
Know Your Java?, NFJS, Milwaukee, WI, February, 2008
Testing With Groovy, 2GX Conference, Reston, VA, January, 2008
BDD in Java and Groovy, 2GX Conference, Reston, VA, January, 2008
Agile Web Development with Grail 0.6, Grails eXchange, London, September, 2007
Essence Of Agility, Private meeting in Finland, September, 2007
Domain Specific Languages, Boulder Java User Group, August, 2007
Functional Programming, NFJS Show, Des Moines, July, 2007
get FIT, NFJS Show, Omaha, February, 2007
Spring into Groovy, NFJS Show, Boston, February, 2007
OSGi - A Well Kept Secret, NFJS Show, Boston, February, 2007
Domain Driven Design, NFJS Show, Boston, February, 2007
Annotation Hammer, NFJS Show, Boston, February, 2007
Agile Web Development with Grails, NFJS Show, Boston, February, 2007
Essence of Agility, Houston .NET Users Group, TX, , 2007
Spring into Unit Testing, The Spring Experience, Hollywood, FL, November, 2006
AJAX For .NET Programmers, The AJAX Experience, Boston, MA, September, 2006
Get Groovier With Grails, No Fluff Just Stuff, Des Moines, IA, June, 2006
Ruby for .NET Programmers, Houston .NET Users Group, TX, May, 2006
Practices of an Agile Developer, Houston Java Users Group, TX, March, 2006
Open Source Tools for Agile Development, No Fluff Just Stuff, Austin, TX, June, 2006
Working with Rule Engines, Denver Java Users Group, CO, February, 2006
Refactoring Your Code - A Key Step To Agility, Houston Java Users Group, TX, January, 2006
Ruby: What's in it for you?, Presented at a Client Site, Houston, January, 2006
Groovy for Java Programmers, No Fluff Just Stuff, Calgary, AB, September, 2005
Agile Methodologies, No Fluff Just Stuff, Boston, MA, August, 2005
Java 5 Features: What's in it for you?, No Fluff Just Stuff, Boston, MA, August, 2005
Programming with Mock Objects, No Fluff Just Stuff, Chicago, IL, August, 2005
Agile Software Development, JavaMUG, Dallas, TX, July, 2005
Good, bad and ugly of Java Generics, Houston Java Users Group, TX, February, 2005
Unit Testing .NET Apps with NUnit and Mock Objects, No Fluff Just Stuff, St. Louis, MO, February, 2005
.NET Gotchas, HDNUG, Houston, TX, July, 2005
.NET 2.0 Language Features, No Fluff Just Stuff Symp., Milwaukee, WI, February, 2005
Taming .NET Multithreading, No Fluff Just Stuff Symp., Milwaukee, WI, February, 2005
Programming with Aspects, Gateway JUG, St. Louis, MO, February, 2005
Test Driven Development: Benefits and Pragmatics, Presented at a Client Site, Houston, , 2005
Test First Development, Western Canada SW Symp., Calgary, AB, October, 2004
Programming with Aspects, Connecticut OO Users Group, Hartford, July, 2004
Building Web Services with Axis, Java Users Group, Houston, June, 2004
Agile Software Development, Lone Star Software Symp. Austin, June, 2004
Java vs. .NET - an Objective Comparison, Presented at a Client Site, Houston, October, 2003
Advances in Web Services, Northern VA Software Symp., Arlington, VA, October, 2003
Prudent OO Development, Northern VA Software Symp., Arlington, VA, October, 2003
Programming with XSLT, Northern VA Software Symp., Arlington, VA, October, 2003
Aspect Oriented Programming, Northern VA Software Symp., Arlington, VA, October, 2003
Aspect Oriented Programming, Java Users Group, Houston, July, 2003
Java Web Services and Integration with .NET, Ohio Software Symposium, Cincinnati, June, 2003
Programming for Extensibility, Ohio Software Symposium, Cincinnati, June, 2003
C# for Java Programmers, Ohio Software Symposium, Cincinnati, June, 2003
Aspect Oriented Programming, ACM Houston/Clearlake Chapter, Houston, June, 2003
.NET Enterprise Services, .NET Users Group, Houston, May, 2003
C# for Java Programmers, Rocky Mtn. Software Symposium, Denver, April, 2003
Architecture and code behind .NET Web Services, .NET Users Group, Austin, May, 2002
Architecture and code behind .NET Web Services, .NET Users Group, Houston, April, 2002
Programming for extensiblity - what OO really provides?, Java Users Group, Houston, January, 2002
Application of XML in Software Development, CACPA, Houston, March, 2002
Programming for extensibility, Lone Star Software Symposium, Houston, May, 2002
Java Vs. .NET, ACM Houston/Clearlake Chapter, Houston, March, 2003
Features, Strengths & Weakness of Microsoft .NET, Science, Engg. & Tech. Symposium, Houston, June, 2002
Java Web Services and Integration with .NET, Lone Star Software Symposium, Dallas, October, 2002

Articles:
Effective implementation of equals method, May, 2002
Why Copying an Object is a terrible thing to do?, June, 2002
Interface Based Programming!, July, 2002
How to create/avoid memory leak in Java and .NET?, August, 2002
XML Serialization in .NET, , 2003
Custom Error Pages in ASP.NET, January, 2003
Strings in Java and .NET, February, 2003
Polymorphic Stored Procedure?, March, 2003
VS.NET Code Editing Tips and Tricks - 25 ways to improve Productivity, March, 2003
Servlets, JSP, Structs and MVC (Part I), May, 2003
Servlets, JSP, Struts and MVC (Part II), June, 2003
Transactions in .NET Enterprise Services, July, 2003
Immutable Objects, August, 2003
Cryptography in .NET, November, 2003
.NET Gotchas, January, 2004
Storing User Profile in .NET, January, 2004
Localizing your .NET Application, February, 2004
Introduction to Java Persistence using Hibernate, April, 2004
Custom Design Time UI in .NET, May, 2004
Decorator Pattern By Example, June, 2004
Test Driven Development - Part I: TFC, July, 2004
Test Driven Development - Part II: Mock Objects, August, 2004
Test Driven Development - Part III : Continuous Integration, September, 2004
Applying "On writing well" to coding, October, 2004
Dealing with Conflicting Interfaces: Part-I - Java, , 2005
Dealing with Conflicting Interfaces: Part-II - .NET, January, 2005
Generics in Java - Part I, February, 2005
Generics in Java - Part II, March, 2005
Generics in Java - Part III, April, 2005
Unit Testing C++ Code with CppUnit by Example, June, 2005
Java 5 Features - Part I, August, 2005
Java 5 Features - Part II, September, 2005
enums, November, 2005
Background Worker in .NET 2.0, , 2006
Being Agile without Going Overboard, January, 2006
Avoid that deja vu feeling, May, 2006
Annotation Hammer, June, 2006
Being Productive, August, 2007
Testing JavaScript, September, 2007
Scripting on the JVM-Part I, October, 2007
Scripting on the JVM-Part II, November, 2007
Learning site


Books