What makes a 10X Software Engineer? (Inaugural Address)

Software Engineering is about much more than coding. There are engineers that are solicited by everyone for their projects, teams and even companies. The mythical 10x engineers. What makes these engineers special? Is it their algorithmic prowess, knowledge of programming languages, communication skills, quality of code or something else? Having had the pleasure of working with (and working for) few of the best engineers in the world, I will talk about what makes a “rockstar” software engineer.
Continue reading “What makes a 10X Software Engineer? (Inaugural Address)” »

JavaFX Rich Client Platform

Most client applications today are browser based and use HTML CSS Javascript. However we often find that these applications lack the richness of native desktop applications. Can Java reload desktop application like rich interfaces while also providing modern features & capabilities? Is JavaFX the answer?

This session will deep dive into JavaFX starting with a look at the history of JavaFX before and after Oracle acquisition.It will look at the features and benefits of JavaFX,  what is FXML and SceneBuilder and using  JavaFX with other languages. Continue reading “JavaFX Rich Client Platform” »

Analysing large scale data with Apache Hadoop

Apache Hadoop is a Java framework for large-scale distributed batch processing infrastructure which runs on commodity hardware. The biggest advantage is the ability to scale to hundreds or thousands of computers. Hadoop is designed to efficiently distribute and handle large amounts of work across a set of machines. Continue reading “Analysing large scale data with Apache Hadoop” »

Behavior-driven development (BDD) with Cucumber

Behavior-driven development (BDD) is an agile software development technique which enables close collaboration between developers, testers and Product Owners. With TDD we make sure that the code is right, however many times we fail to ensure if the code is doing the right thing. BDD tries to ensure that the code written is doing the right thing as per the Product Owner’s specification. Continue reading “Behavior-driven development (BDD) with Cucumber” »

From Web To Mobile Application Development

With over 25 million activation in the holiday season of 2011 alone it is hard to ignore mobile application development now. Every organization, even large enterprises are looking to build small useful mobile applications for their employees on the go. This presents a huge opportunity as well as a challenge for the web / desktop application developer who now faces the dilemma of learning a highly fragmented developer space. Continue reading “From Web To Mobile Application Development” »

Offline HTML5 Applications

This session will look at What are Offline Html5 Applications?, What are the benefits?, Scope of this technology (what all we can do with this) and how it will change the way we develop web based applications and even portals.

We will be wrapping up with some common day examples demonstrating the use of HTML5 offline storage. We will also provide the insight of how these examples work and what we have done to achieve them, this will help them a better understanding of how things are done in such application design. Continue reading “Offline HTML5 Applications” »

JAX-RS 2.0: RESTful Web services on steroids

JAX-RS 1.X has been a hugely successful Java API for RESTful services development and a lot of real-world experience has resulted in a number of new features being proposed. JSR 339 was created with the objective of exploring and scoping all these proposals. The purpose of this talk is to elaborate on all the new planned features.

The most commonly requested feature for JAX-RS 2.0 is a client API. Client APIs can range from low-level, just above HttpURLConnection, to high-level, often including support for IoC and hyperlinking. Other features that will be covered in this presentation include: asynchronous processing, hypermedia, validation, interceptors, improved content negotiation, as well as better integration with other specifications such as JSR 330.
Continue reading “JAX-RS 2.0: RESTful Web services on steroids” »

The Java EE 7 Platform: Developing for the Cloud

This talk introduces the Java EE 7 platform, the latest revision of the Java platform for the enterprise. The focus of Java EE 7 is on the cloud, and specifically it aims to bring Platform-as-a-Service providers and application developers together so that portable applications can be deployed on any cloud infrastructure and reap all its benefits in terms of scalability, elasticity, multitenancy, etc. The existing specifications in the platform such as JPA, Servlets, EJB, and others will be updated to meet these requirements. Continue reading “The Java EE 7 Platform: Developing for the Cloud” »

UnConference

UnConference is a participant-driven session for short, open discussions on various topics of interest to delegates. A delegate can present a question / make a point in a couple of minutes followed by an open discussion where speakers as well as others from the assembly contribute their views.

The Unconference has been working very well at IndicThreads Conferences, helping delegates crowd source opinions & answers on various topics of intrigue & interest.

The topics for the UnConference are decided via listings on a white board at the venue.

Node.js : A web developer’s journey

I would like to share my experiences and learning while rewriting framework of UrbanTouch.com, one of the leading player in on-line beauty sector in India. UrbanTouch platform was originally written using Magento, an open source based ecommerce web application built using Zend Framework.

To provide support to growing user base with a scalable Internet application , we are rewriting the site in Node.js , which is based on event-driven I/O programming model that uses Server Side JavaScript on a VM that is incredibly fast (V8).

Javascript, despite its oddities can be a great language to code in. Session will be about my learnings on Why Node.js and how to effectively use Node.js in production.
Continue reading “Node.js : A web developer’s journey” »

Redis – Memory is the new Disk

Redis is an advanced in memory key-value store designed for a world where “Memory is the new disk and disk is the new tape”. Redis has some unique properties — like blazing read and write speed, rich atomic operations and asynchronous persistence — which make it ideally suited for a number of situations. This talk will introduce Redis and discuss its common usage patterns. Continue reading “Redis – Memory is the new Disk” »

NoSQL Databases : Origin and Fundamentals

With the growing data volumes NoSQL solutions have become popular in last few years. This session will explore the evolution of NoSQL databases from regular relational database based architectures.

Fundamentals of NoSQL systems will be discussed taking examples from the current implementations of the NoSQL implementations like Redis/Cassandra/neo4j. NoSQL system diverge from the relational model by making certain assumptions or relaxing ACID requirements or make use of sophisticated algorithms to solve a particular problem. NoSQL gives you a scalable option for your specific problem. Continue reading “NoSQL Databases : Origin and Fundamentals” »

GPars: Solution For Common Concurrency Problems

Computers of current era are shipped with 4,8 or 16 processor cores. However writing multi-threaded code to leverage full power of multi-processor systems has always been a challenging task. Java does provide APIs for writing multi-threaded code, but developer has to deal with low-level concurrency primitives like threads, locks or synchronized blocks which makes the task very difficult and error prone.

GPars is an open-source concurrency and parallelism library for Java and Groovy that gives number of high-level abstractions for writing concurrent and parallel code. In this session I am going to discuss concepts like map/reduce, fork/join, asynchronous closures, actors, agents ,dataflow and others which makes Java/Groovy code concurrent and/or parallel with little effort. Continue reading “GPars: Solution For Common Concurrency Problems” »

Meta-programming with AST Tranformations in Groovy

Have you ever come across a situation where you want to auto inject a common method or field at compile time to set of classes? AST Transformations is the solution.

AST Transformations provide a wonderful way of manipulating code at compile time via modifications in Abstract Syntax Tree. AST Transformations provides Groovy with improved compile-time meta programming capabilities allowing powerful flexibility at the language level, without a runtime performance penalty. Continue reading “Meta-programming with AST Tranformations in Groovy” »

Crawling the web, Harnessing the power of Nutch with Scala

Nutch is a very powerful, open source webcrawler written in Java. Apache Nutch can run very large crawls in parallel, downloading, indexing, and archiving millions of pages. In this talk we understand key architectural details about Nutch. We would see how it is easy to extend the Nutch behavior with Scala plugins. Continue reading “Crawling the web, Harnessing the power of Nutch with Scala” »

Architectural Guidelines for SaaS Products

In simple words, do’s and don’ts for developing SaaS products which could range a Facebook application to Enterprise ERP systems.
The key areas of discussion:

  1. Optimization: when to optimize and why it is important even for Cloud Computing. Optimization types and when to optimize for what depending on the end goal
  2. Scalability: Why it is important and how can you achieve linear scalability
  3. Design: How to stop over-designing and over-architecting and design just the right amount
  4. Quality: Why quality is important and what can you do to gain maximum ROI on Quality Continue reading “Architectural Guidelines for SaaS Products” »

Machine Learning – What, Where and How-To

Every company irrespective of it’s size or domain is keen to analyse the patterns of their existing and prospective customers for offering them suitable products/services. With the deluge of huge and ever-increasing data along with multitude of options to reach out to customers, it’s increasingly getting difficult for organizations to improve the lead-quality of their marketing channels. In this talk, I will talk about relatively new (in Industrial sense) but fast growing field of Machine Learning. Continue reading “Machine Learning – What, Where and How-To” »

Building Massively Scalable Applications with Akka

Historically writing correct concurrent, scalable and fault-tolerant applications has been very hard. Akka is an attempt to simplify writing concurrent, scalable and highly available software for the JVM. Akka has an API both for Scala and Java. Akka uses the Actor Model together with Software Transactional Memory (STM) to raise the abstraction level. For fault-tolerance it adopts the “Let it crash” model which help in building self healing always on systems. Continue reading “Building Massively Scalable Applications with Akka” »