Experience
- Algorithms and Object-Oriented Programming, lectures, tutorials and practicums.
- Web development with Vue.js, lectures, tutorials and practicums..
- Software Engineering, tutorials on Design Patterns.
SNCF is a French state-owned railway company. It operates the country's national rail services, including the TGV, France's high-speed rail network.
Work responsibilities included:
- Authoring training materials and exercises on Java, Spring and Angular eco-systems.
- Delivering training sessions.
- Mentoring trainees and walking them through different exercises.
- Design and development of software projects, including server-less architecture and REST APIs.
Shared Services Squad
Shared Services is the cross-platform technical team at Malt which manages software modules common to the entire platform, as well as some central functionalities such as messenger.
Selected projects carried out within Shared Services:
- Nuxt 3 Migration. The decision was made to simplify and modernize the rich technological stack at Malt. This had to be achieved without any trade-off in terms of response time, user experience or SEO. The choice was made for a migration to Nuxt 3 framework. I actively participated in the Singapore task force to migrate the user-facing part of the platform; Malt's website.
- Enabling search in messaging. Messenger data is indexed by Elasticsearch. I developed the keyword-based search functionality in messaging to benefit from this indexing.
- Leveraging the data stack to execute batch jobs for analytical purposes. This project aimed at relieving Malt platform of certain computationally heavy tasks, such as updating freelance statistics, by delegating those tasks to the data stack which is more suited to this type of logic.
Growth Squad
The team is responsible for an optimal user experience when signing up for Malt.
Tasks carried out within the Growth Squad:
- Participation in team leaders meetings. I regularly communicated the progress of current tasks to other teams. These meetings were also an opportunity to address blocking points and interdependencies.
- Estimation and T-shirt sizing of the tasks to be carried out.
- Design and development of planned tasks.
Back-end development
- Improvement and customization of the platform's REST API.
- Active Directory authentication support.
- Java 11, Spring Boot, Spring Data, Spring MVC.
Front-end development
- Internationalization of the web application.
- Improvement and customization of different components according to the customer.
During my mission at Inetum Cleva, I participated in the following tasks.
Cleva REST API
- Architecture and technical choices (OpenAPI, Mapstruct, etc.).
- Design of APIs (definition of endpoints, content of requests and responses).
- Development and implementation (REST resource, SOA improvement, business logic).
- Non-regression testing and verification (unit tests, integration tests).
Extranet solution
- Manage multi-project Angular solution management (4 user spaces and a common base).
- Lead the internationalization project (applications available in French and English).
- Development and production of components and services (Typescript, Angular 10).
- Connection to Cleva REST services.
- Connection to third-party services (payment and electronic signature).
- Mentoring and evaluation of practical work in Algorithms and Data Structure.
- Preparation of exercises, supervision and evaluation of practical work, corrections of exams in HTML and Web Programming.
- Supplier interface for creating and modifying offers.
- Investor interface for browsing and trading offers.
At the end of the training, participants acquired the following skills:
- A mastery of the basic notions of Java.
- Advanced object modeling.
- Design of a user interface using JavaFX.
- Client-server architecture.
- Web development with Servlet and JSP.
- MVC architecture.
Throughout my mission at April, I successfully completed the following projects.
Architecture and Technical Redesigns
- DMS migration: this project aims to decommission Alfresco in favor of and in-house Document Management System.
- LDAP migration: the authentication system has been centralized in compliance with General Data Protection Regulation. I actively participated in the design, implementation and monitoring of the migration of all user accounts to the new authentication system.
Development
- Revamp payment method: this involves handling access to the different cash-in and cash-out methods in a centralized manner. The authorized payment methods vary depending on the connected user, the transaction in progress and the type of receipt being processed.
- Mass correction of customer information: a mechanism for updating customer information based on a patch file was put in place to help agents fix data entry errors.
- Revamp of the DMS tree: access to documents to be sent to the customer in the event of a claim is reorganized and simplified.
- Contract re-intermediation: automate the task of migrating contracts and customers from one point of sale to another.
Data Integration
- Opening of points of sale oversees: recovery of customer portfolios and contracts from files extracted from third-party computer systems.
- Decommissioning of legacy Moovenet software: cross-referencing of data to import contracts from the computer system of a partner company.
Team Life
- Welcoming and training new colleagues: having a substantial technological stack, Aprit Technologies offers a technical presentation to all its employees upon their arrival. I supported this presentation for two developers during my mission. I also participated in interviewing candidates for development positions.
During this mission, I took charge of the entire software development of the extension, while ensuring fluid continuity of proper functioning of the product that was already in production in several cities in France and abroad. The extension covers the following features.
- Improved user experience (dashboard, diagrams and statistics).
- Taking into account new equipment capabilities (configuration, monitoring, etc.).
The following technical requirements have been met.
- Web interface developed in Java using Material Design components.
- Two-way communication with endpoints via Sierra Wireless AirVantage API (REST and MQTT communication protocols).
- Management of periodic batch processing.
Technical environment
- Java 8, MySQL, git.
- GWT (Google Web Toolkit), GWT Material.
- Spring Core, Spring Batch, Hibernate.
- JUnit, DbUnit, Mockito.
Cohorte Technologies specializes in interoperability and service-oriented development.
I have worked with Cohorte Technologies as an employee and as a consultant. During this collaboration I carried out the following projects.
- Cohorte IoT Pack project: a generic IoT solution
- I developed the communication layer for the terminals (client side), using two protocols: LoRaWAN and HTTPS (via a REST API).
- I integrated the aggregator (server side) with Orange's Live Object REST API.
- I developed a web UI for terminal management in Angular Material and Python.
- Agilium GED Project
- I studied the technical choices and defined the architecture of an electronic document management system.
- I designed and developed a REST API based on the JAX-RS standard.
- I designed and developed a WebDAV interface as well as a JavaScript library allowing you to open documents with Microsoft Office with a single click for an authenticated user.
- I developed an internal authentication and user management module, as well as an SPI and an external authentication module.
- I developed a Windows installer, without any dependencies.
- Agilium License Project
- I studied the technical choices and defined the architecture of a software package license manager.
- I developed a client certificate generator signed by Agilium following the X.509 standard.
- I developed a software license generator, offering a REST API.
- I developed a license verification and interpretation module, with a temporary trial license manager.
- Cohorte Studios Project
- I participated in the design of an Eclipse toolkit to facilitate development with Cohorte framework.
Technical environment
- Java, JAAS, Eclipse 4, Eclipse PDE
- Git, Maven, Jenkins
- Python, Raspbian, PySerial
- HTML5, JavaScript, AngularJS, Material Design
The Grenoble Institute of Technology brings together several engineering schools, including GI and ENSIMAG.
I tutored programming language projects in Java and C, have given lectures in introduction to database management systems. I also monitored practical work and tutorials in algorithms and data structures.
The work was conducted as part of a collaborative national effort in the frame of ROMMA project.
The project aimed to automate the process of preparation of the digital mock-up; that is the geometric representation of a product, in order to meet simulation process requirements. In the context of my research, a method to automatically identify components functional properties, and to restructure their geometry according to this functional knowledge, was proposed and implemented. This implementation provided semantic annotations that are necessary for the finite-element-analysis preparation phase. The method validity was against real-life data provided by industrial partner.
Working from customer's premises, I supported one of ITS' major products; Phoenix, the core banking system, where all day-to-day banking transactions are processed. Working with ITS has reinforced many values, among which commitment, creativity, cooperation and productivity.
After the project has been successfully launched in April 2007, focus was shifted to customize POSS. Once the new system was largely stabilized and adapted to the company's needs, a new project was initiated and baptized Vanman. It was meant to address overlooked issues in original POSS, particularly wholesales management. The initial version of the system was put to operation within less than three months, many changes has been made to this module later on, in accordance to users' feedback and continuously emerging requirements. Vanman, involving many technologies, such as mobile systems development, XML storage, client-server model communication, was then one of the core business software that integrates with Mabco's information system. Along the journey many other minor projects have been initiated and successfully delivered.
The job required keeping up to date with cutting edge Web technologies of the time, to find efficient solutions for the ever growing Internet users' needs.