Raju Gandhi

Java/Ruby Developer/Language Geek

Raju Gandhi is a Java/Ruby developer and a programming language geek. He has been writing software for the better part of a decade in several industries including education, finance, construction and the manufacturing sector. Raju has a graduate degree in Industrial Engineering from Ohio University. In his spare time you will find Raju reading, or watching movies, or playing with yet another programming language. He is affectionately known as looselytyped on Twitter.



Presentations

EAI: Lucid dialogues within the enterprise

The enterprise today consists of tens, if not hundreds of applications, all designed to meet the needs of the business. These applications rarely live in a silo, and often there is a need to establish a communication protocol between these applications.

There are various approaches to integration, and in this talk we will discuss the pros and cons of each. We will then focus on one particular approach, and solution - Spring Integration brought to us by the folks at Spring Source. We will talk about both inter and intra application integration, and look at some of the ways we can leverage Spring Integration within the enterprise

On Prototypal Inheritance

You are a JavaScript developer who has gotten past writing one-off scripts on pages and wants to leverage the true power of the language. You have tasted the power of objects, and inheritance in Java, and hope to put the same to work for you in JavaScript.

This talk will aim to explain how inheritance works in JavaScript, albeit in the prototypal world rather than the "class"ical world. We will see how to create your own inheritance trees, and create instances that are born with a predefined set of behaviors.

Web Application Design from a Developer's perspective

Poorly designed web applications fail to serve both the business and the users, leading to a unnecessary costs, and frustrated customers. By keeping the user in mind, and following a few simple guidelines, you can make huge leaps in the way your users interact with your applications.

In this session, we will focus on the enterprise - where the user-base is known and fairly consistent, but typically where user interface and interaction are not the top most priorities. We will discuss some rules for good design, look at a few simple design elements that can make your web apps shine, and your users rejoice.

Dive into D3.js

A picture is indeed a thousand words. Often, your users are better served if they are offered a visual representation of data than reams and reams of tables. Most JavaScript graphing libraries offer a DSL to create graphs, but can prove to be constricting if you are attempting to do something outside the original intent. D3.js, instead offers you an API to work with "data documents" - with powerful data manipulation capabilities, and visualization components. Furthermore, it leverages SVG rather than the Canvas element, allowing you to unleash the full power of CSS3 to style your latest creation.

In this session we will take a dive in D3. We will look into how D3 offers no new constructs for visualization, but rather lets you leverage well known web standard technologies such as HTML and CSS. We will see how to "think in joins", and use D3 along with SVG to create a animated bar chart.

Once you understand how D3 works, and how to use D3's APIs to create and manipulate the DOM, along with scales and axes you will be well on your way to creating your first visualization.

Get things DONE!

Find yourself overwhelmed with hundreds of to-dos? Is your hard-drive littered with dozens of killer ideas that you started with enthusiasm and then just fizzled away? Do you feel like you are moving as fast as can but only getting to the wrong place quicker? Well perhaps this session will help.

There are various techniques and strategies available to us today that aim to help with exactly this conundrum - from Getting Things Done (TM) to Personal Kanban. Unfortunately it is often easy to be extremely productive using these systems, but not very effective. After all, it's not about getting things done, but getting the RIGHT things done. In this talk we will discuss not only how to get things done, but also attempt to figure out what it is you actually need to be doing.

In this session, I will attempt to show you how you can leverage various strategies to be more effective, knock to-dos out and have fun while doing it. If time permits we will close with an overview of the tools that are available to you, and how you can use these to become a to-do list ninja :)

Learning to Learn

In this session we will look to see how we can refactor our learning - what tools, and methodologies can we use to help us learn quicker and better - how we can create a store that gives us quick access to information when we really need it.

We all work in an industry in which not only do the tools that we use change ever few years, but one in which we have to shift the very paradigms these tools are built on! Even the most trivial of projects entails tens of different toolkits, frameworks, and languages coming together, and somehow we need to know how to leverage each one. How does one keep up? Despite all our years in schools, and our in-born nature to learn, we often are never taught how to learn. How can we learn faster, and retain even more?

In this session we will take a look at various tools and techniques available to us and see how we can make our learning effective.

JavaScript Patterns

In this session we will look at some JavaScript patterns, and how you can use them within your code.

No longer can you think of JavaScript as a kiddie-scripting language. JavaScript has now been promoted to a first-class citizen within your application - and with this, comes the need to think of better abstractions, code re-use - even thinking of establishing a common vocabulary to discuss approaches to writing better, cleaner and ultimately more maintainable JavaScript code.

Rich Web Apps with Angular

In this session, we will take a look at Angular - a new MVC framework by Google. We will discuss some of the terminology that Angular offers, and see how we can use that to develop highly interactive, dynamic web applications.

Angular is a new JavaScript framework from Google. If you are looking into developing rich web applications, Angular is your friend. Angular embraces HTML and CSS, allowing you to extend HTML towards your application, and uses plain JavaScript which makes your code easy to reuse, and test.

Gittin' Git

Git, at it's core, leverages a relatively simple data structure to maintain history. In this session we will take a look at this data-structure, which in turn will give us a better view of how Git manages history, and how better to work with it.

Git has fast emerged as one of the leaders in DVCS. Git may seem arcane, but under the covers, leverages a very simple data-struture to store your version history. As developers, it has always serves us well to know how things fundamentally work, and Git is no different. In this talk we will explore this data-structure, and how the various commands you invoke against Git mutate it.


Raju's NFJS Schedule

Minneapolis, MN
Mar 8 - 10, 2013

Boston, MA
Mar 15 - 17, 2013

Reston, VA
Apr 19 - 21, 2013

Columbus, OH
Jun 7 - 9, 2013

Austin, TX
Jun 28 - 30, 2013

Denver, CO
Jul 16 - 19, 2013

Columbia, MD
Jul 26 - 27, 2013

Raleigh, NC
Aug 23 - 25, 2013