Loic Ginoux, freelance it engineer

Développeur freelance full-stack, Ruby on Rails et Javascript

Je suis Loïc Ginoux, Développeur Freelance avec +10 ans d'expérience, spécialisé sur les applications Ruby on Rails et frameworks Javascript.

Voir mon portfolio

Quelles prestation de développement puis-je offrir à votre entreprise ?

Je peux aider votre entreprise à grandir en ligne avec mon expertise et mes compétences.

Vous développez votre produit SaaS et avez besoin d'un CTO pour votre Minimum Viable Product ?

En tant qu'entrepreneur, vous avez besoin d'être épaulé pour tout le côté technique de votre projet web. Vous avez besoin d'une personne de confiance et expérimentée qui saura vous suggérer, choisir et mettre en place les bons outils et les bonnes technologies pour atteindre vos objectifs. Une bonne architecture du code et la mise en place de conventions depuis le début du projet vous feront gagner énormément de temps et d'argent sur le long terme.

Votre équipe a besoin d'aide pour finir le projet dans les temps ?

Il y a des moments ou tout n'est pas allé comme prévu et vous découvrez que le développement requiert plus de temps que prévu pour finir le projet à temps. C'est rarement facile d'estimer le temps de développement pour les projets web et dans ces cas-là, je pourrais vous aider pour le sprint final. Je suis sûr que cela vous donnera une bonne idée de mes compétences et vous fera travailler de nouveau ensemble ;)

Besoin d'une nouvelle fonctionnalité complexe qui requiert un ingénieur expérimenté ?

Certaines implémentations sont particulièrement délicates à mettre en place et requièrent une personne experimentée pour être sûre de faire les choses dans les règles de l'art, en matière de sécurité ou de workflow. On peut penser à la mise en place d'un système de paiement, le développement d'un système d'authentification, l'implémentation d'une API, etc... Mon expérience m'a permis de traiter de nombreux sujets et de mettre en places de nombreuses solutions techniques qui pourront sûrement vous donner l'assurance que le travail sera bien fait.

Après quelques années, il est temps de faire les mises à jour.

Garder une application à jour dans les versions des frameworks et librairies utilisés est un point important pour avoir une application web en bonne santé. Les dernières versions sont généralement plus rapides, ont les dernières mises à jour de sécurité et les fonctionnalités les plus modernes sont disponibles. Je peux vous aider à faire une mise à jour de votre application, qu'elle soit une application Ruby on rails ou une application front end Angular ou React. La plupart du temps, je commencerai à évaluer la couverture de tests mise en place, qu'ils soient tests unitaires ou tests d'intégration. Avoir une bonne couverture de tests est très recommandée pour être sûr que la mise à jour ne casse pas les fonctionnalités de votre site.

Vous avez besoin de faire une audit sécurité ou qualité ?

Votre site web a-t-il était développé correctement ou peut-on améliorer certains points ? Suit-il les bonnes pratiques et conventions du métier ? Votre app est elle sécurisée sous tous les angles ? C'est en général une bonne idée d'avoir un point de vue externe, Je peux vous donner une meilleure compréhension de la qualite et la sécurité de votre application.

Vous trouvez que votre application web est trop lente ?

Vos utilisateurs se plaignent que votre application est lente et vous savez qu'une mauvaise expérience utilisateur fait fuir vos clients. Je peux remettre votre projet dans le bon chemin. Il y a plusieurs d'angles d'attaques possible pour optimiser un site web, que ce soit des optimisations front end (html, css, images, javascript), des optimisations back end sur l'architecture ou sur la base de données, etc.. Je dresserai d'abord une liste des points les plus bloquants de votre site, et l'on travaillera en priorité sur ceux qui auront un plus grand impact et qui pourront être modifiés en un minimum de temps.

Votre code est historique (legacy code) et un refactoring est nécessaire ?

De nombreuses entreprises accumulent du code historique (legacy code) sans leurs tests automatiques correspondants, cela génère de la dette technique. Dans ce scénario, chaque nouvelle fonctionnalité ou correction est plus difficile et les coûts de maintenance de plus en plus importants. Lorsque le projet ne peut plus se permettre d'endosser ces dettes techniques, la modification et le refactoring du code est le seul choix. Nous pourrions travailler ensemble pour remettre votre projet dans la bonne direction en testant votre code existant et en modifiant petit à petit votre code pour qu'il soit plus compréhensible et plus facilement testable. Cela vous fera gagner en cout de maintenance et fera diminuer le nombre de bugs.

Vous recrutez un développeur web et vous voulez faire passer des entretiens par une personne expérimentée ?

Embaucher un nouveau développeur peut prendre du temps et trouver la bonne personne n'est pas une tâche facile. Les agences de recrutement font une partie du travail mais vous devez toujours avoir quelqu'un qualifié pour faire l'entretien technique. La préparation de cet entretien est également une tâche fastidieuse. J'ai une liste de questions et d'exercices prêts et mon expérience me donne la confiance nécessaire pour interviewer les développeurs et évaluer leurs connaissances techniques. Les clients pour qui j'ai fait ces interviews ont toujours été satisfaits avec le développeur sélectionné.

Applications et projets récents.

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

Carrefour

Lead Dev senior sur plusieurs grands sites e-commerce avec le framework Spree/Solidus.

ozz intro

L'oréal

Développement full stack d'une application web de crowdfunding et d'accompagnement des employés pour la création d'entreprise.

cocolis intro

Cocolis

Solution logistique écologique et innovante proposant un service de livraison par des particuliers.

alerti intro

Alerti

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

Carrefour

Développement back end de plusieurs sites e-commerce avec le framework Spree / Solidus hébergé sur Heroku et utilisant une base de données postgresql.

La stack technique est basée sur le framework Ruby on Rails, et la partie front end de l'application web utilise le framework React/Redux.

Développement de modules spécifiques pour la gestion du back office via Solidus: La gestion des promotions, la gestion des retours clients et remboursements, gestion des livraisons multi colis et multi entrepots.

Implémentation d'un puissant moteur de recherche via Algolia, pour une recherche simple et rapide des produits par les utilisateurs du site E-commerce.

Implémentation des flux d'information pour la communication entre les entités existantes de l'entreprise, service reporting, marketing, finance, etc...

L'oréal

Développement d'un outil web interne d'accompagnement des employés pour la création d'entreprises.

Intégration HTML/CSS résponsif et disponible sur tous type de navigateur, développement front end via le framework Knockout.js et développement back end via Ruby on Rails.

Interaction avec l'API Ulule pour la gestion crowdfunding des projets élus par les utilisateurs de la plateforme.

Intégration avec les API Facebook et Twitter pour le suivi des projets sur les réseaux sociaux.


Go To Site

Cocolis

Ce service permet de mettre en relation des transporteurs et des personnes voulant envoyer des colis. Cette startup est en pleine croissance, et le leader sur son créneau.

L'application est basée sur le framework Ruby on Rails, ma mission consiste à développer l'api pour la communication avec l'application front end, l'architecture du code et des données, et l'implémentation des différentes fonctionnalités. Le but étant d'avoir une architecture la plus robuste possible, qui puisse scaler facilement tout en étant un code facile à lire et testé de bout en bout.

Les technoligies utilisées sont Ror, React, Postgresql en base de donnée, Heroku pour l'hébergement, et Elastic Search pour la recherche sémantique.


Go To Site

Alerti

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
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.

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.

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.

Tilkee

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

Kiffe tes courses

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

OnBrand

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

Diageo SmartBrand

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

Connaissances techniques et rigueur pour des clients satisfaits.

Mon travail consiste à analyser les exigences et besoin du client et élaborer une solution technique en accord avec ses attentes et rendre une application fonctionnelle codée dans les règles de l'art. Travaillant en télétravail, je pense qu'une bonne communication est une des clés d'un projet professionnels réussi. Mes clients peuvent compter sur moi tout le long de la mission même en travaillant à plusieurs centaines de kilomètres de distance. Les clients éxigent d'un freelance disponibilité et sérieux, et ce sont les bases sur lesquels je fais un point d'honneur à respecter pour construire avec eux des relations à long terme.

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 ?

"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

"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

Interessé par mon profil ? 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 sur les réseaux sociaux

ou bien envoyez moi un email à