Julien Castiaux


2019 - 22 ans

Autopypa

Projet perso

Une simple application web qui écoute les webhooks de git pour automatiquement packager et déployer des modules python sur mon index personnel

Regexp

Projet perso

Un moteur d'expressions régulières, il propose un outil similaire à grep pour effecter des recherches sur des fichiers

Ce moteur implémente les conceptes d'automates finis et propose plusieurs niveaux d'optimisation

Expr

Projet perso

Un moteur capable de calculer des expressions mathématiques arithmétiques, logiques et sur les bits.

Il utilise des techniques de traitement du langage et de compilateurs

2018 - 21 ans

Sorting Algos

Projet perso

Implémentation de divers algorithmes de tri en python pour étudier les ordres de complexités.

Ont été implémentés : bogo, sleep, bubble, insertion, selection, heap, shell, merge, quick, radix_lsd, counting

Webgames

Travail de fin d'étude

Webgames est une API qui permet à des développeurs de jeu-vidéo de déployer leur jeu dans le cloud. À la manière de League of Legends, Counter-Strike: Global Offensive ou encore PLAYERUNKNOWN BATTLEGROUND, chaque partie est hébergé sur un serveur dédié qui est lancé à la demande lorsque mon service a constitué un groupe homogène de joueurs.

La note finale de 17.5/20 m'a été attribué pour l'ensemble du projet.

Rapport final

Slides de la présentation

Salon des Développeurs

Communauté en ligne

Le salon des développeurs est une petite communauté francophone d'environ 200 développeurs, sys-admins, graphistes et entrepreneurs, rassemblant des passionnés d'informatique de tout âge. J'y suis actif depuis 2016 en tant que membre habitué (grade honorifique), le salon python est mon bastion, je suis considéré comme le gourou de ce langage.

On discute de l'open-source, des nouveautés du monde IT, on débat sur les langages de programmation et leurs paradigmes, on aide des jeunes à prendre en main Linux. On organise des gamejam pour stimuler les esprits et passer du bon temps à développer des jeux ensemble.

Grâce au déclin d'anciennes plateformes IT comme Bukkit France et IronCraft, le Salon des Développeurs s'est construit sur une base solide de membres engagé et compétents. D'autres communautés en ligne comme Graven, CodeFr et Not a Name n'ont pas cette même base et redirigent régulièrement leurs membres d'exception vers notre communauté.

sudoku.rs

Collaboration

Implémentation du jeu du sudoku en Rust pour apprendre le langage et les mathématiques associées à la création d'un jeu de sudoku

Pour le moment uniquement la génération d'une grille complète a été implémenté.

Robotik-B33R

Collaboration

Projet réalisé durant un hackathon organisé par le Microsoft Inovation Center, l'objectif était d'améliorer l'espace de travail.

Avec mon groupe nous avons décidé de faire une application pour commander des bières au bar, nous avons entrainé une IA pour reconnaitre et différentier différentes marques et programmé un bras articulé pour attraper la bière voulue et la déposer sur le comptoir.

Hackjam React

Collaboration

Introduction à react où j'ai travaillé avec mes amis Martin (à gauche) et Mathieu (à droite)

Nous avons réalisé une petite application de gestion de festival, la base de données et le canvas général du code était fourni, il nous restait à combler les trous.

Nous nous sommes beaucoup amusés (voir les quelques photo ci-dessous), un grand merci à Mme Vroman pour cette photo mythique !

2017 - 20 ans

Webgames-legacy

Collaboration

Voir la description de Webgames

La version originale était une implémentation du jeu Bomberman dans le navigateur (mon ami Mathieu Rousseau s'étant occupé de tout le front-end), ce projet a dérivé sur l'exploration de différentes bibliothèques de gestion de la concurrence en python (multi-threading, multi-processing) et de la toute jeune bibliothèque asyncio (modèle réseau asynchrone) et des jeunes frameworks web qui en découlaient (aiohttp et sanic)

Chaque version m'était l'accent sur une partie précise, tantôt l'optimisation des jeux vidéos, tantôt la sécurité de l'app, tantôt la haute disponibilité. Au final j'ai décidé de finir ce projet seul via mon travail de fin d'étude.

demineur

Jeu

Petit jeu de démineur implémenté d'abord via ncurses avec python et puis transposé en web.

BotDiscord

Projet perso

Bot pour le chat Discord qui a été réalisé pour faciliter le changement d'année. Sur le discord ephec-ti (dont j'étais l'administrateur), chaque étudient était placé dans un groupe selon sa classe, les permissions d'accès aux salons de discussion étant définis sur le groupe et pas sur les utilisateurs directement. Avec la nouvelle année changer tout le monde de classe était hyper chiant, j'ai donc créé un bot qui le faisait à notre place. Ensuite des petites fonctionnalités sympathiques se sont ajoutées.

Dev Day Mons 2017

Rencontre

Organisé en partie par le Microsoft Innovation Center, la Dev Day 2017 à Mons était assez axé technologies Microsoft comme C#, ASP .NET Core ou SQL Server.

Les conférences étaient pour la plupart intéressantes et nombre d'entre nous (nous y allions en car avec l'EPHEC) sommes rentrés avec l'intention de s'intéresser de plus près à ces technologies.

2048.rs

Jeu

Le jeu 2048 implémenté en JavaScript et jouable directement depuis un navigateur

Webbash

Projet perso

Un genre de terminal avec un faux file-system et quelques commandes linux, le tout développé en Javascript

2016 - 19 ans

jumpit.js

Jeu

Un plateformer développé un javascript

art.js

Projet perso

Whist

Projet perso

Le Whist est un jeu de carte très joué en Belgique, frustré de ne pas y jouer autant que je le voulais.

Première application en ES6, elle est basée sur une stack SEAN (socket.io, express, angularjs et nodejs). Les règles du whist étant très bien documentées, j'ai pu rédiger une armée de tests unitaires pour vérifier que le serveur suivait bien les règles.

Malheureusement même si le projet est très bien avancé, il manque toujours un système de score et le rendu graphique est encore à travailler

WebIRC

Collaboration

Avec des potes de l'EPHEC et surtout Mathieu Rousseau, nous avons développé un client IRC avec les technologies du web.

Basé sur une architecture SEAN (Socket.io-Express-AngularJS-NodeJS) et au design moderne grâce à HTML5 et CSS3, WebIRC a été utilisé au quotidien dans la classe pour accéder aux serveurs IRC qui étaient bloqués par le pare-feu de l'école.

Nous avions aussi notre propre serveur IRC installé et configuré par mes soins.

2015 - 18 ans

network.js

Outil

pong.js

Jeu

Live-coding

Projet perso

Live-Coding a été un essai de synchronisation de l'éditeur de code Atom et le navigateur, le but était de pouvoir streamer du code sans devoir faire un partage d'écran.

Le projet n'a jamais abouti.

2048.js

Jeu

BotIRC

Projet perso

Premier projet python d'envergure, BotIRC est... un bot irc. Plusieurs versions se sont succédé pour au final se poser sur une architecture modulaire : chaque fonctionnalité était développée dans un plugin à part de l'application et chargée au démarrage.

L'API permettait de pouvoir enregistrer des fonctions à des événements (un utilisateur rejoint un salon, un utilisateur envoie un message, ...) et d'effectuer des actions (envoyer un message, donner un rôle à un utilisateur, etc)

Un ami travaillait par exemple sur un projet d'IA chatbot, il a pu intégrer son IA à mon bot IRC très facilement

Peer-to-Text

Collaboration

2014 - 17 ans

MCBin

Collaboration

Avec mon ami Unixfox, nous avons développé une intégration du logiciel serveur minecraft à Linux. Le script a été utilisé sur quelques serveurs minecraft (les miens et ceux d'Unixfox entre autres, une quinzaine).

Si cette tâche me semble triviale aujourd'hui, c'était la première fois que je réalisais un script conséquent en bash. Le script fonctionnait avec initv le système de gestion des services par défaut sur Debian 6 et était donc complètement intégré à l'OS au même titre qu'apache et les autres services. C'est également la première fois que je contribuais à un projet open-source sur github.

Devbukkit

Communauté en ligne    Collaboration

De 2013 à 2014, je me suis investi à fond dans un forum en ligne axé développement Java/PHP et administration système. Je suis passé par les cases support et modérateur avant de devenir co-administrateur du site. Nous nous réunions chaque semaine sur skype avec un staff d'une petite vingtaine de personnes pour discuter ensemble des différentes tâches à réaliser. Avec le recul, je peux dire que j'étais une sorte de HR de la plateforme, j'organisais les réunions, prenais note des décisions prises et gérais l'équipe de modération du forum. Notre équipe était constituée de développeurs, d'administrateurs systèmes et d'info-graphistes en plus de la masse de membre inscrits (plus de 10.000 à la fin) qui rendaient très dynamique nos échanges.

J'ai énormément appris sur le plan humain au travers de mon rôle d'administrateur. J'ai appris à travailler en équipe, à apprendre de mes erreurs, à trouver des solutions aux problèmes quotidient (et Dieu il y en a eu !). Savoir aussi appliquer des sanctions justes à ceux qui le méritaient en essayant que ces sanctions soient propices à la fois au maintien de l'ordre mais également de la bonne ambiance générale

Bukkit France

Communauté en ligne

J'ai participé en tant que membre à cette communauté de 2012 à 2014, Bukkit France était une communauté Minecraft qui regroupait des joueurs, des administrateurs de serveur et des développeurs du jeu. C'est la première communauté "geek" que j'ai rejoint. Régulier de la catégorie support, j'ai souvent aidé des administrateurs à configurer leur serveur pour régler leurs soucis et améliorer les performances. J'ai commencé à parler régulièrement avec des développeurs Java, à lire du code

Partager son savoir, son expérience et recevoir des retours d'autrui a réellement construit une culture informatique. Certains membres sont encore aujourd'hui des amis, une bonne partie se sont dirigés vers des études en informatique, en gestion ou en science. La culture que nous avons construite au fil des années nous donne un vrai avantage sur ceux qui commencent seulement l'informatique en supérieur.

2013 - 16 ans

Minecraft Belgique

Communauté en ligne    Projet perso

De 2011 à 2013, j'ai hébergé chez moi un serveur Minecraft. Propulsé par Bukkit, une surcouche au serveur minecraft proposé par défaut, j'ai configuré de nombreux mods et plugins pour diversifier l'expérience de jeu de mes joueurs. Au-delà du jeu, j'ai dû comprendre les bases en réseau pour permettre à des amis de se connecter chez moi (DNS, IP, NAT, TCP, Firewall), apprendre à customiser le système d'exploitation et le serveur minecraft pour avoir de meilleurs performances, installer des outils de monitoring basiques pour être averti lorsque le serveur ne répondait plus.

En plus d'héberger le serveur, j'étais responsable du maintien de l'ordre au sein du jeu. Au départ ce qui n'était qu'un serveur entre pote est devenu une vraie petite communauté, les joueurs invitant leurs amis/voisins (minecraft était très populaire dans ma tranche d'âge à l'époque). J'ai dû apprendre à régler des petits problèmes quotidien et essayer de résoudre les conflits.

Quelques images de la map: