Scalingo is a french hosting start-up. Their product is called a Platform-as-a-Service (PaaS): developers and companies don't have to manage or monitor the servers themselves, this work is done by the team at Scalingo. This way, users can focus on their applications on products.
The service is similar to Heroku in how you use it, but the underlying technologies are not the same. Scalingo also uses european datacenters, making it legally safe for european companies to host their applications.
I knew Yann (CEO of Scalingo) and Leo (CTO of Scalingo) from my time at Novelys, where I have worked with both of them. I knew they were using Ember.js for the Scalingo dashboard and that they could use some help to keep it up to date, so I started working with them at the beginning of April 2014.
The dashboard was working correctly in itself, but it was starting to accumulate what is called "technical debt": the version of ember.js used was several months behind the latest stable one, and the community around ember.js had since come up with conventions and best practices that had not made their way into the dashboard yet. Both of those things were slowly starting to make it harder to maintain and upgrade the application, so my goal was to catch up on those fronts.
First, I started laying down what needed to be done and the steps to get there as well as explaining why those steps were necessary. Slowly but surely, as the application was refactored, the code started looked cleaner and was more terse. Since I documented all my work and why I was doing it, Leo was able pretty quickly to get on board with the refactoring himself.
After a while, the refactoring was completed and the dashboard was running on the latest version of Ember with no issue. Some bugs were found and fixed in the process, including the authentication system that had some troubles.
The next step consisted in migrating the application (made with ) to ember-cli, which had become the official way of making ember.js projects. While this does not directly affect how the users are using the dashboard, this part is critical: using ember-cli allows developers to benefit from third-party libraries as well as receiving ember.js updates quicker. And since it imposes a common structure to all ember.js projects, when a new developer joins scalingo he will be up and running in no time.
Once again, I started with a list of steps that needed to be done to perform the migration. This work is actually ongoing but should be finished soon.
Before my work was completed, the application was already easier to work with: Leo was able to develop a new feature pretty quickly while I was finishing the refactoring, and did so in a future-proof way too. In the end, the work done here laid stable foundations for the foreseeable future.