How We Scaled Front End Development - Practical Lessons on Scaling JS Apps
Submitted by Praveen Selvam (@praveenselvam) on Friday, 8 August 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
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.