Michaël Marinetti

Format plus classique PDF

Je suis développeur php, et je ne ferais pas étalage ici de mes talents de graphiste :) . J'ai commencé en autodidacte vers les années 2000. Je continue d'apprendre à chaque rencontre (et je pense humblement que j'apprend des choses aux autres de temps en temps).

Développeur PHP8.1 aguerri, Expert git, plutôt très calé en RegEx. J'aime bien bosser sur Symfony (6). Évidemment, HTML/CSS/JS. J'ai profité de possedex.info pour me faire la main sur React. J'ai de bonnes notions d'adminsys (je gère moi-même deux serveurs où sont hébergés plusieurs sites, Dont certains avec gitolite pour le déploiement). Je me demande comment on travaillait avant, sans être SOLID. J'aime bien écrire le test qui vérifiera que le code fonctionne avant le code lui même.

Parfois je chante. Parfois même j'écris des chansons avec espièglerie et un stylo.

J'ai quelques projets perso, que je fais avancer quand j'y pense et quand j'ai le temps, comme L'extension de navigateur «Possédex» et Qui Chante Ce Soir, l'agenda concert de la chanson francophone.


Compétences

Mes connaissances (stack techniques, frameworks, …)

Je suis à l'aise/j'aime travailler avec
PHP8.1 POO, DDD, MVC, …
un peu plus de 10 ans d'expérience, ça serait compliqué à résumer en une ligne ou deux.
Symfony6 (/Twig)
Je commence à avoir 3-4 ans d'expérience sur Symfony. Sur des projets pro et perso
phpunit
J'adore écrire des tests (et quand je peux les écrire avant de coder, c'est encore mieux !).
Git
Je maîtrise git (de commit à rebase en bassant par bisect), je sais faire pousser mes arbres droits, je trouve pas mal gitflow et gitlab flow.
Doctrine
Ça va un peu avec Symfony mais c'est pas indissociable. La preuve.
Docker
docker / docker-compose a de moins en moins de secret pour moi
React
Je ne suis pas perdu dans React, mais j'ai encore assez peu d'expérience.
Cypress
Je m'y frotte un peu pour aider les équipes front parfois
Javascript
Vanilla ou Jquery
Scripting bash
Quand je ne fais pas des scripts en php, je les fais en bash/sh
MariaDB
enfin, MySql ça marche quand même
Apache
Avec php en «direct» ou en fpm
HTML5
ElasticSearch
Et je connais aussi assez bien d'une manière générale
Bash
Plutôt bash que zsh mais qui sait peut être un jour …
RegEx
J'aime bien jouer à Regex Crossword et Regex Golf
unix
j'aime travailler en ligne de commande :)
Smarty
(c'était y'a longtemps, on va dire que je le laisse là par nostalgie)
debian
Je ne suis pas un expert, mais je connais assez
la langue de Molière
(ou plutôt de Brassens, puisque j'écris des chansons parfois)
la langue de Shakespeare
Ce ne sont pas mes points forts, mais j'ai un peu touchés à d'autres bricoles, par nécessité ou par curiosité
programmation pic/conception de circuits imprimés
Delphi7
Programmation de logiciel, gestion de ports pour commander des automates, etc…
ansible, puppet, mrtg
Outil d'admin sys

IDE/outils

Mes préférés
phpstorm (+ ideaVim)
phpstorm a détroné vim dans mon cœur (mais j'utilise les deux)
vim
Ah, les soirées tupperVim Et oui, ça m'est déjà arrivé d'aller aux soirées TupperVim et de jouer à VimGolf
moleskine
Trello
clavier
layout Qwerty lafayette évidemment
gist
stylo
petit cahier/petits carreaux
Ceux que je connais également trés bien

notepad++, Geany, gist, grand cahier/petits carreaux, papier/crayon, tableau noir, souris


Oui, je connais, non je ne suis pas (ou plus) fan

redmine, eclipse, netbeans, jedit, windows, (feu) Subversion

Pour me décrire

Je suis certainement
Autodidacte
C'est à dire que si j'ai été formé au CNAM à Paris, mais j'ai beaucoup plus appris en travaillant et cherchant des solutions et en observant mes collègues plus expérimentés
Débrouillard
Souriant
très à l'aise avec git
du commit au rebase en passant par bisect
Développeur PHP/Web expérimenté
Dans mon élément en ligne de commandes
SOS Regex
Ce n'est pas pour ça qu'on m'embaucherait en premier lieu, mais c'est toujours un plus si vous savez que je suis aussi
SysAdmin
Intégrateur
Moins bon que certains mais meilleur que d'autres comme on dit
"Scripteur" /bin/bash
Curieux
Je préfère laisser aux experts leur rôle, ils sont bien plus doués pour être
Dessinateur
Graphiste
Je crois que vous l'avez compris en arrivant sur cette page :)
Superhéros
Le Concombre Masqué est le seul justicier 100% végétal et donc 100% sain
Et en dehors du travail je suis …
Goguettier
«Eh, c'est quoi une goguette
Passionné de chanson
Si je ne vais presque jamais au cinéma, c'est que je préfère le spectacle vivant, en particulier la chanson à texte (et tous ces chanteurs vivants !)
Chanteur amateur
J'essaye de chanter juste pour détourner l'attention sur mon manque de maitrise de ma guitare en bois
Amateur d'énigmes et de bon mots
Contre les arguments fallacieux
Et je fais de mon mieux pour les détecter dans les débats animés
intéressé par la street epistemology
J'aime comprendre comment les gens pensent ce qu'ils pensent.

Boissons préférées

thé
aqualis municipalis
vin rouge
Avant de chanter, Ma vie de faire des, Harangues… Dans ma gueule de bois, J'ai tourné sept fois, Ma langue
bières belges
grog
café
Mais je n'ai rien contre
champagne
bières non belges
sirops
vins d'hiver ou d'été...
Au cas où; je me contente très bien de
pas mal de choses
Mais ne m'offrez pas de
Coca-Cola
Redbull

Où l'on peut me trouver sur le web

CV sur doyoubuzz.com
Une présentation plus «classique», avec notamment mes précédents postes (mais mes boissons préférées sont ici)
github.com/Asenar
Compte github, mon .dotfile et quelques contributions ici ou là
Stack Overflow
Mon profil StackOverflow, je répond un peu parfois là bas (git principalement)
profil sur linkedin
Parce qu'il faut bien y être (parait-il)

La dernière fois que j'ai mis à jour la partie «compétences», c'était le dimanche 22 janvier 2023, approximativement vers 22:00

Expériences

Voir aussi sur DoYouBuzz ou sur LinkedIn

Expérience (comme développeur web)

NeedHelp

Octobre 2020

Stack technique : Php8.1, Symfony6-Doctrine-Twig/react, gitlab, AWS, Datadog, Docker

J'ai été le premier développeur embauché par le CTO. Je l'ai accompagné pour l'embauche et l'accueil des nouveaux et nouvelles développeuses (nous sommes maintenant 11). A mon arrivée nous avons mis en place des outils pour CI/CD et les bonnes pratiques de développement (pipeline avec linter + analyse statique phpstan + phpcs, mise en place de tests unitaires et end to end, création de fixtures, code review systématique). J'y ai beaucoup affiné mes connaissances du framework Symfony jusqu'à en devenir référent. Nous nous sommes vites orienté vers du DDD et une architecture hexagonale. J'ai particulièrement apprécié la mise en place des rituels scrums (dailies, grooming, poker planning, retro).

Coté Développement

  • Réduction dette technique (comme d'hab décidément !) «code procédural» vers du DDD
    • - Cohabitation du code legacy avec Symfony (LegacyRouteLoader, Bridge, …)
    • - Gestion des erreurs avec monolog + datadog
  • Config Symfony5/6 (security, jj, swiftmail)
  • autoloader custom, error_handler, exception_handler,
  • Mise en place de l'utilisation de composer

Partage de connaissances

  • PHPStorm
  • git (branches, rebase, revert, résolution de conflits, …)

Coté «AdminSys»

  • Monitoring erreur php
  • Monitoring des erreurs/warnings cronjobs
  • Monitoring erreur serveur
  • Scripts synchro prod→preprod
  • Mise en place travail collaboratif avec git
  • Mise en place de déploiement automatique avec les hook git (plus de ftp !)
  • config SPF / DKIM pour ne plus être classé en indésirable
    • - Config apache2 - sécurité, optimisation de la config
    • - scripts de backup

Homeland (syndic de copropriété)

Septembre 2019 à juillet 2020

Stack technique : Php7, Symfony4-Doctrine-Twig, jQuery, ElasticSearch, API Rest, synchro GoogleDrive

Coté Développement

  • Création d'outils de dev et de debug pour l'équipe technique
  • «Gérer les erreurs» au lieu de les masquer
  • Mise en place d'environnement prod/preprod/dev
  • Réduction dette technique «code procédural» pour évolution Symfony4
    • - `s/include/«autoload»` sur tout le projet.
    • - suppression des doublons de code
    • - «bootstrap» unique, autoloader qui gère vieux code / PSR-4
    • - Création MVC «from scratch» (compatible avec Symfony4 pour évolution)
    • - Gestion des erreurs
    • - Création système de route compatible «legacy code→symfony» /controller/action/xx
    • - Remplacement `mysql` par l'utilisation d'un wrapper PDO
  • Config Symfony4 (sécurité, swiftmail)
  • autoloader custom, error_handler, exception_handler,
  • Mise en place de l'utilisation de composer
  • Monitoring messages d'erreurs reçus par les visiteurs.
  • Développement de nouvelles fonctionnalités évolutives avec du code réutilisable
  • Scripts php/bash de génération de classes et traits php à partir des tables mysql
  • Scripts de migration up/down de base de données

Partage de connaissances

  • Aide prise en main de PHPStorm
  • Aide utilisation de git (branches, rebase, revert, résolution de conflits, multi remote, …)
  • Aide utilisation des classes en PHP
  • Rédaction d'articles en interne pour le partage de connaissance techniques «de base»:
    • - Les Routes
    • - Les Exceptions
    • - Droits fichiers sous unix (chmod/chown)
    • - Explication authentification ssh par clé privée pour un utilisateur windows
    • - Doc sur les API utilisées et les wrappers mis en place.
    • - Les traits (cas pratique d'utilisation)
    • - Les Transactions mysql
    • - Synchroniser GoogleDrive ←→ serveur (InSync, jk

Coté «AdminSys»

  • Monitoring erreur php
  • Monitoring des erreurs/warnings cronjobs
  • Monitoring erreur serveur
  • Scripts synchro prod→preprod
  • Mise en place travail collaboratif avec git
  • Mise en place de déploiement automatique avec les hook git (plus de ftp !)
  • config SPF / DKIM pour ne plus être classé en indésirable
    • - Config apache2 - sécurité, optimisation de la config
    • - scripts de backup

Médiabong (place de marché vidéo producteur/diffuseur/annonceur)

Avril 2013 à août 2019

Stack technique : php5→7, MariaDb, MVC propriétaire (+ Kohana3), jQuery, ElasticSearch

  • Mise en place outils de travail collaboratif (git, redmine)
  • Mise en place environnement de dev/prod/test
  • Formation des équipes sur git
  • Maintenabilité du code (migration vers PSR-.. )
  • Réglage de dette technique (mysql → PDO)
  • Scripts d'AdminSys, de maintenance, backup, d'aide au développement synchro bdd, …

SenseFab / MytWatch (analyse des réseaux sociaux / aide à la décision)

Août 2012 à mars 2013

Stack technique : php5, Mysql/MariaDb, Kohana3, jQuery, ElasticSearch

  • migration de Subversion vers Git
  • formateur à l'utilisation de git ( co-working / déploiement auto / revue de code)
  • AdminSys (puppet, déploiement de mise à jour de sécurité asynchrone sur 6 serveurs)
  • R&D php5 / mysql / NoSQL
  • Utilisation des API des réseaux sociaux (twitter/facebook/youtube/google/…)
  • data mining / data warehouse

  • PrestaShop

    Janvier 2011 à juillet 2012

    Stack technique : php5, Mysql/MariaDb, framework propriétaire (PrestaShop^^), jQuery, Smarty, …

  • Dans le service «core dev». Développeur «coté cœur» chez Prestashop (éditeur du logiciel éponyme)
  • En charge du module de mise à jour automatique ( et par extension des scripts de mises à jour)
  • Refonte de l'outil de traduction communautaire ( translations.prestashop.com )
  • Bonnes pratiques rétrocompatibilité / automatisation de la vérification des scripts de mise à jour
  • Contribution documentaire et communautaire, médiation

  • Numinvest / Private-Homes

    Septembre 2008 à janvier 2011

    Stack technique : php5, Mysql, MVC maison, jQuery, Smarty, …

    • Plate-forme de réservation 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/Japonnais/Chinois/Portuguais
    • Refonte d'un site web organisateur d'évènement. référencement naturel, ergonomie, optimisation des divers formulaires du site, envoi de sms, back-office de suivi des demandes, générations de rapports (xls), configuration DNS
    • logiciel de recommandation (cross-selling, ergonomie, analyse de profils utilisateurs): 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)
    • Développement interne : Mise en place d'une plate-forme multiblog pour l'entreprise, gestion du parc informatique, administrateur réseau(solution apache/mysql/php, DNS, gestion des e-mails), tache de maintenance (sauvegarde/outils interne)

    Crouzet / Schneider Electric

    Septembre 2005 à Septembre 2008

    Contrat d'apprenti ingénieur en alternance à Bourguebus (près de Caen) / au CNAM

    • (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 - 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

    La dernière fois que j'ai mis à jour la partie «expériences», c'était le dimanche 22 janvier 2023, approximativement vers 22:13