Loic Ginoux, freelance it engineer

Développeur freelance Ruby on Rails & Javascript.

Je suis Loïc Ginoux, ingénieur avec +7 ans d'expérience, spécialisé sur les applications web et mobiles.

Voir mon portfolio

Applications et projets récents.

Je vous explique en détail mes différents projets, les technologies utilisées et les challenges rencontrés.
alerti intro

Alerti

Une solution de veille et d'analyse des médias sociaux qui avait besoin d'une architecture plus performante et évolutive.

ktc intro

Kiffe tes courses

Un site de comparaison de panier de courses sur les différents sites de supermarché qui permet de trouver le panier le moins cher et de passer commande.

tilkee intro

Tilkee

Sécurisation de l'API Tilkee avec le protocole Oauth2.0 et authentification via les réseaux sociaux tels que Google, Linkedin et Facebook.

foodrubix intro

FoodRubix

Un journal de bord pour traquer ce que l'on mange, pouvoir analyser et partager autour de son régime.

Alerti est une solution de veille et d'analyse des médias sociaux pour les personnes voulant contrôler et analyser ce qui ce dit en ligne selon les sources et certains mots clés.

L'application est basée sur le framework Ruby on Rails, et le coeur de l'application est un système de crawlers qui va récupérer les données sur différentes sources et API. Alerti a fait appel à mes services pour améliorer ce système de crawling qui n'était plus assez performant pour leur base d'utilisateur en expansion.

Ma mission consistait à faire de ce système, un algorithme qui soit scalable et qui fonctionne plus rapidement, pour que Alerti puisse continuer à augmenter sa base d'utilisateur sans avoir de baisses de régime et de ralentissement. La première phase était une phase d'étude. Il a fallu faire des recherches sur les différentes technologies existantes, différents types d'algorithme et aussi faire du benchmarking sur différent type de base de données (Mysql, Mysql édition TokuDB et MongoDB) et voir leurs réactions avec des écritures et des lectures intensives.

La seconde phase a été l'implémentation du moteur de recherche. Nous avons donc choisi les technologies suivantes:

  • Mysql édition TokuDB qui a un meilleur système d'indexation que Mysql InnoDB et nous a donc fait gagner en performance autant en écriture qu'en lecture sur une base de données ayant des tables contenant plusieurs centaines de millions de lignes.
  • L'algorithme est basé sur Sidekiq qui permet de lancer les différentes tâches en parallèle et ainsi gagner en rapidité.
  • rabbitMQ comme service de messages entre les différentes apps du système. Cela permet de répartir des événements et faire travailler ensemble plusieurs apps/modules isolés.
  • Une base Redis pour mettre en cache certaines données clé du système.

Depuis ce travail en 2012, le moteur de recherche est beaucoup plus stable et grâce aux workers d'Heroku, le moteur peut gagner en rapidité en quelques secondes selon les montées en charges. Alerti ayant été satisfait du travail effectué, nous collaborons de manière régulière sur différentes évolutions et optimisations de leur application web.


Go To Site

Une application qui permet d'analyser un même panier sur les différents magasins de drives (Auchan, Intermarché, Leclerc, etc...) et permet ainsi de faire ses courses et commander sur le magasin le moins cher près de chez soi.

Quand j'ai rejoint l'équipe, j'ai travaillé autant sur l'API back-end basé sur Ruby on Rails que sur le front end avec le framework javascript Angular.

J'ai eu 2 missions principales sur cette application:
  • Sur la partie visible/publique du site, j'ai implémenté entre autres la partie graphique qui permet de choisir les différents magasins de proximités. Basé sur la Google Map API, et sur la localisation de l'utilisateur, l'utilisateur peut choisir dans quels magasins nous allions comparer son panier de courses.

  • Sur la partie du site, "gestion et administration", une partie de l'équipe s'occupait de l'implémentation des crawlers qui agrégeaient les produits des différents stores dans une base locale. De mon côté, une des difficultés de cette application a été de construire l'algorithme qui permet de retrouver le même produit dans les autres magasins de comparaison. En effet, avec le volume de produits à traiter, il fallait faire quelque chose qui soit aussi automatisé que possible. J'ai donc mis en place un système automatisé qui trouve les produits équivalents dans les différents magasins, via Elastic Search, en se basant sur le nom, les marques, la taille, les quantités, etc... Cet algorithme a permis de traiter la majeure partie des produits mais certains restés sans équivalents car Elastic search donnait des résultats trop aléatoires. Dans ce cas, on a mis en place un traitement semi-automatisé, avec une interface rapide pour permettre à un humain de choisir le produit correspondant ou au moins un substitut.


Go To Site

Avant de rendre l'api Tilkee publique à leurs utilisateurs, ce client avant besoin de mettre en place un système d'authentification pour permettre aux applications externes d'utiliser l'API de manière contrôlée et sécurisée. Le but étant de pouvoir suivre et analyser qui accéder à l'API et s'assurer que les ressources demander rester bien dans la portée des ressources disponibles chez ce client.

J'ai donc mis en place un "service provider" qui permette, via le protocole Oauth2.0, d'encadrer le workflow d'authentification à l'API, tout cela en utilisant leur application Ruby on Rails existante. Des applications externes comme Salesforce peuvent maintenant se coupler à Tilkee pour en faire un système plus attractif.

La seconde partie du système était de mettre en place un système d'authentification et enregistrement des utilisateurs non seulement via un email/mot de passe mais aussi via des applications externes telles que Linkedin, Facebook ou Google.



Go To Site

Cette application est la première que j'ai pu faire de A à Z. Nous avons travaillé avec mon client de en s'inspirant de la méthode agile ce qui permit à mon client de pouvoir contrôler exactement la direction de son projet.

J'ai appris sur tous les aspects d'un projet, depuis le sketching, le design, les tests, le déploiement et l'optimisation des performances.

Sur la partie technique, j'ai utilisé Ruby On Rails pour le back-end, et Coffeescript couplé au framework javascript Spine.js pour le front-end. Les ressources du site sont hébergées sur Amazon S3 et distribuées aux utilisateurs via Amazon Cloudfront, le réseau de diffusion de contenu qui permet d'avoir les ressources en cache, réparti aux différents coins du globe pour gagner en rapidité sur l'affichage de la page.

Les sites de production et de préproduction sont hébergés sur Heroku qui permet un déploiement facile et rapide via le système de contrôle des versions du code, Git.

Cette application a aussi différentes intégrations aux réseaux sociaux via l'API Facebook. Le service de messagerie utilisé était Mailgun.


Go To Site
onbrand intro

OnBrand

Une application Saas modulaire pour la gestion des ressources marketing utilisées par Shell, Diageo et Nestle.

diageo intro

Diageo SmartBrand

Leader dans les boissons alcoolisées, Diageo a un portail utilisé mondialement pour la gestion de leurs ressources marketing et de leurs clients.

kts intro

Gestion interne d'une école de Kite

Une application de gestion des cours, élèves, équipement et matériel pour l'école de kite, Kite Tarifa School (KTS).

vtree intro

Vtree Component

Un composant modulaire javascript pour afficher rapidement une arborescence

Onbrand est une solution Cloud qui donne aux chefs de marque d'entreprise et aux responsables marketing les moyens d'exploiter leurs ressources de marque au sein des campagnes marketing tout en respectant les directives. Le module Onbrand sur lequel j'ai travaillé, est la partie qui permette de gérer le workflow des projets marketing.

J'étais responsable de la partie front-end du code. Nous avons utilisé un framework Javascript MVC interne similaire à Backbone.js qui nous as permis de produirer une application Javascript complexe et bien structurée. Le design de l'architecture de l'application javascript nous a permis d'avoir une application qui soit:

  • modulaire
  • maintenable
  • extensible

Les challenges techniques auxquels on a dû faire face sont les suivants:

  • La gestion des différents types d'utilisateurs et des permissions de chaque groupe
  • Un moteur de recherche qui est puissant et rapide pour la recherche rapide des ressources marketing via l'outil Apache Solr.
  • Avoir une application "out of the box", qui soit facilement déployable, maintenable et adaptable selon les environnements et les contraintes marketing des différents clients tels que Diageo ou Nestlé.

Go To Site

Voici quelques-uns des projets sur lesquels j'ai travaillé lorsque j'étais employé pour North Plains:

  • Implementation d'un moteur de recherche sémantique en utilisant Solr. Associé à des appels ajax, cela permet d'avoir un moteur de recherche puissant, intuitif et facile d'utilisation.
  • Site de documentation de l'application
  • Traitement Excel avancé pour faire de l'import / export de données vers et depuis leur base de données
  • Site sécurisé permettant de transférer, uploader et récupérer des documents internes à l'entreprise

Dans le but de faire gagner du temps et d'avoir une équipe de développeur plus efficace, j'ai aussi développé différents frameworks internes utilisés par les équipes de dév:

  • Un framework javascript de validation de formulaire
  • Un framework javascript qui permet de rendre plus facile l'utilisation des multiple selectbox

Ces codes sont la propriété de North Plains et ne sont donc pas publiques

Lorsque je me suis lancé en freelance, le temps de me lancer, j'ai travaillé à mi-temps comme instructeur de Kitesurf à KTS (Tarifa, Espagne). J'ai travaillé à la maintenance et l'évolution de leur site web ainsi que le développement d'une application interne de gestion des clients.

Le site web est une simple application Joomla, sur lequel j'ai fait certaines mises à jour et modifications.

Ensuite, j'ai développé un petit outil pour la gestion de l'école qui permettait d'automatiser les prises de rendez-vous pour les heures de kitesurf et permettre de gérer la disponibilité des instructeurs et le matériel de location et les heures passées d'un élève.

Une autre application simple était une base de données avec une interface basique pour la gestion des stocks du magasin, pour avoir une base informatisée des produits disponibles.

Ces deux applications étaient faites via Ruby on Rails et le framework Active Admin pour la gestion du panel d'administration.


Go To Site

Ceci est une librairie Javascript pour afficher des arborescences dans une page web. Il supporte l'affichage via Ajax, les cookies et l'ajout de checkboxes.

Cette librairie est facilement extensible, facile à prendre en main et testé de A à Z.


Go To Site

Mon objectif est de rendre un travail propre et avoir des clients satisfaits.

Mon travail consiste à analyser les exigences du client, élaborer une solution technique en accord avec ses besoins et rendre une application fonctionnelle codée dans les règles de l'art. Travaillant généralement en télétravail, je pense qu'une bonne communication est une des clés d'un projet réussi et j'essaie de me rendre aussi disponible que possible même en travaillant à plusieurs centaines de kilomètres de distance.

A mon sens, la meilleure façon d'avoir une application qui répond au besoin des clients est de travailler en s'inspirant des méthodes Agile et Lean. Cela permet d'avoir un projet flexible, rapidement déployé et à moindre coût. En travaillant par itérations de 2 semaines à 1 mois, on décide ensemble, à chaque début d'itération, des fonctionnalités les plus importantes à implémenter et l'on travaille par cycle. Cela permet de créer la valeur de l'application rapidement, d'avoir des retours utilisateurs dès le départ et de pouvoir adapter et/ou changer de stratégie en cours de route.

Si ce n'est pas ce que vous cherchez et que vous avez une idée claire de votre projet, nous pouvons aussi travailler de manière plus traditionnelle:

Analyses du besoin

C'est la partie la plus importante pour tous les deux. Je découvrirai vos exigences et traduirai vos besoins en une solution adaptée. Le plus j'en saurai sur votre stratégie pour accomplir vos objectifs, le mieux je pourrai retransmettre cela dans l'application. Nous discuterons ici de vos objectifs, vos utilisateurs cibles, votre budget et date limite.

Design et Prototype

C'est le processus de prendre l'idée et la transformer en un produit concret, je créerai un mock-up de votre site web. Nous travaillerons ensuite sur les détails du design et l'expérience utilisateur pour avoir une idée claire et précise de la direction du projet.

Implémentation et tests

Quand nous nous sommes mis d'accord sur les fonctionnalités et le design de l'application, je commence le code à proprement parler. Je testerai aussi de manière automatisée les différentes parties pour s'assurer que le site fait exactement ce qu'on lui demande.

Déploiement et maintenance

Après une période de préproduction et votre accord final, c'est l'heure de lancer le produit. Je configure et déploie l'application sur les serveurs de production. Après le lancement de votre projet, je peux continuer à améliorer et maintenir votre produit pour m'assurer qu'il reste synchronisé avec vos attentes.

Vous n'êtes pas convaincu?

"Nous avons travaillé pendant 5 jours en régie avec Loïc ; il a su intégrer notre logique fonctionnelle et appréhender le code de l’application très rapidement. Nous sommes très satisfaits du travail qui a été accompli et le recommandons les yeux fermés !"

— Timothée Saumet, Tilkee CTO

"Ayant à la fois travaillé avec Loic sur une base quotidienne et l'ayant engagé comme Freelance après son départ de notre société, je le recommande fortement. Il est très motivé , hautement qualifié dans son métier et fournit un bon travail , dans les temps et le budget imparti. J' utiliserai ses services à l'avenir si nous avons besoin de sous-traiter un développement front-end."

— Albert Guðmundsson, Unify Technical Lead North Plains

Curriculum Vitae

vous trouverez une vue complète de mon parcours, mes expériences passées et mon profil.

ouvrir mon CV en PDF

Contactez-moi

Vous avez besoin d'un développeur front end ou back-end sur votre projet ? Vous avez besoin d'un Produit minimum viable (Minimum Viable Product) pour pouvoir concrétiser votre idée d'application? Vous êtes en manque de développeur qualifié et expérimenté ?

Retrouvez-moi...

ou