← Back to portfolio

All Projects

Other projects

The featured projects are on the home page. More builds across infrastructure, agentic AI, and systems.

AI Appointment Scheduler

Full-Stack Web + RAG Assistant

A university-themed scheduler: students book faculty office hours from a live calendar, and an AI assistant answers from a knowledge base with citations and prepares bookings that only run after the user confirms. Next.js, PostgreSQL with pgvector, and 500+ automated tests.

Next.js TypeScript PostgreSQL pgvector RAG

Inception

42 Abu Dhabi (Docker)

A containerized web infrastructure built from scratch with Docker and Compose: NGINX over TLS, WordPress on php-fpm, and MariaDB, plus bonus services (Redis cache, Adminer, FTP, a static site, and cAdvisor monitoring), all on a private network with Docker secrets.

Docker NGINX MariaDB WordPress DevOps

Multi-Agent Workflow Prototype

MOEI × 42 Abu Dhabi Hackathon

Implemented an agentic coordination script decomposing user queries into discrete tool-execution steps. Used function calling and structured JSON validation to pass reliable data between execution stages. Integrated error-checking routines to handle model generation failures and invalid API responses.

Agentic AI Python LLMs Tool Calling Structured JSON

42 Abu Dhabi Projects

A selection of systems and infrastructure projects from 42 Abu Dhabi, focused on building from scratch, reading requirements carefully, and testing my own work.

Libft

C

Reimplemented a core part of the C standard library from scratch, covering memory, string, character, and linked-list functions, packaged as a static library.

Learned: pointers, manual memory management, Makefiles, and handling edge cases without relying on existing code.

get_next_line

C

A function that returns one line at a time from a file descriptor, working correctly with any buffer size.

Learned: static variables, file descriptors, and managing leftover data between calls.

push_swap

C

Sorted data on a stack using a limited set of operations while keeping the number of moves as low as possible.

Learned: algorithm design, complexity trade-offs, and measuring performance instead of guessing.

so_long

C

A small 2D game built with MiniLibX, including map parsing, textures, player movement, and collectibles.

Learned: event handling, rendering, and cleaning up memory and resources correctly.

Philosophers

C

Simulated the classic dining philosophers problem with POSIX threads and mutexes, managing shared resources across concurrent threads.

Learned: thread synchronization, race conditions, and avoiding deadlocks.

Minishell

C

A working Unix shell implementing pipelines, redirections, environment variable expansion, and built-in commands.

Learned: fork/execve, pipes, signals, and process lifecycle management.

cub3D

C

A raycasting engine and first-person game built with MiniLibX. Renders a 3D perspective from a 2D map with textured walls, and parses a custom .cub configuration file.

Learned: raycasting math, rendering, event handling, and structuring a larger C codebase.

C++ Modules

C++

C++ modules 00, 01, and 05, covering classes, inheritance, polymorphism, templates, exceptions, and operator overloading.

Learned: object-oriented design, memory management, and exception handling in C++.

ft_irc

C++

An IRC server written from scratch in C++98. It serves many clients at once over TCP with poll() and non-blocking sockets, and supports password authentication, nicknames, channels, private messages, and operator commands (KICK, INVITE, TOPIC, MODE).

Learned: TCP sockets, event-driven I/O with poll(), parsing a text protocol and its edge cases, and testing against a real client (irssi).