me

Hey! Salut :)

Moi, c'est Rémi


Je suis étudiant en dernière année d'école d'ingénieur à l'Institut National des Sciences Appliquées (INSA) de Toulouse.

Ma spécialité, Informatique et Réseaux est également ma passion depuis de nombreuses années. Plus précisémenent, je suis passionné par la programmation et le développement logiciel. C'est d'ailleurs ma dernière spécialisation à l'INSA, Ingénierie Logicielle - Cloud Computing. J'aime mettre les mains dans le code mais j'aime également prendre du recul pour faire de la gestion de projet de développement, faire un suivi de bout en bout, et manager des équipes.

J'ai acquis les capacités nécessaires à ces activités au cours de mon cursus à l'INSA, mais surtout grâce à mes projets de développement logiciels en autonomie.

Mon objectif à la sortie de l'INSA est donc en toute logique d'entrer dans le monde du développement logiciel.


Contact

Rémi Prévost, 22 ans
Titulaire du permis B

rprevost@etud.insa-toulouse.fr

CV


Développements

Application Web (ExtJS - Sencha Touch - Java - API REST - MongoDB)

Application Web (Meteor - JavaScript - PHP - MongoDB - MySQL)

Extension Google Chrome (HTML - CSS - JavaScript)

Application Android - Java - avec Web Service - PHP - SOAP - MySQL

Application Windows - Java - PostgreSQL

Electronique et programmation bas niveau - Assembleur - C

Programmation réseau - C

Formation

Préparation de la certification CISCO CCNA Routing & Switching
Semestre d'étude à l'UFRJ de Rio de Janeiro, Brésil
Entrée à l'INSA de Toulouse(31)
Diplôme du Baccalauréat, spécialité Physique-Chimie: Mention Très Bien
Entrée au lycée Paul Sabatier, Carcassonne(11)
Diplôme du Brevet des Collèges: Mention Très Bien
Entrée au Collège Emile Alain, Carcassonne(11)

Expériences Professionnelles

Gardiennage au festival de Carcassonne(11)

Gardiennage du théâtre de la cité de Carcassonne. Développement des capacités relationnelles, d'écoute et de dialogue

Stage d'étude de chantiers du groupement hydroélectrique d'EDF de l'Ariège

Découverte des installations de production d'électricité à partir de la force hydraulique et assistance à la réalisation de chantiers sur ces installations.

Agent d'accueil des touristes plaisanciers du port de Carcassonne(11)

Apprentissage du relationnel avec une clientèle internationale.

Entretien des espaces verts à la commune de Mérens-Les-Vals(09)
Agent d'accueil et d'entretien au camping municipal de Mérens-Les-Vals(09)

Séjours à l'étranger

Semestre d'étude à l'UFRJ de Rio de Janeiro, Brésil

Découverte et apprentissage du portugais

Echange et représentation de théâtre avec une troupe Ecossaise de Tobermory, Ecosse

Consolidation de mon anglais, plus particulièrement ma compréhension et mon expression orale

Séjour en famille d'accueil dans la ville d'Hastings, Angleterre

Développement de mes bases en anglais

Séjour en famille d'accueil dans la ville de Weymouth, Angleterre

Découverte de l'Angleterre, ses habitants et sa culture. Première immersion dans la langue anglaise.

Compétences

Langages Web:

Sass, Scss

Frameworks:

Meteor
ExtJS
Sencha Touch
Bootstrap
Compass

Bases de données:

Langages orientés objet:

Autres langages:

Ada
Visual Basic for Applications (VBA)

IDEs:

Intellij IDEA

Intellij IDEA

Visual Studio

Visual Studio

Dreamweaver

Dreamweaver

Android Studio

Android Studio

Netbeans

Netbeans

Eclipse

Eclipse

Multimedia:

Unity 3d

Unity 3d

Blender

Blender

Gimp

Gimp

Serveurs HTTP:

Jetty

Apache

Nginx

Outils de gestion de projet:

Git

Git

Jira

Jira

Outils bureautiques:

Microsoft Office

Suite Microsoft: Word, Excel, Powerpoint, Publisher

Langues:

Français

Anglais

Espagnol

Portugais

Centres d'intérêt

  • Musique: batteur, percussionniste, compositeur dans un groupe de jazz, swing, raggae
  • Diplôme de plongée sous-marine, niveau 1
  • Ailier dans l'équipe de Rugby de l'INSA de Toulouse
  • Acteur de 2008 à 2010 dans la troupe de théâtre de Roullens(11) dirigée par Béatrice Barnes

Portfolio


HackIT - beta

Jeux Vidéo

HackIt est un jeux vidéo de conquête/stratégie en 3D. Le joueur a à sa disposition une armée d’ordinateurs sous son contrôle. Son objectif est d'utiliser cette armée pour capturer tous les ordinateurs de l'adversaire. Mais ce dernier ne va pas se laisser faire et va également tenter de dérober les ordinateurs sous le contrôle du joueur. S'engage alors une bataille pour la domination totale.

Ce jeux video, en cours de réalisation, est développé grâce au moteur de jeu Unity et est codé en C#. Les modèles 3D sont réalisés grâce à Blender et l'environnement sonore a été réalisé grâce au logiciel Logic Pro.

Les principes de fonctionnement de base du jeu ont été développés. La prochaine étape consiste à développer l'IA des adversaires.

Jetez y un coup d'oeil: HackIt - beta

HackIt - beta

C# Unity 3dUnity 3d BlenderBlender

HPC Gateway

Application Web

HPCGateway

Fujitsu commercialise des solutions HPC (Hight Performance Computer - supercalculateurs). Afin de faciliter l'utilisation et l'administration de ses supercalculateurs, sa filiale, Fujitsu Systems Europe (FSE), développe une application web, appelée HPC Gateway. Mon travail au sein de l'équipe de 8 développeurs de FSE a été de poser les premières briques de la version mobile de HPC Gateway, permettant ainsi l'utilisation et l'administration HPC par smartphone et tablette. J'ai, dans un second temps, participé au développement de la version desktop.

J'ai développé la version mobile en m'appuyant sur le Framework Sencha Touch, la version mobile de ExtJS. J'ai d'ailleurs utilisé de nouveau ExtJS lors de ma participation au développement de la version Desktop. J'ai alors grandement progressé en Javascript, HTML et CSS. C'est d'ailleurs à cette occasion que j'ai découvert le Framework CSS appelé Compass et son langage SCSS.

En ce qui concerne le Back-End, uniquement codé en Java, j'ai utilisé et developpé une API REST qui était utilisé par les versions Desktop et Mobile. La base de donnée utilisée était une base de donnée NoSQL, MongoDB, que j'avais découverte lors du développement de l'application web SkillShareINSA.

Ce fut pour moi l'occasion de découvrir le développement logiciel en entreprise et notamment de découvrir la méthode Agile SCRUM et les intérêts qu'elle présente.


HTML5 CSS3 JavaScript Java

SkillShareINSA

Application Web

SkillShareINSA

SkillShareINSA est une application web réalisée dans le cadre de l'INSA de Toulouse. Son objectif est d'offrir aux étudiants la possibilité de communiquer par tchat vidéo afin d'échanger leurs expertises sur les cours dispensés à l'INSA. Ce travail en autonomie a été réalisé en groupe avec 3 étudiants de l'INSA.

La fonctionnalité de tchat vidéo a été réalisée grâce à l'API WebRTC permettant la communication vidéo en peer-to-peer. L'application web a été réalisé grâce au Framework Javascript Meteor. Ce framework permet de réaliser le front-end et le back-end en Javascript et utilise comme base de donnée une base NoSQL, MongoDB.

Il fallait que l'on restreigne l'accès de notre application web aux étudiants de l'INSA La solution choisie a été d'utiliser le SSO (Single Sign-On) CAS. Ainsi, les étudiants de l'INSA s'authentifient avec leurs identifiants de l'école et sont ensuite redirigés vers notre application web, dans laquelle ils sont maintenant connectés.

Nous avons été confrontés au problème de communication entre notre Framework Meteor et l'API permettant d'utiliser leSSO CAS, écrite en PHP. En effet, notre back-end fonctionne en Javacript. Nous avons donc, en parallèle mis en place un back-end en PHP, qui utilise une base de donnée MySQL, faisant l'interface entre le SSO CAS et notre back-end Meteor. Cela a induit un besoin de cryptage à clef publique RSA des communications afin de sécuriser le protocole d'authentification que nous avons mis en place.

Pour le front-end, nous avons utilisé le Framework CSS Bootstrap.

Jetez y un coup d'oeil: SkillShareINSA


HTML5 CSS3 JavaScript

RJ - Carnet de voyage

Site Web dynamique

RJ

Ce site web est un des premiers sites statiques que j'ai conçu. Je l'ai créé lors de mon semestre au Brésil. Je devais alors apprendre les bases du développement web et souhaitais donner des nouvelles à mes amis et ma famille en France. J'ai donc décidé de croiser les deux besoins en créant mon propre blog.

Jetez y un coup d'oeil: RJ - Carnet de voyage


HTML5 CSS3 JavaScript PHP MySQL

IEEE 802.11n

Site Web Statique

WifiN

Voici un site web statique basique qui contient un exposé sur la norme IEEE 802.11n, autrement appelée WifiN. Ce site, rédigé en anglais, a été réalisé dans le cadre de cours Redes de Computadores II (Réseaux II) enseigné par Luís Henrique M. K. Costa.

Jetez y un coup d'oeil: IEEE 802.11n

Si le site de l'UFRJ ne fonctionne pas, essayez ce lien.


HTML5 CSS3 JavaScript

INSAConnect

Extension Google Chrome

INSAConnect

INSAConnect est une extension Google Chrome développée par mes soins. L'objectif de cette extension est d'offrir aux élèves et enseignants de l'INSA une connexion automatique à son réseau via le wifi dans les bâtiments ainsi que dans les résidences Promologis situées sur le campus.

La connexion habituelle passe par une page captive ouverte à la connexion au wifi où l'utilisateur renseigne son identifiant et son mot de passe puis clique sur le bouton Connecter afin établir la connexion. Cette opération est faite par mon extension à partir des identifiants fournis par l'utilisateur à cette dernière.

Tout l'intérêt de l'extension est la sauvegarde permanente des identifiants dans le local storage. Ainsi, à chaque fois qu'une reconnexion est nécessaire, l'utilisateur n'a plus à renseigner ses identifiants via la page captive puisque l'extension s'en charge pour lui. Il ne remarque même plus qu'une déconnexion a eu lieu.

Pour protéger le mot de passe utilisateur un système de cryptage est mis en place afin d'empêcher la récupération malveillante de cette information critique.

Google Chrome Store

HTML5 CSS3 JavaScript

RioSport

Application Android avec Web Service

RioSport

RioSport est une application Android développée en Java au cours de mon semestre d'étude au Brésil. Nous étions 3 à réaliser ce projet. Il s'agissait de créer un réseau social autour du sport. L'application permet de mettre en contact des utilisateurs désirant se rencontrer pour pratiquer leur sport préféré ensemble.

Ce projet comporte la création de 4 modules complémentaires. Il se compose d'un client Android développé en Java avec le logiciel Android Studio, d'un serveur PHP qui interroge une base de données MySQL ainsi que d'un Web Service faisant le lien entre le serveur et le client en transmettant les informations au format XML.

Chaque utilisateur est enregistré dans notre base de données mais sa connexion à notre application se fait à travers la connexion à son compte Google Plus. Il doit donc posséder un compte Google Plus pour pouvoir utiliser l'application, ce que la plupart des utilisateurs d'un smartphone Android possèdent. Nous avons donc utilisé l'API Google+ dans notre application.

Une fois connecté, l'utilisateur peut publier des évènements sportifs à venir ou consulter ceux publiés par ses amis afin d'y participer.

Ce projet a été réalisé dans le cadre du cours "Software para Smartphone" suivi à l'UFRJ et dirigé par le professeur Sergio Barbosa Villas-Boas (www.sbvb.com.br/).


Java PHP MySQL

Tir-Laser

Electronique et programmation bas niveau

Tir-Laser

Voici un projet réalisé dans le cadre d'un bureau d'étude à l'INSA, encadré par Thierry Rocacher. Nous avons travaillé en binôme sur ce projet. Nous avions comme matériel fourni, des pistolets lasers capables d'envoyer des lasers sous différentes fréquences pour différencier les joueurs, une photodiode, un carte STM32, des enceintes sonores ainsi qu'une carte munie de 4 paires d'afficheurs 7 segments (une paire par joueur). L'objectif était de concevoir l'électronique et le programme qui permettraient de détecter un tir sur la cible, qui n'est autre que la photodiode, de jouer un son et puis d'incrémenter un score visualisable sur les afficheurs 7 segments.

Il fallait être capable de savoir quel utilisateur a touché la cible. La signature de l'utilisateur est la fréquence du rayon laser reçu. Nous avons utilisé une Transformée de Fourrier afin de détecter les fréquences présentes dans le signal produit par la photodiode. Cette transformée est réalisé par le programme écrit en C et en Assembleur et chargé sur la carte STM32.

Il fallait adapter le signal produit par la photodiode à l'entrée de la carte STM32. Nous avons donc construit en amont de cette carte un circuit électronique capable de filtrer le signal et de l'adapter à l'entrée de la carte.

Le programme en C et en Assembleur est également l'intelligence qui retient les scores des joueurs, les incrémente, modifie l'état des afficheurs 7 segments et joue le son à chaque fois qu'un joueur touche la cible.

Cette vidéo présente le résultat final, après avoir réuni tous les éléments fonctionnels. Le pistolet est relié à un boîtier sur lequel est présent un curseur permettant de faire varier la fréquence du laser et donc d'être le joueur 1, 2, 3 ou 4. Vous noterez qu'un son est produit à chaque tir sur la photodiode et que le score du joueur en question est incrémenté sur l'afficheur.


Assembleur - C

MovieFinder

Application Windows

MovieFinder

MovieFinder est un logiciel pour Windows capable d'analyser les films présents sur le disque dur de l'utilisateur et de les organiser dans une bibliothèque intuitive.

A partir du nom d'un film, une requête au site web Allociné est envoyé. C'est la page de recherche qui est visée. Cette page contient 5 films avec leur nom et leur date de réalisation pouvant correspondre au film de l'utilisateur. Une analyse du contenu html de la page reçu permet de récupérer ces élements et de les présenter à l'utilisateur. Il choisit celui qui correspond effectivement au film qu'il possède. Une nouvelle requête est ensuite envoyée à Allociné vers la page exacte de ce film. Une dernière analyse de la page html permet de récupérer la date de réalisation, les 3 acteurs principaux, les 3 réalisateurs principaux, le genre, la note sur 5 des utilisateurs du site et l'affiche. Ces informations sont stockées dans la base de donnée contruite en PostgreSQL.

La dernière information contenue dans la base de donnée est si le film a déjà été visionné par l'utilisateur ou non. C'est là que l'application prend tout son sens. Un soir, un utilisateur peut avoir envie de regarder un film où Brad Pitt joue et qu'il n'a pas encore visonné ou bien encore tous les films d'action datant d'avant 2000. Il n'a qu'à entrer ces critères dans la bibliothèque et une liste de films, correspondant à ces critères, lui est proposée. Il n'a plus alors qu'à choisir le film en fonction de sa note sur Allociné (qu'il peut modifier à tout moment), ou bien en fonction du réalisateur et cliquer sur lecture.

Ce programme complet a nécessité l'utilisation du pattern MVC afin de rendre l'application facilement développable, debbugable et améliorable. De plus les patterns Single et DAO ont été utilisés afin de facilité les requêtes faites à la base de donnée PostgreSQL.


Java PostgreSQL

Agrégateur d'image

Agrégateur et désagrégateur d'images

Ce module développé en C est un module d'agrégation de plusieurs fichiers images au format png, en un seul et même fichier ainsi que la recomposition de ces fichiers individuels à partir du fichier agrégateur.

L'objectif était de pouvoir cacher les images présentes dans le dossier de n'importe quel programme lors de la distribution de ce dernier aux utilisateurs. Ainsi il est impossible pour l'utilisateur de visionner les images en dehors de l'utilisation du programme distribué et surtout d'empêcher la modification et la suppression de ces images par l'utilisateur.

Grâce à la bibliothèque SDL_Images permettant de récupérer toutes les informations contenues dans un fichier png, j'ai pu créer mon propre fichier image contenant plusieurs images. L'utilisation de cette même bibliothèque permet également la re-création des images individuelles si nécessaire.


C

SimpTCP

Programmation réseau

SimpTCP est le nom donné au protocole réseau que nous avons développé en binôme durant le deuxième semestre de 3ème année à l'INSA.

L'objectif était d'étudier la RFC du protole réseau TCP en essayant de reproduire ses fonctionnalités de base. Il fallait être capables d'effectuer des transferts de données entre 2 protocoles SimpTCP situés sur deux machines distinctes d'un même réseau. Chaque envoi effectué devait être accompagné d'un mécanisme de contrôle de pertes par acquittement et du déclenchement d'une réémission si nécessaire.

Ce développement a nécessité la création et la manipulation de plusieurs Threads.


C

Création d'itinéraire

Meilleur itinéraire - théorie des graphes

Ce projet en binôme s'inscrit dans le cadre des cours de Théorie des Graphes et de Complexité des algorithmes. Un programme contenant plusieurs cartes routières de différents tailles et de différents endroits nous était fourni. Il y avait par exemple la carte routière du campus de l'INSA, la carte de la ville de Toulouse ou bien encore la carte routière de la France.

Nous avons appliqué différents algorithmes issus de la Théorie des Graphes afin de déterminer et de tracer sur la carte, le meilleur itinéaire d'un point A à un point B.

Nous avons également utilisé nos connaissances en Complexité Algorithmiques car les quantités de données exploitées et traitées par les algorithmes de graphes étaient importantes. La mise en place d'algorithmes de complexité exponentielle par exemple, conduisait à l'explosion du temps d'aboutissement des calculs et donc à un programme inutilisable. En plus d'utiliser des algorithmes de complexité logarithmiques plutôt qu'exponentielles, nous avons également cherché à implémenter des structures de données dont les manipulations telles que la recherche d'éléments étaient peu coûteuses en temps de calcul. Cela nous a donc conduit à l'utilisation de tables de hachage par exemple.


C