Michaël Marinetti

développeur back-end / full-stack

Michaël Marinetti
né le 14 novembre 1984
michael-cv@marinetti.fr
Langues : français, anglais
En bref

J'ai commencé à être développeur en autodidacte dans les années 2000 en «hobby». Et depuis, je continue d'apprendre, avec mes collègues ou par curiosité.


J'aime bien bosser sur Symfony. je cherche plutôt à continuer là dedans. J'ai de bonne base d'adminSys. Je m'initie à ReactJS.


Mots clés: Git, RegEx, Php, Symfony, SOLID (et pas STUPID), PSR.


Faire tenir un cv sur une seule page, c'est pas facile

Projets persos
Formations
  • 2008-2009
        Apprenti - Licence ACSID
        en Alternance CNAM (Paris)
  • 2005-2008
        Apprenti - Électronique
        en Alternance Ingénieur 2000 (Caen/Paris)
  • 2003-2005
        BTS Électronique (Marseille)
Centres d'intérêts
  • Goguettiers depuis 2018
  • Les chansons à texte (depuis 1990)
  • Les jeux de mots subtils
  • Terry Pratchett
  • Escape game
Compétences

Compétences techniques

  • git / gitolite
    Expert
  • Php8, POO/PDO
    Avancé
  • phpunit, alice fixtures
    Avancé
  • Symfony 6
    Avancé
  • Doctrine
    Avancé
  • Docker
    Bon niveau
  • DDD
    Intermédiaire
  • React
    Intermédiaire
  • phpcs, phpstan, …
    Bon niveau
  • Shell
    Bon niveau
  • MariaDB / MySql
    Bon niveau
  • XHTML / CSS3
    Expert
  • un peu de sysadmin
    Bon niveau
  • NoSQL, mongoDB
    Intermédiaire
  • Javascript (jQuery ou vanilla)
    Avancé

Outils préférés / Logiciels

  • phpstorm, vim, git
    Expert
  • Stackoverflow
    Avancé
  • Gimp
    Intermédiaire
  • Suite LibreOffice
    Bon niveau
  • Inkscape (dessins vectoriels)
    Bon niveau
  • environement linux, console unix
    Expert
  • Subversion (R.I.P svn :) )
    Avancé
  • puppet
    Notions

Divers

  • J'écris des chansons parfois
  • Jeux vidéos (mais je ne joue plus tellement)
  • Je m'intéresse à l'actualité

Langues

  • Anglais bilingue

Internet / Web 2.0 (ou plus si affinité)

  • optimisation du référencement naturel (SEO) (Si quelqu'un essaye de vous vendre la première place sur google, il vous ment :))
  • Adwords

Stack: docker, gitlab, datadog, php8.1, phpunit, Symfony6, react, AWS, …

  • php8.1, tests unitaires, code review, rituels scrums, …
  • Architecture en DDD.
  • Aide à la mise en place d'un environnement de CI/CD dans gitlab pour le travail en équipe (docker, pipeline avec phpunit puis cypress, hooks git locaux, …)
  • mise en place et configuration de phpcs, phpstan
  • Évolution du site «sans framework» vers Symfony 5 (puis 6) + twig, puis vers back symfony / front react.
  • Accompagnement des nouveaux arrivants, partage de connaissances, code review systématique

Stack: Symfony, jQuery, MySQL, API GoogleDrive, …

Ma principale mission chez Homeland a été de développer de nouvelles fonctionnalités (et corriger les bugs des anciennes) sur un site «legacy» (fichiers php de 6000 lignes de code, aucune classe, aucun MVC) et un site basé sur Symfony. J'ai également géré de nombreuses tâches lié à l'administration système.

Site «legacy» mise en place d'outils et de méthodes modernes de développement: déploiement par git plutôt que ftp, création d'environnement de prod/dev, corriger au lieu de masquer les notices/warnings, refactorisation d'un code 100% procédural en MVC, monitoring erreurs générés par les crons ou les visiteurs, point d'entrée unique, composer, briques Symfony, …

Site Symfony correction de l'installation (swiftmail, sécurité, cohérence entité/bdd, .env, …), mise en place de bonnes pratiques pour un code homogène et maintenable, correction des tables pour pouvoir utiliser les migrations Doctrine, …


En plus de ma mission principale, création de scripts et d'outils de sysadmin, config DNS (SPF,DKIM), formation de l'équipe technique pour travailler en SOLID et ne plus avoir un code STUPID. Aide à l'utilisation de PHPStorm, git, rédaction d'article en interne pour le partage de connaissance technique (classes, routes, exceptions, droits de fichiers, transactions mysql, ssh, …)

Stack : Git, PHP, Javascript, MariaDb, ElasticSearch, MongoDB, YoutubeAPI, Algolia, Jenkins, Ansible, Gitlab, microservices

Développement de nouvelles fonctionnalités de l'interface de configuration/administration de la marketplace vidéo / intégration de la solution chez nos clients (javascript).

A mon arrivée, migration svn→git, formation des dev à git. Installation de Redmine + formation des équipes. Mise en place déploiement continu.

Stack: php5 / mysql / NoSQL (mongoDB) / Api twitter / facebook / GraphSQL

Migration svn→git, formateur à l'utilisation de git. AdminSys (puppet, déploiement de mise à jour de sécurité asynchrone sur 6 serveurs). + maintenance/évolution d'une plante-forme de location d'appartement saisonnier anglais/français/japonais/chinois/portugais

Développeur "coté cœur" chez Prestashop (éditeur du logiciel éponyme). Création de nouvelles fonctionnalités. Chef de projet pour le module de mise à jour automatique (et par extension des scripts de mises à jour). Refonte de (l'outil de traduction communautaire).
Bonnes pratiques rétrocompatibilité / automatisation de la vérification des scripts de mise à jour. Contribution documentaire et communautaire, médiation.

Mission principale : développeur pour une plate-forme de location d'appartement saisonier. Maintenance et Développement du site internet, automatisation des tâches, ergonomie, référencement naturel (SEO), référencement payant (Adwords, Overture), développement d'API et d'interfaces pour les partenaires, webservice, Internationalization (I18N) anglais/français/japonais/chinois/portugais.


Autre: conversion site web statique/asp vers php, envoi de sms sur demande client, générations de rapports xls. Modules de cross-selling pour sites e-commerce ( développement, intégration chez le client, création de module prestashop, webservice pour module de recommandation). Développement "from scratch" d'un logiciel de data mining pour les réseaux sociaux, basé sur le framework Kohana3, modèle HMVC (MytWatch / SenseFab). Plate-forme multiblog wordpress pour l'entreprise et ses clients, gestion du parc informatique, administrateur réseau(solution apache/mysql/php, DNS, gestion des e-mails), tache de maintenance (sauvegarde/outils interne)

Fabrication d'un banc de tests complet «Serie S» (relais temporisés), Mise en place d'un intranet pour le suivi des intervention de maintenance. Interface web pour interrogation d'une base IMS7.

(Delphi - 2007/2008) Créer un banc test complet pour le test final des produits ABR1, banc de test existant ce jour mais avec des risques l’obsolescence de matériel (automate de plus de 30 ans). Etablir au préalable un cahier des charges avec budget et coût définis.

(WEB - 2006/2007) Mettre en place une solution simple d'interrogation de la base de données de l'entreprise existante sous IMS7. Interface accessible à partir de n'importe quel poste du labo de maintenance ou de l'atelier, et base de données IMS7 importée dans MySQL tout les jours (base de données fournisseurs, fournitures, et produits CROUZET). L'application nécessite une connexion au réseau interne, et est hébergée par le même serveur que celui mis en place pour le suivi des opérations de maintenance

(WEB - 2006) Création d'un logiciel de suivi des opérations de maintenance effectuées en atelier. Une solution WAMP (Apache/MySql/Php) sera retenue. Choix de "taskfreak", modification des fichiers sources et configuration spécifique à nos besoins, aussi bien au niveau des fonctionnalités que du design.

(Delphi / .NET - 2006/2007) Automatiser l'impression des étiquettes produits de fin de ligne de production. Installer les nouveaux postes d'impressions et configurer le réseau imprimante en conséquence. Remplacer la saisie des références produits par une recherche dans la base de données, et sélectionner automatiquement l'imprimante thermique en fonction du format.

(Delphi / Électronique - 2005/2006) Créer un banc de test complet pour le test final des produits SERIE-S afin d'assurer la pérennité du cycle de production. Le banc de test à ce jour tombe fréquemment en panne et contrôlé par une carte d'interface sur PORT ISA (obsolète) et piloté par un logiciel sous MS-DOS écrit en pascal. Le banc devra être piloté par une carte d'interface récente (ISO? ) et contrôlé par un programme écrit en Delphi. Il devra respecter les standards ISO9001 et ISO14000