Architecting a Modern Web App

Track: HTML5
Skill Level: Intermediate
Room: Room A311
Time Slot: Tue 2/16, 2:30 PM
Tags: web , javascript , html5
Abstract

At the beginning, web applications were nothing more than static web sites. As the web quickly evolved, we watched web applications become smarter and more robust, taking advantage of dynamically served content and programming languages on the server.

During this time, a web application would be the only interface into your infrastructure. Your customers would interact with the application and it would make full page requests at every turn. We eventually started sprinkling in ajax calls, but at the core, the architecture of a web app hadn’t changed much. When mobile devices became commonplace, the interface landscape changed a bit. We created the need for supporting a new client that had to interface with our primary web application.

Now that we have client frameworks like Ember, we can start separating our concerns and treating our web applications as interfaces independent of their backend. On the flip side, we have started evolving the backend of our web apps into agnostic APIs and services that serve any type of interface, be it web, mobile, or the next big platform.

In this talk, I’ll show you how we do just that at Heroku. From our completely static web front end talking to multiple back-end services over CORS, to the centralized identity server that ties it all together. It works great for us, and it just might be the thing that revolutionizes your product too.

James Martinez

James is a Senior Web Engineer at Heroku with passion for both front end web engineering and entrepreneurship. At Heroku, James works on the Human Interface Team to develop and maintain the Heroku Dashboard while also implementing front end solutions and practices for other Heroku web properties.

James has been professionally developing in languages such as Ruby, Javascript, HTML, and CSS. His frameworks of choice are Rails and Ember. With a deep respect for craftsmanship, and a penchant for using code to solve problems, James actively explores new technology. Though professional development takes up most of his time, tinkering with anything code related from systems programming to game development is not out of the question. Armed with his interest in Ember, he created the Ember meet up group in Columbus and has been a proponent in the development community.

James also has a passion for music and skydiving. He passes free time by traveling and jumping out of planes.