05/25 - 06/25 GLPI IA plugin MC Tournai.

Wrote a GLPI plugin classifying tickets according to the glpi_itilcategories table content using mistral-7b-instruct-v0.2.Q4_K_M, a 7-billion parameter large language model fine-tuned for instruction-following tasks.
Nearly 3/4 of the tickets are sent from email, where it is not possible to specify the issue's category. On the remaining 1/4, only few officers where specifying category, hence it was not possible to do periodic stats for budget predictions.
Issues:
- Wrote a python service activated through Debian's systemctl that loads the model, builds the prompt and waits for incomming messages on port 12345.
- Implemented GLPI's setup.php and hook.php files to send the ticket's content to the python service that replies with the category name and id according to the db content.
07/22 - 09/22 Site audit MC Tournai.
- Navigating the Wordpress jungle...
- No Google analytics code was injected in the sources so we used a plethora of free version of on-line tools.
- Scored 76%.
06/15 - 08/15 Web designer eddyloozen.org.
06/06 - 12/06 Open Interface Layer Belgacom.
Belgium Telco market's liberalisation imposed Belgacom to adapt its inner business to the new legislation's requirements. Therefore, a team of C++, SQL and XML specialists was hired to write from scratch the National Whole Sales (NWS) Tuxedo server to manage OLOs, ('Other Lines Owners’, such as Tele2).
This new server was to take place in the Open Interface Layer (OIL), a collection of Tuxedo servers implementing Belgacom's middleware. I was involved in decoding incoming XML files for the NWS server.
Belgacom made the NWS server its top priority. As the team performed very well, some extra time was available, so I’ve been asked to develop another Tuxedo server OILKGB ('KPI Generator Broker', KPI standing for 'Key Performance Indicator').
For each OIL server, OIL KGB produces an XML file containing the number of messages sent, retried and processed and the position of the message in the queue. This XML file is being used to display graphical information on a web browser.
This server was a challenge, as it was not predicted in the planning. Because of its intensive computation inside huge tables, Oracle 9i state-of-the-art performance techniques were required. This server is very supple in its use so that you can manage every kind of resources: Queues, Memory, CPU load, Database load and so on.
The XML files produced by OIL KGB are used by a decision algorithm to balance the OIL activity. For example, if a certain server has to many data to process, a new instance of it will be created in memory to share the work load between two CPU's.
Issues:
- Various change request for already existing Tuxedo servers to take a grasp on the OIL architecture.
- Reprocessing feature implementation.
- Incoming part of the National Whole Sales Tuxedo server.
- Testing other team member's work.
- OIL KGB Design, implementation and optimisation, use of Oracle 9i performance techniques.
- Daemon conception and implementation.
- Default tracker once every month and a half.
09/01 - 06/02 Programming courses Metodika.
- Hardest task: Explaining C pointers and their suppleness justification.
03/01 - 08/01 FIX messages Tradeware.
Tradeware’s business is to offer their customers a multi-platform, fast and customisable trading system that does real time orders transactions on various stock markets. Due to the fact that programs are dealing with real money, the system has to be intensively tested, especially using regression tests.
To achieve this, a program simulating reactions from a stock market using some kind of scenario appeared to be the most natural solution, thus, a tiny script language able to manipulate FIX messages at run time was to be created. FIX stands for Financial Information eXchange.
My work was to design code and test such a script language, and to integrate it in a system managing them as scenarios.
Issues:
- Designed a set of static parsing functions leaving char* tokens in a bi-directional list that holds the whole parsed script and that serve as argument to the constructor of a Sequence object.
- Designed classes holding the base concepts of any language: Sequence, Predicate, Affectation, While, Ifte (If, then, else).
- Use of ACE library for synchronisation.
09/2K - 12/2K SMS Gateway Winbox.com.
Winbox.com is a start-up that brought to life a pretty cool idea: Sending a mail to 32475123456@winbox.com will notify the receiver of this mail on his mobile via SMS. If the receiver's mobile is WAP enabled, going to htpp://wap.winbox.com will let him reply to your mail. If not, a text to speech program will read the mail's body for him.
From a B2C orientated business, Winbox had to get over B2B, in order to grow up. This change of business design ‘on the fly’ involves a redesign of some parts of the system for being able to match with new requirements.
My work was to troubleshoot such parts, improve them and implement new functionalities using Java.
- Java servlets, IP firewall, authentication and encryption.
- Complete re-implementation of SMS providers (QUIOS, Minick and Unimobile) with a well abstracted design in order to add new providers easily, (Http POST/GET, IP connection conceptualised via an interface).
- Creation of a spooler that increase throughput from 5 sms/sec to 2500 sms/sec, thank's Dov Bulka.
- Classes to drive GSM terminals connected to a serial port such as Falcom and Siemens M20, to send/receive SMS for administration purpose.
- Writing of technical docs.
07/2K - 08/2K SMS Gateway Noctor consulting.
This program implements a service for clients that requests to send short messages over mobile network. The messages can be sent directly to the mobile phone or delayed via a batch process. The program rely on Noctor’s SMS JDK, however other protocols may be used such as the Sema’s UCP or Nokia’s CIMD.
The SMS Gateway consists in two threads working on the same database.
- The batch thread is responsible of setting up a flag (ready to send) in the message table.
- The router thread picks message and routes them to the right SMSC.
The other part of the SMS Gateway is the Server, which waits for incoming requests through the Corba's ORB (Object Request Broker). The server is responsible of putting the SMS to send in the database.
My work was to implement the overview design (basic functionalities).
- Setting up an ODBC-JDBC bridge.
- Queries and rows fetching from Java.
- ‘New way of thinking’ due to the threading abilities of Java.
- Remote control through an IP connection of the threads (suspend/resume).
- Simple IDL interface.
- Client / Server in java matching the CORBA architecture.
09/98 - 04/99 SMS Gateway Proximus as Logica.
This program is an internal service developed for Proximus. Client application sends files in a network directory, the SMS gateway spools them accordingly to some priority settings, and process them: They are sent to the SMS center, running the SMPP 3.3 protocol.
My work was to design and implement the whole application using Unix, C++ & flat files.
- Use of variables environment to configure directory paths.
- Use of a configuration files for IP address, priorities, allowed files extensions …
- Implementation under Unix of a background process.
- IP connection in C to the SMSC.
- Custom implementation of the SMPP 3.3 protocol in C over TCP/IP.
- Spooler object implemented in C++, by derivation of a custom bi-directional list.
- Alert messages to administrators via e-mail and pagers.
- Reprocess feature at the record level in case of a system failure.
04/98 - 08/98 Euro upgrade Proximus as Logica.
My work on this project was to code sybase SQL queries shaped by another team on a VAX system, and to test them accordingly to the Proximus test specification procedures.
- Navigating the VAX directory architecture.
- Implement queries under Sybase SQL Server.
- Following Proximus test specification procedures.
08/97 - 04/98 Eufiserv's CMIS Eufiserv as Logica.
The CMIS (Central Management Information System) is a kind of big eye that stores in the database transactions done on the X25 Eufiserv network. Technically speaking, the CMIS rely on three entities:
- A database.
- A collection of dll’s.
- Two front-end applications, one used by financial analysts, the other used by security officers.
The database was to store various financial informations and provided datas for the merging process of credit cards numbers to store statistics about transactions.
Dll’s were used to store the ‘behind the scene’ work of a Windows NT4 service that was to be started prior running any front-end applications. The two front-end applications consist of a collection of screens to use and administrate the whole application.
My work was to debug and improves performances of the CMIS using C++, MS SQL Server as well as implement change requests issued by the client. Logica hired a second programmer, we formed a dream team, we did good job IMHO...
- Debugging a NT Service and .dlls managing the RACAL cards (Security cards), change requests implementation, VB & Sheridan objects, as a starter to have a grasp on CMIS.
- Complete migration & rewrite of logic of the main CMIS's functionality from embedded SQL in C to stored procedures in the server, which dramatically improves performances by avoiding network overhead.
- Nice brainstorming sessions with financial analysts about merging credit card numbers.
06/96 - 07/96 Clipper to Delphi F.I.C.S.
ABN-AMRO asked F.I.C.S. to convert an existing Clipper application to Delphi.
I was involved in the team.
- It’s tricky to understand the Clipper source and it’s documentation when written in Dutch. Probably the HR manager did not look closely enough at my CV, were nothing says that I am a Clipper programmer neither a fluent Dutch reader.
03/96 - 05/96 HORTA banking F.I.C.S.
The HORTA application was to be a classic MDI (Multiple Document Interface) home-banking application.
My work was to develop a prototype using Delphi.
- Creation of a very handy contact book.
- Delphi’s Data source and data object manipulation.
- Consistency about the look and feel of the application.
12/95 - 03/96 Similitudes database F.I.B.
The goal of the Similitude database was to help engineers to find the reference of already manufactured ovens that matches, as closely as possible, characteristics of new incoming orders for reusability purposes.
My work was to design and implement the whole application using MS Access.
Issues:
- Database, forms & reports design, Access basic modules.
- Nice meetings with the engineers about required functionalities.
02/95 - 06/95 SUPRA gravimeter R.O.B.
The supra conductor gravimeter of the Royal Observatory is so sensible and accurate that walking around him may cause perturbations during the acquisition process. Thus, It has been decided to write a Client / Server application to retrieve the data from a distant place, the Membach caves of Luxemburg.
My work was to design and implement the application using Novell DOS 7 & C.
Issues:
- C generic library to manage the Real Time Clock of the PC (Not the 1C interrupt) in order to have precise pulses (Between 2Hz and 32KHz) for acquiring, sending and receiving datas over the modem.
- C generic library to manage the UART serial ports.
- Conception of a simple protocol to send and receive files over the modem.
- Conception of a simple text based user interface, windows, buttons, progression bar...
- Such a great stage, thank you André !