Concatenate, Compress, Cache

When trying to optimize the performance of your website, there are three main elements that should be on your top priority list. Three very easy-to-implement steps that can have a great impact on your website load time.

These three methods are named concatenation, compression and cache. I’ve already talked about them in a previous talk (in French), but we’ll now cover them in full detail.

Read more

Software Craftsmanship: a culture to pass on

Software CraftsmanshipThe Manifesto for Software Craftsmanship is subheaded Raising the bar.

Indeed, we believe that this is the main issue at stake behind this movement’s motivations. To create products that rock, you need to rely on people who know how to do it, enjoy it, and always strive to do it better.

It’s not just about introducing a few practices. It’s a genuine culture of development aiming at changing the mentalities, the team operations and the company.

But you can’t decree a change of culture. So how can one introduce the values of Craftsmanship into one’s company so that they become a standard instead of an isolated case?

Read more

Volatile packaging container with Docker

We’ve been discussing a lot about Docker as a mean to build and expose Web applications, here is another way to use it as a native distribution package building tool.

You want to product deb and rpm package for applications written in Ruby, Nodes.js, Python… These technologies usually rely on specific packaging tools which need internet to work (gem for Ruby, npm for Node.js, pip or easy_install for Python).

Having a compiling chain or an internet access on a production server is bad for security reason so you must use a specific server.

It’s difficult to maintain different compiling chains on a single server. You have to manage different versions of different kinds of technologies. Moreover, provisioning a server just for that need has a cost you can’t always afford.

The solution is to use container. One container embeds one compilation chain. Docker can help you for that.

An other difficulty concerns the production of the rpm and deb packages. Some tools exist to do it simply like the Opscode’s Omnibus framework.

Our example combine Docker and Opscode’s Omnibus framework.

Let’s dig into more details by building a Capistrano package as a DEB (for Ubuntu Precise) and as a RPM (for Centos 6). Capistrano is a CLI Ruby application with some gems as prerequisites.

Read more

N°1 betting operator in Europe lets you dive in an immersive horse race

What if you could race like a jockey ?

It is now possible with “LeTrot 360 Digital Immersion“, an immersive experience created by PMU (N°1 parimutual operator in Europe) and OCTO Technology!

On the 25th november, our team was proudly on stage during the “J-60 Grand Prix d’Amérique” Countdown Gala to provide guests an immersive horse racing experience using Oculus Rift virtual reality headset.

Read more

Web Scale IT (Or, The Patterns of the Giants of the Web) in Gartner’s Top 10 for 2015

Gartner’s long-awaited  Top 10 strategic technological trends  for 20151 have just been released this month and, for the second consecutive year2, one our most cherished topics at OCTO is prominently featured. In Gartner terminology, what we call the Practices of the  Giants of the Web 3, 4 becomes Web-Scale IT , and is inspired by “large cloud services firms5, 6. Here, we offer a brief overview of this trend for 2015. Read more

Get an instant access to up-to-date metrics at low cost

Bank’s current systems and issues

Today, Retail and Private Banks’ Core Banking System (CBS) and Portfolio Management System (PMS) are strong assets. They have matured over the years and are often a very solid basis for the rest of the satellite IT systems. They are used to efficiently manage the basic core banking data, like clients, portfolios, their security composition, the pending orders, the market transactions and so on. Portfolio-level and bank-level consolidated metrics however are often based on long running algorithms and are therefore executed either during end of day batches or on-demand, meaning users’ have to work with more or less outdated data or data that is long to get.

The issue is that in recent years, banking has seen several shifts:

  • An ever faster market (more actors, algorithmic trading, easier access to information)
  • A growing pressure on returns. Clients want reliability, while banks need to lower their margins due to competition
  • A complexification of the products to try and manage risks while meeting clients growing sophistication
  • The increasing regulatory pressure impacting margins, efficiency and attractiveness

Read more

The BAF method at OCTO

The BAF (“slap in the face” in French) is a self-improvement method widely used at OCTO Technology.

Whenever a consultant feels like he lacks perfection in any way, he may present his peers what he did, how he did it and why he did it this way. Then coworkers (associates, juniors, seniors and trainees) discuss the consultant’s work and evaluate it. Then they use the Perfection Game method to assess it on a scale from 1 to 10 (1=worthless, 10=perfect) while giving useful tips on how to improve his work quality. The exercise is not only about spotting errors, it can also be about how to formulate an idea, find a way to engage a crowd or how to better manage a team. The main goal is to share ideas and knowledge thus improving everyone through communication.

Like a code review, it can be harsh to be subjected to criticism or honest feedback. Everyone should understand that the main objective is to spread knowledge without hard feelings or frustration.

BAFs can be used for improving virtually everything (technology choices, interviewing methods, communication, programming dilemmas, roadmap planning, etc.) and OCTO people thrive on improving themselves. OCTO motto being  “There is a better way”, that could explain why it is so popular amongst us.

Two examples:

When writing a blog article:

-Hi fellow coworker, I just wrote a blog article about BAFs, do you mind BAFing it?   

-I give you a score of 8 out of 10. I found your written English somewhat OK, the subject is interesting, the recursion is kinda fun and you gave examples. You would have scored 10 if you:

  • double-checked typos, for example “felllow” line 17.
  • talked more about how companies can use these methods.

When doing a consulting mission:

As a consulting company, clients often come to us to evaluate their application architectures, methodologies or technical choices. We usually address this through a mission but recently one of our clients specifically asked for a BAF of their .Net application architecture

Three OCTO senior architects invited our client’s developers and architects for a day, so that they could present us their company, objectives and architectural choices. Then everyone:

  • discussed the reasoning behind the choices made until now (“You may or may not have made the right choice, but why did you do it?”)
  • talked about alternative solutions (“Did you even consider this framework? If yes why did you refuse to use it?”)
  • drawn several architectural diagrams and discussed their pros and cons
  • read examples of code, considered their maintainability

After a full day of work, the ROTI ¹ revealed an overall score of 5 without rounding! This great recognition was then confirmed by feedback received soon after by email: “We were impressed with your performance. The technical expertise, pedagogy and methodology were perfect.”

 

These are two examples of BAFs that you can use everyday in your company or project team and feel free to expand it to whatever fields you need to improve.

 

¹: ROTI, Return On Time Invested: every participants in the event evaluates on a scale from 1 to 5 the value of the event that brought them in regards to time spent. 1=the event was a total waste of time, 5=couldn’t have spent my time better