-
Planisware
- Full Stack engineer
2018 - maintenant
- Contribution to the evolution of the Planisware Orchestra standard product
Technology environment : JAVA 7, JAVA EE, ExtJs, Xml, JSP, AJAX, Java Script, HTML, CSS, IntellijIdea,
Maven, JBOSS wildfly, PostGreSQL, Git, Gitlab
- Development of the Stage-Gate® Orchestra Plugin which is a conceptual and operational line
of projects following the “Idea-to-launch” process :
The aim of Stage-Gate® is to structure your project life cycle by dividing it into distinct phases or
stages, separated by a validation point or milestone (gate), to view where the project stands, and
mitigate possible related issues
Technology environment : JAVA 8, JAVA EE, Xml, JSP, AJAX, JavaScript, HTML, CSS, Intellij Idea,
Maven, JBOSS wildfly, PostGreSQL, Git, Gitlab, Bitbucket administration
- Setting up Bitbucket server that will replace Gitlab in order to have some necessary plugins only
available on Bitbucket Server so that we can improve our branch model and implement git workflow
properly
- Configuration of hooks in Bitbucket Server(commit and push check, Jira key etc)
- Technical presentation in the form of a seminar to convince people about the interest of adopting the
git workflow for the management of branches and the implementation of Bitbucket server to
automate some Git tasks
- Presentation of a workshop that I did in the Riviera Dev event 2019 about a future technology
enhancement idea : GraphQL, SpringBoot and Lambok
The workshop is available within my personal GitHub :
https://github.com/othmaneDev/graphQLSpringBootWorkshop
-
Supralog
- Supralog consultant : Software Engineer at Air France
Antibes Juan les Pins
2017 - 2018
● Development of SOAP webservices for the NDC project (New
Distribution Capability)
● Use of Lombok as a maven plugin to simplify code (Automatically creating immutable beans, generate @EqualsAndHashcode, Setters, ...)
● Use of Jackson that provides many ways of working including simple POJO converted to/from JSON for simple cases. Jackson provides a set of annotations for mapping too.
● Realization of unit tests + integrations (Using Mockito + JUnit)
● Monitoring (Using Aspects -> AspectJ)
● Java Management eXtension (JMX) uses Spring annotations to
monitor and control certain parameters and methods of our
remote webapps using Java Mission Control (JMC)
● Load test scripts for exposed web services using the Gatling
and scala framework as a programming language
Team of 11 people: 7 developers - 2 Business Analysts - 1 Scrum
Master - 1 Product Owner
Technology environment: Java 8 (Java Associated Certification acquired in June 2018), Lombok plugin, Jackson API, Multi-tier architecture, Spring
core, Spring Boot, Bamboo, Bitbucket server, Junit 4, Junit 5, Mockito,
Maven, JAX-WS, Tomcat 8.5, Gatling, Scala, IntelliJ integrated
development, Git, "SAFE 4.0" Project management (Scaled Agile Framework- Certification acquired in June 2017)
-
Amadeus Nice
- Software developer at Amadeus IT Group
Sophia Antipolis
2015 - 2017
In the Digital Design Service (DDS) of Amadeus, I develop Finnair website (www.finnair.com) using following technologies :
- JAVA SE 7
- JSP/JSTL, Javascript, HTML/CSS, Jquery, UnderscoreJS
- FrameWork Javascript : Jquery
- Maven (For managing dependencies), Ant
- Design Pattern Builder for the bean's construct + Fluent API as architecture
-Tiles framework is used for the view rendering (Composite view pattern)
- JUnit test using Mockito
- Framework JEE: Struts (Webwork), Spring MVC
- Git, Stash, JIRA, SonarCube
- AngularJS 1.4 ( Amadeus training)
• Agile Scrum methodology
- Implement User Stories based on customers requirements (Acceptance criterias)
- Ensure good follow up on production loads
- Around 10 people in the team
• Iplanet and Apache web servers configuration
- Session cookie management
- Weblogic passthrough
- Static content
• Write / read / edit documentation within Confluence (Atlassian Documentation)
• One of the technical point of contact of the team after one year experience
-
Fitnet Manager
- Ingénieur JAVA EE
MONTPELLIER
2015 - 2015
Placed under the direct responsibility of the technical director of Fitnet Manager in Montpellier, I was in charge of implementing the new TimeLine module for managing notifications on the ERP Fitnet Manager solution. This new feature eagerly awaited by the RENAULT customer
CONSULTING includes:
● A configurable "Notification" function that can be used to plan
Automatic email sending, with:
○ automatic determination of the recipients of the mail
○ automatic determination of documents to be attached
○ configuration of the generic message to display in the mail
● Trace in database also the modifications made by the
users on objects in the Projects / Business application, Invoices, etc.
● View the history of notifications and changes in a thread news, the "TimeLine" (as in Facebook).
● Programming a nocturnal batch on Node.Js to outsource the automatic execution of notifications, which will allow the Fitnet application to improve performance since the majority of the modules are developed on the JBOSS7 server.
● Perform regression tests using the Selenium WebDriver API, as well as the Java JUnit Framework for unit testing, and Jenkins as a continuous integration tool (Creation of build for bundles ...).
Technical Environment: Integrated within a young and stimulating team as a
as a developer engineer. I was framed and trained in the JSF 2 / PrimeFaces / Hibernate / Node.Js / Express.Js / JBehave / JUnit / MongoDB / Rest / Jenkins / SVN Frameworks.
Programming language: Java 7, JavaScript
Programming language: Java 7, JavaScript
Reference: Christophe CARVALHO (Project manager in Fitnet Manager): christophe.carvalho@fitnetapplication.com
-
Université d'Aix marseille
- Ingénieur JAVA EE
2015 - 2015
La plupart des plates-formes actuelles proposent à leurs contributeurs un champ tags, sur lequel reposent une partie importante des fonctionnalités de navigation et de recherche. Des sites tels que Flickr (partage de photos), Youtube ou encore Dailymotion, ont favorisé le développement de la pratique du tagging parmi un large public d’internautes. Les tags sont la plupart du temps de simples chaînes de caractères (mots-clés, smileys, etc.), utilisés comme des étiquettes pour décrire une ressource.
Une plateforme de tagging des services web nommée WSTP (Web Service Tagging Platform) a été développée . WSTP est une application web permettant de tagger aussi bien des requêtes utilisateurs que les services, de faire une recherche par tag des services. Les tags attribués aux services possèdent un poids qui reflète l’importance du tag.
L’objectif de ce projet est d’étendre WSTP pour prendre en compte les fonctionnalités suivantes :
- Ajouter une fonction d’authentification des différents internautes accédant à l’application.
- Améliorer la fonction de recherche de services par tag
- Ajouter l’historique sur les services qui ont été tagguées.
- Ajouter les services les plus tagués par rapport à une catégorie donnée, les tags les plus utilisés (sous la forme d’un nuage de tags).
- Proposer aux internautes des services en fonction de leurs tags.
- Ajouter les métaTagging : Un métatag est une information que l'on rajoute à un tag pour spécifier son utilisation
- Améliorer le design de l’interface graphique (En utilisant le framework JS Bootstrap/HTML5/CSS)
WSTP a été développée en utilisant les technologies suivantes :
- Le SGBD MySQL ainsi que l'API JPA, pour la base de données et son interface avec la partie métier,
- JavaEE et son serveur d'application GlassFish, pour la partie métier,
- Enfin, les technologies classiques du web HTML5 / CSS / javascript/Bootstrap pour la partie client, ainsi que les langages de template JSP / JSTL.
- Partage de code avec GITHUB
-
BULL
- Stage de fin d'étude 2014
Les Clayes-sous-Bois
2014 - 2014
(Stage de fin d'étude chez BULL) : Ce stage s'est déroulé en deux étapes : Phase 1: Étude comparative de Framework
« Responsive Web Design » (Sencha ExtJS,Bootstrap,Jquery Mobile...). Phase 2: Développement du module de rapportage pour une application
de gestion de la qualité de l'air (PHP5 + Symfony 2.4+ORM Doctrine + Extjs4+XSLT+XML)
Référence: Olivier CHEGUT (Directeur technique au sein de BULL): olivier.chegut@bull.net
-
COGNITEEV
- Projet industriel
Pessac
2013 - 2014
Participation au développement et à la mise sur le marché de la solution Crawlr.io, pour l'entreprise Cogniteev SAS, au sein d'une équipe constituée de 5 élèves ingénieurs et dans le pur esprit de la méthode SCRUM.
Déroulement du projet:
- Familiarisation avec l'environnement d'exécution Hadoop/Nutch.
- Création d'un vrai environnement de crawl distribué en créant un unique cluster Hadoop constitué de plusieurs serveurs.
- Compréhension du code de Apache Nutch et programmation des jobs Nutch (MapReduce) en Java permettant d'inclure et d'extraire des données métiers durant le 'crawl' d'un site web.
- Etablissement de la jonction entre la base de données MongoDB hébergeant les données relatives aux clients (souscripteurs de Crawlr.io) et l'application Front-office afin de déclencher des Jobs Nutch (lancement d'un crawl, récupération des données d'une page Web, récupération des données d'un ensemble de pages, …) à travers un middleware RESTful écrit en Python et Flask.