42 core
42 is peer-graded and has no teachers. Every project is built from a subject PDF, has to pass the Norm, and gets defended line by line in front of other students. These start at libc and end with ft_transcendence, a full web platform built as a team.
Mosaic SaaS · ft_transcendence · team of 2 · tech lead
A multi-tenant SaaS platform for car-rental companies, live at mosaics.live. Each company gets its own workspace to run its fleet, branches, staff and counter. Customers book from every company on one shared marketplace, with an optional paid membership. Platform admins approve companies and customers before either can transact.
The hard part: one account model and one JWT scheme serving three kinds of user, a Postgres exclusion constraint that makes double-booking impossible at the database level, and bookings that update live over WebSockets. Stripe payments, Google and 42 sign-in, and English, French and Arabic (with right-to-left layout).
mosaics.live ↗
Minishell C
A bash-like Unix shell: a prompt, a tokenizer, $VAR expansion, pipes, < > >> redirections, heredocs, and the builtins echo cd pwd export unset env exit.
The hard part: matching bash's behavior on quoting, exit codes and signals (Ctrl-C, Ctrl-D, Ctrl-\) across child processes without leaking a single file descriptor.
MiniShell ↗
Philosophers C
The Dining Philosophers problem with one POSIX thread per philosopher and a mutex per fork, plus a monitor thread that detects death to the millisecond.
The hard part: no deadlocks, no data races, and no starvation, at any philosopher count.
Philosophers_Project ↗
CPP Module 09 C++98
Three STL exercises: a Bitcoin price lookup built on std::map, a Reverse Polish Notation calculator on std::stack, and PmergeMe, an implementation of Ford-Johnson merge-insertion sort.
The hard part: keeping Ford-Johnson's comparison count under the theoretical bound, using Jacobsthal insertion order. There's a full write-up in the repo.
CPP09 ↗
cub3D C · in progress
A Wolfenstein-style raycaster built on MiniLibX. It turns a 2D map file into a first-person 3D view you can walk through.
Repository coming soon
ft_printf C
printf rebuilt from scratch with variadic arguments: %c %s %p %d %i %u %x %X %%.
FT_printf ↗
get_next_line C
Reads a file descriptor one line at a time, using a static buffer that works with any BUFFER_SIZE, and never leaks memory.
Get_Next_Line ↗
Libft C
The first 42 project: my own versions of libc's string, memory and conversion functions (split, itoa, memmove and more). Every later C project here builds on it.
LibFT ↗