Loic Ginoux, freelance it engineer

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

Je suis Loïc Ginoux, Développeur Freelance avec +9 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

Grande enseigne de la grande distribution

Dév senior sur plusieurs grands sites e-commerce avec le framework Spree/Solidus.

ozz intro

Grande enseigne de la cosmétique

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

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.

Grande enseigne de la grande distribution

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

Grande enseigne de la cosmétique

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.

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

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

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

FoodRubix

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

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

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

Gestion interne d'une école de Kite

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

Vtree Component

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

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 à