Innovation is in our DNA. We constantly explore new options.
Our R&D focuses on disruptive Open Source technologies and practices. Once mature, we integrate these tools into our client projects, enabling our R&D team to move on to the next innovation – to benefit from the latest and greatest technologies.
We combine this expertise with our user-centered design approach to create memorable experiences and services. We integrate UX into everything we do and on the entire lifecycle of a project – it starts at the strategy level all the way through to the user interface and development support.
Our UX Approach
Our User eXperience design process is based on the design thinking one: Four phases (discovery, definition, ideation, iteration) alternate between periods of research and imagination, and periods of selection, prototyping and testing.
-
the discovery phase consists of getting to know and understand the users in order to identify the opportunities (the problems to resolve) and outline the strategy.
-
The definition phase precisely determines the scope of the project from the elements of the discovery phase. One of the best way is to determine the system or service that constitutes the system’s added value, and the scale of priorities of other features.
-
The more possible solutions to a problem, the higher the chances of finding the best one. The ideation phase consists of generating as many drafts, sketches or stories as possible in a collaborative mode.
-
The iteration phase is a prototyping phase for testing the selected solutions to reach the final version.
+ Our UX Tools
Our typical UX deliverables include:
Shadowing & Fly on the wall
Those techniques consist in following someone during a targeted activity or observing what's goin on at a precise location and writing down the issues faced and solutions found, feelings shown... to gain real-life insights on users' actions, habits and decision patterns.
Tests RITE
The "Rapid Iterative Testing and Evaluation" (RITE) method consists in realizing usability testing on interface prototypes and modifying them whenever relevant observations are made, a process repeted during several successive iterations.
User Testing
User tests are established on the basis of usage scenarios. A session brings together 6 to 10 participants, recruited in accordance with the segment profiles. The tests result in a document of reporting and recommendations on all the aspects of the system, to make the final adjustments.

Personas
A persona is an archetypal portrayal of a user, acting as a guide throughout the process. It is used to accurately identify and understand customer needs and desires.

Business Model Canvas
The Business Model Canvas (BMC) allows to represent synthetically and visually the changes brought by the design of the system within the organization as well as the new value creation.

Alignment Diagrams
An alignment diagram synthesizes the behavior, actions, thoughts and feelings of the user compared to the existing offering. This deliverable can uncover the shortfalls and opportunities, and provides the basis for the definition phase that sets the project scope.

Card Sorting
Understanding how users think about content and information organization to make intuitive classification and tree structure diagrams.

Wireframes
Wireframes are wired diagrams of screens. First represented as sketches (low definition), they're refined to present the content of the pages and the position of each element (high fidelity). They allow to visualize and assess the organization of the pages, and are tested and adjusted before being used in graphic design.

Taskflows
Taskflows (or flow charts) model the interaction of a user with the system. Developed during the ideation phase, they illustrate how the system will work.

Site Maps
Site Maps formalize the way the system is structured and the information organized. They are derived from the results of card sorting sessions and foreshadow, in part, the navigation systems.
High Tech
Our developers are polyglots. For every project, we choose a consistent set of technologies and tools to ensure its success, reduce cost and time-to-market, and deliver big on scalability. But of course, as every tech company, we have our favorite technologies that we fully master.
+ Back
Ruby
Ruby is our choice-of-heart programming language. It allows for creating easy to maintain applications and libraries, and makes teamwork on big projects easy. And when it comes to doing “Quick & Clean” development, it’s second to none!
We have an in-depth knowledge of its environment – for web with Ruby on Rails and Sinatra, real-time APIs with Goliath, or building workers with Celluloid. Mostly, we know that system performance relies on its architecture – and Ruby makes creating simple, modern, consistent, and highly efficient architectures easier.
Ruby on Rails
Rails is probably the most productive Open Source framework on the market, allowing us to deliver complex applications in the shortest possible timeframe. We particularly love its rich ecosystem and commitment to modern practices such as quality-driven development. Our extensive experience with Rails dates back to 2007, before it even reached version 1.0.
Go
Though C is sometimes needed for performance purposes, it is not a productive language, especially when it comes to handling complex concurrency issues. Go, on the other hand, allows finding the perfect balance between performance and development productivity for such issues. Though young, Go, developed and supported by Google, offers strong guarantees regarding its development in the long run.
Node.JS
We started using Node.js for internal projects since its first release back in 2009, and for client projects since 2011. This event-driven, asynchronous input/output engine is designed for building highly scalable applications. In addition, it’s particularly well suited for IO Bound issues, such as proxies or front APIs.
+ Front
HTML5 & CSS3
We’re passionate advocates of web standards and follow closely the latest versions of HTML and CSS. Videos, animations, beautiful fonts in a browser, access on desktops, mobiles and tablets. And more. It’s the present!
We know how to choose the already supported features and prepare the ground for the upcoming ones. This is how we’ve successfully created “full web” applications for large-scale projects, where almost all of the existing applications use heavyweight clients – we can’t disclose them publicly, but feel free to drop us a line if you want to hear more.
JavaScript
The last few years have seen the rebirth of JavaScript as a general-purpose programming language. We’ve been doing structured development with JavaScript for many years. Of course, we use it extensively on the client side, but also on the server side with Node.js as an application server or with CouchDB/MongoDB for expressing database queries. And to guarantee the high quality of our JavaScript code, we use several tools like Grunt, an automated task runner, or Bower, a powerful package manager.
Backbone.js
The complexity level of applications running in browsers is constantly increasing. It’s thus becoming necessary to treat browser-side JavaScript like any other software development project – an application. Backbone is our favorite client-side JavaScript framework. It allows us to nicely structure easy-to-test code and update it, while maintaining good performance. Plus, it makes developing applications that have to work in offline mode much easier.
Besides frameworks, efficient libraries are also needed to develop applications. d3 is a superb library for data visualization, manipulation and representation. When we need to render nice graphs in a browser, it’s our ultimate choice.
Frameworks CSS, SASS and Bootstrap
Just like for everything we do, we believe CSS is true code. To be upgradeable, it has to be structured and of high-quality. We use several frameworks, as well as CSS preprocessors such as SASS, to remove code redundancies. We also often use Bootstrap, a CSS/JavaScript framework created by Twitter engineers, to start projects quickly or offer default administration templates.
+ Architecture
Asynchronous
We’ve developed a comprehensive experience in building scalable, asynchronous architectures for high-traffic applications. We often use message queuing tools such as Resque, Sidekiq, RabbitQM and 0MQ, as well as asynchronous frameworks like Node.js, Goliath or Celluloid. We have a deep knowledge of the challenges brought by these technologies, in terms of testing, debugging, error handling, and reliability.
NoSQL
NoSQL is a generic term for the family of non-relational databases that constitute either general-purpose databases offering increased scalability, flexibility and performance, or databases serving highly specialized use cases.
Of this large family, there are three solutions we use the most: Redis, MongoDB and Elasticsearch. We’ve also worked with Neo4J (for graph-related stuff), CouchDB and Sphinx. That said, we’re not ideologists: when a project requires it, we use relational databases like MySQL or PostgreSQL - we've been implementing them on large-scale deployments for years.