Hello! I'm Mathias

I'm a software developer, with a primary interest for low-level programming and cybersecurity

Github Linkedin

My experiences:

Berty - Software Developer

Dec 2022 - Jun 2023

Worked at Berty an open-source P2P messaging app. Created a network driver to reconnect peers automatically when needed and adapt features based on network conditions. Wrote unit tests to verify the functionality of the driver. Developed a cross-platform logger for easy debugging and log filtering. Fixed and identified various bugs, including a critical one causing app crashes and UI freezes. Followed Scrum/Agile methodologies (daily meetings and weekly video reports in English)

Speed Highlight JS - Creator and Maintainer

Aug 2021 - Present

Developed an open-source JavaScript syntax highlighter (up to 130 times faster than other alternatives), with automatic language detection and a streamlined deployment workflow on npm and deno.land using GitHub Actions

Student Union of 42 Nice - IT Consultant

Feb 2023 - Present

Developed and maintained the student union website and internal tools with Louis Volland and Axel Lopez. Including the development of a coding competition platform for events. The platform test code securely in a chroot jail with an unprivileged user in Docker containers. It enforced time limits and restricted the use of forbidden functions. The platform also handled authentication, ranking, and statistics

My education:

Master's Degree in Computer Architecture

Oct 2021 - 2024

Surpassed the final Level 21 at 42, a globally renowned and innovative IT school. Completed 40+ projects, both collaboratively and independently, across cybersecurity, low-level programming, and web development. Secured a top spot in the one-month-long 'Piscine' selection process

My projects:

Gameboy Emulator

RustRelm4LibadwaitaGTK

Developed a Gameboy emulator in Rust that simulates the hardware components of the device, such as the CPU, PPU, MMU... Implemented an integrated debugger, disassembler and a user-friendly GUI. Utilized GitHub Actions to set up a CI/CD pipeline that automatically creates Flatpak builds and checks code quality on push. Future plans include supporting more Gameboy versions and games, as well as open sourcing the project

Custom Memory Allocator

C

Developed a custom memory allocator in C, a key component of computers programs. The allocator reduces overhead by reusing freed memory and minimizing fragmentation

ELF Parser

CELF

Recreated the 'nm' shell command in C. The program reads the ELF headers and the symbol table of a given executable file and displays the symbols with their addresses, types, and names. The program can be used to detect functions/variables used or available in an executable file or for reverse engineering purposes

Cryptography Algorithms

CCryptographic algorithms

Implemented various cryptographic algorithms in C, such as hashing algorithms (often used to check file integrity) like SHA256/512, MD5, and SM3, symmetric algorithms (often used to encrypt communication) such as AES, DES-ECB/CBC/EDE, and RSA, one of the most widely used cryptographic algorithms (used for key exchange and digital signatures)

C++ Web Server

C++Socket programmingMultiplexingHTTP

Created with two colleagues an HTTP/1.1 web server in C++, with support for CGI, autoindexing, and routing configuration. Used multiplexing to handle large number of requests efficiently

Custom Shell

CParsingBash

Worked with another developer to build a shell in C that mimics bash features. Implemented pipes, redirections, logical operators, parentheses, wildcards, built-in commands, and heredoc syntax

C++ Containers Implementation

C++ContainersAlgorithms

Developed custom implementations of standard C++98 data structures, including the map, set, vector, and stack

Raspberry PI Robot

C++ArduinoRaspberry PIJavascript

Designed a robotic tank operated through a web interface crafted in JavaScript. The backend operations are managed by a C++ system running on an Arduino board

3D Wireframe Viewer

CMLX

Developed a 3D wireframe viewer in C, utilizing the minimalist 42's minilibx library. Additionally, reimplemented the graphical library in JavaScript and compiled the code into WebAssembly (Wasm) to create a web version

Ray Tracer

CMLX

Implemented a ray tracer in C to simulate light rays from a perspective camera, with features such as refraction and multiple colored light sources. Collaborated with another developer on the project

Tetris

SvelteMongoDBNodeJSSocketIO

Designed and implemented a web-based Tetris game with multiplayer functionality using websockets, featuring custom fonts and web design

GPU Renderer

RustOpenGLglium

Developed a GPU-accelerated 3D rendering program in Rust, including a custom parser for .obj files. Utilized an OpenGL Rust binding to efficiently display 3D models with textures

Chess

SvelteNodeJSWebSocket

Developed a web-based multiplayer chess platform using Svelte and WebSockets. Features includes player rankings, integrated chat, tournaments/events

Pong

SvelteWebSocketWebRTCNestJSPostgreSQLDocker

Developed a web-based multiplayer Pong game using WebRTC for real-time communication. With features such as leaderboards, chats, match streams and history, rankings, and more

Many 3D projects

Blender

Modeled, shaded, and lit many 3D projects with Blender in my spare time

Nibbler

C++Dynamic librariesSDL2SFMLRaylibFigma

Developed a Snake game featuring three distinct graphical dynamic libraries that can be seamlessly loaded and switched at runtime. Designed all graphical assets using Figma. Additionally, created a small bot that autonomously plays the game

Ping and Traceroute

CSocket programmingICMP

Recreated the 'ping' and 'traceroute' shell commands in C, using raw sockets and ICMP packets

LemIn

CC++RustPathfinding

Designed and implemented a pathfinding algorithm based on Dijkstra in C, supporting multiple agents, complemented by a graphical user interface developed in C++ using SFML and a problem generator in Rust

N Puzzle Solver

RustA*Problem solvingPathfinding

Developed a N Puzzle solver in Rust

My skills:

👋 Get in touch!

Feel free to contact me. I am looking for new challenging opportunities