Using Ruby I've had the opportunity to participate in a wide range of projects: from working with the CERN to building a financial calculator for energy related commodities or use Cassandra and Kafka for processing cybersecurity related information.
My latest project: building tools for a global Customer Support.
I joined Klarna in February 2015 to build the customer support web interface. We were a team of three developers plus a designer and grew up to 10 people before the end of the year. Our task was to develop an application to fetch and merge information from several microservices and then present available actions to the Customer Support advisor.
The stack
The application is split into a Ruby on Rails REST API plus a Javascript frontend built with Ember. Behind the scenes, the Rails app is an stateless proxy connected to a dozen of other services (transactions log, order management, LDAP, risk tools) and the Ember part is a Single Page App beautifully crafted to make it easy to work with it. Before the end of 2015 we included in our stack an Elasticsearch cluster in order to speed up the search of customer information.
Both Ruby and Javascript codebases have a thorough test coverage at different levels (unit, functional, integration) and are deployed following the principles of Continuous Integration and Continuous Delivery. While our test suite requires around 6 minutes to run, we improved our deployment pipeline to be able to release a new version in less than a minute after the tests are green. Thanks to that speed, we're releasing an average of 25 new features per week.
Some numbers
- Elasticsearch: 10M documents, aprox 10Gb of data (by March 2016).
- Test suite: 99,7% coverage, 6 minutes to run.
- Uptime: 100% during working hours.
More projects
You might find more information at my Curriculum Vitae .