À propos de moi

J'ai découvert l'informatique à l'âge de 11 ans lorsqu'on eut à la maison un PC défectueux qui tombait en panne régulièrement. Cela m' intriguait et c'est comme ça que j'ai commencé à m'intéresser aux ordinateurs ... Depuis c'est devenu une passion et au final mon métier.

J'ai passé un BAC électronique, ce qui m'a permis de comprendre avant même de savoir programmer comment cela fonctionne concrètement. J'ai ensuite poursuivi en BTS SIO où au cours du premier semestre on a pu voir un peu de réseau et un peu de développement afin d'affiner notre choix pour la suite. Je me suis alors rendu compte que si j'apprécie les deux, j'ai une préférence pour le développement.

Je suis d'un natuel curieux et manuel, c'est pourquoi je n'ai pas hésité à monter divers projets (que vous pouvez voir dans MES PROJETS) qui m'ont permis de découvrir les autres facettes de l'informatique très peu vues lors de ma formation, comme la partie matérielle avec le stockage et les cartes raid, la virtualisation avec VMWARE ESXI, l'administration des machines virtuelles sous Debian et Windows Serveur ainsi que différents services tels que Owncloud ou un reverse proxy avec Ngnix; et enfin du réseau pour faire communiquer le tout ensemble et avec l'extérieur.

Grâce aux tous ces projets, j'ai pu apprécier l'administration système et la virtualisation mais je recherche tout de même un poste de développeur C# ou AngularJs.
Je suis alternant actuellement en seconde année d'école d'ingénieur à ESIMED à Marseille et je recherche une entreprise pour effectuer ma dernière année toujours en alternance.

.NET
80
VMWARE - ESXI
64
LINUX - DEBIAN
44
WINDOWS SERVEUR
38
AngularJS
32
SQL - MSSQL
20
(extrait du CV)

Compétences

Curieux

Je m'intéresse aux technologies de demain et je n'hésite pas à en apprendre des nouvelles si cela est nécessaire.

Impliqué

Je suis à l'écoute du besoin, j'essaye de respecter au mieux le cahier des charges et je recherche toujours l'équilibre entre l'optimisation et le temps de développement.
Pour ce faire, je développe les applications comme si je devais les utiliser moi même.

Multi-tâche

Je peux travailler sur le développement d'une application et aussi son intégration en production.

MON CV

Voici mon parcours professionnel

Duflot Axel

7 hameau des 4 Vents
La Batarelle Haute
13013 Marseille

07.50.52.19.48

@
duflot.axel@gmail.com

A propos de moi

Passionné d'informatique du plus loin que je me souvienne, j'ai réussi à en faire mon métier.
Actuellement en école d'ingénieurs sur Marseille option développement, je m'intéresse autant à l'infrastructure logiciel qu'à celle materiel et ce afin de maîtriser de façon totale mes applications.
J'ai appris grâce à mon alternance à avoir une vision globale du Systeme Information, ses possibilités tout comme ses limites et je suis donc en mesure d'y appliquer une supervision efficace.
Je suis curieux de toute nouvelle technologie et apprendre est un plaisir.

Qualifications

.NET
80%
VMWARE ESXI
64%
Talend
52%
Linux (debian)
44%
Windows Server
32%
AngularJS
32%
HTML / BOOTSTRAP
32%
MSSQL / SQL
20%
NodeJS
12%
VEEAM BACKUP
12%
* Ceci est la répartion de mes compétences (échelle x 4)

Expérience

Spir Communication

Depuis septembre 2014 en contrat de professionnalisation Développeur logiciel – Aix-En-Provence ( 13290 )

  • VMWARE ESXI :
  • Ajout de nouveaux serveurs physiques dans un datacenter
  • Installation - Mise à jour de l'OS ESXI
  • Création - Modification - Suppression des machines virtuelles par vCenter
  • Récupération de différentes données d'un SI afin d'en produire un graphique d'évolution de la consommation des ressources ( RAM - CPU - Stockage )

  • Support N2 et création du batch en C# pour automatiser des tâches récurrentes

  • Développement d'outils internes en ASPX - WCF - ENTITY afin de gérer la conformité du SI
  • Utilisation de Talend ( Java) afin de développer des batchs d'automatisation pour gérer la conformité du SI
  • Hopitaux publics de Marseille

    2014 – 1 mois et demi - stage 2eme année BTS - Developpeur VBA - Marseille (13006)

  • Création d'un outil servant à générer des noms de famille aléatoire, mais avec un certain sens afin de pouvoir rendre anonyme le personnel convoqué à la médecine du travail.
  • La poste

    2013 – 1 mois - stage 1er année BTS - Technicien - Marseille (13006)

  • Dépannage des bureaux de poste et de l'administration pour divers types de pannes.

  • Formation

    2014 - Aujourd'hui

    Master I - ESIMED - Expert en ingénierie informatique

    2013 - 2014:

    BTS SIO (Systèmes Informatique aux Organisations) – Solutions Logicielles et Applications Métiers

    2012:

    Bac STI Electronique


    Langue

    Français :   langue maternelle

    Anglais :   Lu :   Ecrit :   Parlé :


    Centre d'interet

    Nouvelles Technologies – Jeux vidéo - Lire - Badminton - Programmation - Architecture SI

    MES PROJETS

    Voici la liste des projets personnels auxquels j'ai participé

    ×

     

    Rig Bitcoin

    Mineur de bitcoin...

    Le protocole BITCOIN à besoin de mineurs pour fonctionner. Pour cela, Un seul suffit. On dit que Bitcoin rend anonyme mais, cela est partiellement juste. En effet, Bitcoin est bien une crypto-monnaie mais seulement dans son principe de fonctionnement. Il utilise la cryptologie afin de vérifier l'intégrité d'une transaction mais on peut savoir à partir de quelle adresse IP cette transaction a été émise ...

    Le mineur est la pièce centrale pour que tout fonctionne. En effet, pour qu'une transaction soit valide, il faut pouvoir vérifier la présence de la précédente transaction, grâce à une clef de hachage inscriet dans chaque pièce . Si le(s) Bitcoin(s) dépensé(s) a bien une existence dans la chaîne de blocs, la transaction est alors validée, sinon elle est refusée . Toutes les dix minutes, le protocole Bitcoin ( et oui c'est bien plus qu'une simple monnaie !) prend toutes les transactions émises sur le réseau, en fait un bloc de transactions et le diffuse à tous les mineurs connectés sur le réseau. À partir de ce moment-là, une course commence entre chaque mineur afin de résoudre le bloc le plus rapidement possible. Car le premier qui résout le bloc, reçoit une récompense pour avoir participé au réseau . La récompense est la réception de nouveaux Bitcoin. C'est la seule façon dont les nouvelles pièces sont émises. On sait qu'il y aura 21 millions de Bitcoin d'ici 2140, avec une réduction de la récompense tous les 4 ans.

    J'ai choisi la solution d'un RIG fait main afin de comprendre vraiment son fonctionnement. La meilleure façon de miner reste toutes l'achat massif de cartes graphiques afin d'avoir une souplesse si on désire changer de monnaie à miner (comme de l'Ethereum) .Il m'a fallu donc pouvoir brancher six cartes graphiques sur une seule carte-mère le tout alimenté par trois alimentations. J'ai ensuite construit à l'aide de mon père une armature pour supporter l'ensemble

    Plus d'informations

    Mon Datacenter

    Datacenter fait main

    Depuis l'affaire Edward Snowden je voulais être le plus possible indépendant vis-à-vis des grosses entreprises, mais aussi comprendre la gestion d'un Cloud privé. C'est pourquoi je me suis construit un SAN et un ESXI. Ces serveurs sont faits avec des composants grand public mais cela est suffisant pour une utilisation personnelle.

    Grâce à cette infrastructure j'ai été confronté à des difficultés qui m'ont permis de monter énormément en compétence. J'ai dû me renseigner :
    - sur la différence entre les types de raid afin d'acheter la carte adaptée à mon besoin
    - la communication réseau entre mon SAN et mon ESXi avec le protocole ISCSI afin de publier mes disques durs sur le réseau et le protocole LACP afin d'équilibrer la charge réseau en vue du second ESXI qui devait arriver.

    J'ai aussi compris le fonctionnement d'ESXI et les enjeux de la virtualisation avec la mutualisation des ressources physiques, la haute disponibilité, le provisionnement dynamique des machines virtuelles.

    Malheureusement, pour des soucis pratiques (mes déplacements), j'ai migré mon infrastructure chez ONLINE pour ne plus avoir la contrainte du matériel physique.

    Smartculture

    Un calendrier de culture


    Cette application est actuellement en cours de développement


    J'ai eu l'idée de Smartculture en deuxième année de BTS, afin d'appliquer concrètement les notions du cours. Etant pragmatique, les TP "bateau" comme la gestion de chambres d'hôtel ou des stocks ne me parlait guère, je me suis rendu compte que j'avais des lacunes en ve de l'examin final.
    Ayant un potager à la maison, je me suis appercu que le calendrier d'arrosage n'était pas toujours à jour : j'ai alors automatiser tout ça.

    Smartculture est un calendrier de culture automatique. En effet, on rentre nos propres paramètres de culture à appliquer à nos plantes et ensuite l'application nous indique tous les jours ce qu'il faut faire sur chaque plante (ou groupes de plantes), s'il faut arroser ou non, avec de l'eau clair ou additionné d'engrais ainsi que les quantités adéquates. J'ai prévu qu'en cas de pluie, on puisse l'indiquer pour que cela soit pris en compte comme un jour d'arrosage à l'eau, afin de recalculer un nouveau cycle d'arrosage.

    Si une plante tombe malade, on peut renseigner sa maladie avec son traitement et sa fréquence afin que l'application nous notifie quand il faut traiter et comment.

    Comme nous rentrons nous-mêmes nos paramètres pour chaque plante du potager, nous pouvons l'utiliser pour tout type de plantes ou d'arbres.

    Pour les légumes nécessitant un temps de séchage avant d'être consommé, un espace est consacré afin de savoir quand ça sera sec en fonction des paramètres de séchage renseignés.

    Et enfin, un espace d'archives est là pour garder au fil du temps nos plantes et la quantité de nos récoltes.

    Un aspect social sera mis en place afin que le cultivateur confirmé puisse aider les débutants en fonction de la localisation.

    Je fais un effort pour garder les données confidentielles et rendre publique seulement ce que l'utilisateur souhaite et je récupère sa localisation seulement avec son accord


    Detail Technique

    Front-end

    Technologie : AngularJS

    J'ai utilisé AngularJS pour le rendu de mon application afin de pouvoir faire tourner tout le code métier sur le client et utiliser mon serveur seulement pour l'accès aux donnes et l'authentification.

    Grâce à ce choix technologique mon application tourne dans un navigateur web et avec quelque petites adaptations, je compte par la suite utiliser Cordova pour faire marcher mon code sur PC, mobile et tablette.

    Malheureusement les restrictions d'Apple ne me permettent pas actuellement de la proposer sur IOS. en effet, il faut un mac pour pouvoir compiler mon application ...

    Serveur - API

    Technologie : C# / Entity Framweork

    J'ai développé mon API en C# en suivant le principe REST où chaque URI est appelé de la même façon api/{contrôler}/{action}/{id}, les paramètres sont soit dans l'URL soit dans le header avec un token d'authentification. En ce qui concerne le retour, chaque URI donne un code en fonction de l'état (200, 404, 500, etc) et les données sont sérialisées en Json.

    L'accès à la base de données par mon code ce fais avec Entity. Il y a un vrai gain de temps au développement du fait qu'on ne manipule que des objets. La gestion des connexions à la base est masquée et la protection contre les injections SQL est par défaut. En revanche, pour les transactions incluant plusieurs tables, j'ai désactivé l'auto-commit et je n'exclus pas d'écrire des requêtes à la main si dans le futur je me rends compte que certaines requêtes avec Entity sont trop longues.

    BDD

    Technologie : MSSQL

    J'utilise SQL Server car c'est la BDD que j'utilise au travail, donc que je connais le mieux. Elle est aussi très bien intégrée à Visual Studio et facilement utilisable avec C# et Entity.

    Ordonnanceur

    Un scheduler fait maison


    Cette application est actuellement en pause. Elle sera reprise après Smartculture


    Commençant à avoir de nombreux batchs à lancer afin de superviser mon SI, j'ai eu l'idée de faire un petit ordonnanceur. Celui-ci me permet de lancer de façon automatique un où plusieurs batch par demi-heure et en fonction du code retour de mes batchs, en lancer d'autres si besoin est.

    Dans une base de données SQL Server, j'enregistre tous les plans pour chaque demi-heure ainsi que le résultat de chaque exécution. Un programme console en C# possédant une boucle infinie va aller récupérer en base les batchs à exécuter et les lancer dans un thread distinct qui sera tué à la fin.

    Je me suis aussi développé un front en Angularjs afin de gérer l'ensemble. C'est de là que je crée, modifie où supprime mes plans d'exécution, mais je peux aussi lancer des batchs manuellement. C'est depuis cette interface que je vois l'état des exécutions, les succès comme les échecs.


    Details Technique

    Front-end

    Technologie : AngularJS

    J'ai utilisé AngularJS pour le rendu de mon application afin de pouvoir faire tourner tout le code métier sur le client et utiliser mon serveur seulement pour l'accès aux donnes et l'authentification.

    Serveur - API

    Technologie : C# / Entity Framweork

    J'ai développé mon API en C# en suivant le principe REST où chaque URI est appelé de la même façon api/{contrôler}/{action}/{id}, les paramètres sont soit dans l'URL soit dans le header avec un token d'authentification. En ce qui concerne le retour, chaque URI donne un code en fonction de l'état (200, 404, 500, etc) et les données sont sérialisées en Json.

    L'accès à la base de données par mon code ce fait avec Entity. Il y a un vrai gain de temps au développement du fait qu'on ne manipule que des objets. La gestion des connexions à la base et masqué et la protection contre les injections SQL est par défaut. En revanche, pour les transactions incluant plusieurs tables, j'ai désactivé l'auto-commit et je n'exclus pas d'écrire des requêtes à la main si dans le futur je me rends compte que certaines requêtes avec Entity sont trop longues.

    BDD

    Technologie : MSSQL

    J'utilise SQL Server car c'est la BDD que j'utilise au travail, donc que je connais mieux. Elle est aussi très bien intégrée à Visual Studio et facilement utilisable avec C# et Entity.

    Communication réseau

    Réseau de mon infrastructure

    Afin de communiquer avec l'exterieur, j'ai monté quelques services réseaux.


    pfSense

    Pour communiquer avec l'extérieur, il me fallait une VM qui allait se comporter comme un routeur et firewall. Sur les forums et dans mon entreprise j'ai entendu parler de la solution pfsense. Elle répond parfaitement à mon besoin car je peux récupérer les VLAN crée sur mon ESXi afin d'y mettre les ACL pour sécuriser l'ensemble. Le firewall intégré est très simple d'utilisation et performant.


    openVPN

    Lorsque j'ai besoin d'accéder à mes services internes, je me sers d'un VPN. Celui est fourni nativement avec pfSense et j'ai opté pour openVPN, car il m'a semblé être le plus facile à mettre en place.


    Nginx

    N'ayant qu'une seule IP publique à ma disposition et pour ne pas exposer directement mes VM sur internet, je me sers de Nginx comme reverse proxy. Je le trouve plus facile à prendre en main qu'Apache.


    Let's Encrypt

    La confidentialité des données est un sujet que je prends très au sérieux. c'est pourquoi les communications avec mon SI ce font en HTTPS. J'ai utilisé Let's Encrypt parce que c'est une autorité reconnue sur internet et ayant des partenaires importants tels que Mozilla, Akamai, Cisco, etc.


    Serveurs DHCP

    Pour faciliter la gestion des adresses IP de mon SI, je passe par un serveur DHCP sous Debian et je délivre les adresses IP avec l'adresse MAC. Par la suite je compte faire une interface web afin de gérer plus facilement la configuration du DHCP.

    Services publiés

    Services sur internet

    Afin de profiter d'un cloud complet, j'ai monté quelques services dont j'ai acces depuis internet.


    Owncloud

    Afin d'avoir accès à mes fichiers facilement et depuis n'importe où, j'ai monté un serveur de fichiers avec Owncloud, qui est l'équivalent de dropbox. J'ai activé l'option d'enchaînement des fichiers sur le disque dur, afin de me protéger tant bien que mal en cas de piratage. J'ai opté pour une authentification avec mon Active Direcotry.


    Rocket.Chat

    Afin d'échanger plus facilement avec mes amis et d'être sûr que nos conversations ne soient pas écoutées par un tiers, j'ai monté une messagerie avec Rocket.Chat qui est l'équivalent de Slack. J'ai opté pour une authentification avec mon Active Direcotry.


    Transmission

    Afin de télécharger et partager mes torrents favoris et de profiter de la bande passant de Online, j'ai monté une seedbox avec transmission. Je récupère ensuite mes fichiers via Samba directement depuis l'explorateur Windows.


    Madsonic

    Comme de nos jours les téléphones portables n'ont pas toujours la possibilité d'étendre la mémoire avec les cartes SD, j'ai monté une plateforme de streaming musical avec Madsonic qui me permet d'écouter mes musiques hébergées chez Online. Je peux aussi programmer un quota de musiques qui seront téléchargées afin de pouvoir quand même en écouter lorsque je n'ai pas internet.

    Services locaux

    Services interne

    Active Directory

    Afin de centraliser la gestion de mes utilisateurs, j'ai monté un serveur Active Directory. En effet, je connecte le plus possible mes applications et services avec mon AD pour l'authentification de mes utilisateurs, ça me permet d'avoir une certaine homogénéité des utilisateurs dans tout mon SI.


    vNAS

    Afin de centraliser mes dossiers et fichiers, je me suis crée un virtual NAS sous Debian afin de partager les dossiers en NFS avec mes Linux et mon ESXI mais, aussi avec mes Windows via le protocole SAMBA. Grâce à ça je peux accéder de manière transparente aux dossiers et fichiers en fonction des règles de partages. La gestion des droits se fait à partir des groupes de mon Active Direcotry.


    Veeam Backup

    J'ai opté pour la solution de Veeam Backup afin de sauvegarder mes machines virtuelles. C'est celle qui répondait le mieux à mes besoins et la plus intuitive à prendre en main. En effet, je peux soit restaurer le vmdk complet dans un datastore crée par Veeam et qui sera ensuite détruit automatiquement soit utiliser l'indexation des fichiers, afin de réduire le temps d'interruption de service. Si c'est juste un fichier de configuration mal modifié ou corrompu, il n'est pas nécessaire de restaurer le vmdk complet.


    Team Foundation Server

    Travaillant principalement avec Visual Studio, j'ai opté pour un serveur TFS pour le versioning de mes projets. Je profite également de l'intégration native dans l'IDE.


    SQL Server

    Faisant principalement du C# côté serveur, j'ai opté pour une BDD SQL Server afin d'avoir une certaine homogénéité dans mon back-office et aussi profiter de l'intégration native dans Visual Studio.

    Contactez moi