Alexandre Hamad

Developer · Student at 42 Paris

● Looking for an apprenticeship, internship, fixed-term or permanent job

Photo of Alexandre Hamad

About

Hardware enthusiast and former roofer and team leader, I retrained as a developer at 42 Paris, where I built a wide range of projects: systems, networking, graphics and web.

Projects

fract-ol

A fractal explorer (Mandelbrot, Julia, Burning Ship) with mouse zoom and keyboard navigation, rendered pixel by pixel with MiniLibX.

  • C
  • Graphics
  • MiniLibX
view code →
$ ./fractol burningship Burning Ship fractal rendered by fract-ol, in green
$ ./fractol julia -0.8 0.156 Julia set (c = -0.8 + 0.156i) rendered by fract-ol

ft_irc

An IRC server in C++98, compatible with real clients (irssi). Non-blocking event loop with epoll, channel and operator management. Pair project.

  • C++98
  • Networking
  • epoll
$ ./ircserv 6667 secret
$ nc -C 127.0.0.1 6667
PASS secret
NICK alehamad
USER alehamad 0 * :Alexandre
:irc.local 001 alehamad :Welcome to the Internet Relay Chat network alehamad
JOIN #42paris
:alehamad!alehamad@localhost JOIN :#42paris
view code →

C++ Modules

The 10 C++ modules of 42 (CPP00 to CPP09) in C++98: classes, canonical form, inheritance, polymorphism, exceptions, casts, templates, STL containers and Ford-Johnson sort.

  • C++98
  • OOP
  • STL
$ tree -L 1
.
├── README.md
├── cpp0
├── cpp1
├── cpp2
├── cpp3
├── cpp4
├── cpp5
├── cpp6
├── cpp7
├── cpp8
└── cpp9

11 directories, 1 file
view code →

minishell

A bash-like shell, built as a pair. Every line goes through a lexer, a parser and an expander before it runs: quotes, variables ($VAR, $?), pipes, redirections and heredocs. It also handles built-ins (cd, export, exit…) and signals (Ctrl+C, Ctrl+D, Ctrl+\) like bash.

My part: the lexer, the parser, the expander and environment handling.

  • C
  • Processes
  • Parsing
view code →
$ ./minishell
minishell# echo "Hello $USER" '$HOME is not expanded here'
Hello alehamad $HOME is not expanded here
minishell# export GREETING="hi there"
minishell# echo $GREETING | tr a-z A-Z > out.txt
minishell# cat < out.txt
HI THERE
minishell# unknown_cmd
minishell: unknown_cmd: command not found
minishell# echo $?
127
minishell# exit 42
exit
minishell pipeline diagram: readline, lexer, parser, expand, exec, then clean up, in a loop

cub3D

A Wolfenstein 3D-style raycasting engine (DDA algorithm): parses a .cub map and renders textured walls in real time with MiniLibX. Pair project.

  • C
  • Raycasting
  • MiniLibX
$ ./cub3D map/map_valid/map.cub First-person view in cub3D: corridors with textured stone walls
view code →

ft_transcendence

MesPapiers: an AI-powered paperwork assistant (document reading, deadline alerts) with a mutual-aid community. Team of 4.

  • TypeScript
  • Next.js
  • React
  • Prisma
MesPapiers document upload page, where the AI identifies the imported document
view code →

Background

  1. Nov. 2025 - present

    Student developer, 42 Paris

    Common core completed: 20+ projects in C, C++, networking, systems and web. Now continuing with 42 Advanced towards a state-certified (RNCP) degree.

  2. 2014 - 2025

    Roofer, team leader at HamadB

    Led a team of 2 to 3 people, organized job sites and met deadlines, handled quotes and client relations.

Skills

Languages
  • C
  • C++
  • TypeScript
  • JavaScript
  • Bash
  • HTML / CSS
  • Assembly (learning)
Systems & networking
  • Processes
  • Signals
  • Threads
  • TCP sockets
  • epoll
Web
  • React
  • Next.js
  • Node.js
  • Tailwind
  • Prisma
  • PostgreSQL
Tools
  • Git
  • Docker
  • Linux
  • Make
  • GDB
  • Valgrind
  • Neovim
AI
  • Claude Code
  • Codex CLI
  • Cursor
  • GitHub Copilot
  • Ollama (local LLMs)
Hardware
  • PC building
  • Troubleshooting
  • BIOS
  • Overclocking
  • OS installation

Spoken languages

  • French (native)
  • English (technical)

Contact

Got a question or an opportunity? Get in touch: