JSFoo 2014

JavaScript as the centerpiece of a complex web stack

In 2011, Node.js put JavaScript firmly in the backend, making JavaScript developers productive at both ends of the stack, and making it possible for business logic to finally be moved into JavaScript.

In 2012, AngularJS made us think about moving business logic completely into the client-side as an actually sensible idea. Meteor give that idea two thumbs up.

In 2013, we went wild thinking of all the possibilities. JavaScript phones! Robots!

In 2014, it’s time for some sobering up. The backends we built over a decade in Ruby and Python aren’t going away. New languages like Go and Hack are tantalising us with new possibilities. Our applications are increasingly distributed, often involving third party APIs. In such a scenario, where does your business logic reside?

In 2014, JavaScript is no longer a toothless child or a rebellious teenager that wants to do everything itself. JSFoo 2014 is about working with JavaScript as the centerpiece of a complex web stack.


This year’s edition spans four days, with two days of workshops and two days of conference. All days feature a single track. We invite proposals for:

  • Full-length 40 minute talks
  • A crisp 15-minute presentation
  • Sponsored sessions, 40 minute duration
  • Flash talks of 5 minutes duration. Submissions for flash talks will be accepted during the event
  • Three hour workshops where everybody gets their laptop out and follows along

Criteria to submit

You must be a practising web developer or designer, and must be able to show how your own work has advanced the state of the web in the past year. You are expected to present original work that your peers — this event’s audience — recognise as being notable enough to deserve a stage.

If you are excited about someone’s work and believe it deserves wider recognition, we recommend you contact them and ask them to submit a proposal.

Selection Process

Voting is open to attendees who have purchased event tickets. If there is a proposal you find notable, please vote for it and leave a comment to initiate discussions. Your vote will be reflected immediately, but will be counted towards selections only if you purchase a ticket.

Proposers must submit presentation drafts as part of the selection process to ensure that the talk is in line with the original proposal, and to help the editorial panel build a strong line-up for the event.

There is only one speaker per session. Entry is free for selected speakers. HasGeek will cover your travel to and accommodation in Bangalore from anywhere in the world for speakers delivering full sessions (30 minutes or longer). As our budget is limited, we will prefer speakers from locations closer home, but will do our best to cover for anyone exceptional. If you are able to raise support for your trip, we will count that as speaker travel sponsorship.

If your proposal is not accepted, you can buy a ticket at the same rate as was available on the day you proposed. We’ll send you a code.

Commitment to Open Source

HasGeek believes in open source as the binding force of our community. If you are describing a codebase for developers to work with, we’d like it to be available under a permissive open source license. If your software is commercially licensed or available under a combination of commercial and restrictive open source licenses (such as the various forms of the GPL), please consider picking up a sponsorship. We recognize that there are valid reasons for commercial licensing, but ask that you support us in return for giving you an audience. Your session will be marked on the schedule as a sponsored session.

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more

Praveen Selvam


How We Scaled Front End Development - Practical Lessons on Scaling JS Apps

Submitted Aug 8, 2014

Every few days, a cool new library makes its way into the world of front end development. While every library has something interesting to offer, the practical question every front end developer has to answer is how well it weaves into the JS stack used by the existing apps. To add to it, the continuous evolution of these libraries only complicates the problem further. The past year saw an extensive growth in the space of what we call “Front End Ops”, where tools such as Gulp, Bower, Yeoman, etc. have been key in moving a lot of automated work into JS, that previously used to be solved using Ruby, Python, or similar scripting solutions.

In this talk, I will use our startup story as a backbone to elicit the various techniques, principles and strategies we used to conceptualize, build, and ship our JS apps. Of course, the challenges are included as well!


Indix is a product intelligence platform. Our catalog has millions of products and billions of price points collected from thousands of e-commerce websites, and it is constantly growing. We help brands and retailers make decisions that are backed by this enormous source of organized data. Our apps are powered with high performance visualizations and product search techniques that help users discover products in the market, personalize what they need and make decisions efficiently using this live source of product intelligence.

We spent our first year building and scrapping prototypes from scratch. We used plain vanilla jQuery and Google Charts with the play framework to leverage on the ability to change things quickly over writing organized code that would scale. Once we had a prototype that had the ideas flowing in the right direction, our challenge was to convert the code that we had into something that was production-ready and worth selling.

Over the course of second year, we introduced a new set of technologies such as Twitter Bootstrap, Backbone, Require.js, Highcharts, Jasmine, etc. backed up by Ruby on Rails. The challenge was for us to transition to the new technology choices without causing disruptions for customers that were using the app. At this stage, experimenting with newer features on production code that were used by our customers became our newest challenge, which we solved by using different development techniques.

As we moved into our third year, we started developing more apps in parallel. At this stage, the introduction of Real Time User Monitoring and other productivity tools helped us automate a lot of these things, so we had the time to go tackle a fresh set of challenges!

In this talk, we will share our practical learnings about:

  • JS technology choices that we made in this vast arena of solutions, why we chose them and how they mattered
  • Engineering principles that helped move our existing apps to newer JS technologies with minimal disruptions
  • Techniques like feature flags, to build features in different stages of development, all in parallel and on the same code base
  • Front End Ops productivity hacks to tackle the ever growing front end solutions space that will minimize the time spent on redundant engineering activities

Speaker bio

Praveen Selvam is the Director of Design Engineering at Indix, where he leads product design and development. He is both an artist and engineer by nature and uses his skills to create beautiful software that is simple to use, no matter how complex it is from a technical standpoint. He understands users to start with, and designs interfaces that are simple and useful. He also helps engineering teams build high performance software that scales, and ships on time.

Prior to Indix, he was a Front End Developer and UX Designer at ThoughtWorks, where he helped solve design challenges for various people across different ethnic origins and cultures.

Praveen is also a professional photographer. His journey started as a travel blogger. Then one thing led to another and now he enjoys motorbikes, photography, dancing and music remixing. In his spare time, he is learning to drum. He is also the national champion of the first edition of the “True Wanderers” contest organized by Wrangler.


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more