Computer science undergraduate at the American University of Beirut, building
everything from kernel schedulers to React frontends, and a from-scratch
gravity simulator like the one running behind this text.
Incoming software developer at CERN, CMS Experiment.
Full-stack web app where AUB students search the live catalog, build
conflict-free schedules visually, and ask an AI assistant for help. One of a
team of four. I shaped much of the frontend design, adapted the whole app to
mobile, and wrote the conflict-detection logic behind the schedule builder.
Built the Playwright scraper end to end, pulling live section data from
AUBsis (AUB's Banner system) and wiring it into the backend and database, enhanced
the AI assistant, then led a full refactor and security-hardening pass.
Deployed to Render and Vercel myself.
Config-driven Newtonian simulator in C++20 with a hand-written fixed-step RK4
integrator, conserving energy to ≈10⁻¹⁴ relative drift over 25,300 steps of
the Chenciner–Montgomery figure-8 orbit. The miniature above runs the same scenario,
same integrator, in JavaScript. Python/Matplotlib suite renders plots and FFmpeg animations.
Two instances of the same model (one locked into Kantian deontology, one into Millian
utilitarianism) answer the same dilemma side-by-side in real time over
Server-Sent Events, exactly as miniaturized above (trolley problem shown). Cloudflare
Workers backend fans out parallel Gemini 2.5 Flash calls with transparent per-column
fallback to Groq's Llama 3.3 70B.
Three phases of kernel work on MIT's teaching OS, across x86 and RISC-V:
replaced round-robin with the MLFQ scheduler simulated above (demotion on quantum
expiry, periodic priority boost to prevent starvation), added kernel threads via a
clone() syscall with a ticket-lock thread library, and extended the shell with
wildcards, history, and a login gate.
You are coral. The bot blocks and wins — just like the real one, minus the alpha-beta depth.
Networked Connect 4 in C
2025 · team of 3
Console Connect 4 with TCP client–server play across machines via raw POSIX
sockets (compile-time -DSERVER /
-DCLIENT /
-DBOT modes), and a Minimax
bot with alpha-beta pruning across three difficulties, search parallelized with
OpenMP, memory-checked with Valgrind.
A published Firefox extension that bolds the leading letters of each word to pull your
eyes through text faster, toggle it on any page from the toolbar or with
Ctrl+Alt+B, at three fixation
strengths. The hard part was PDFs: pdf.js paints text onto a canvas with no DOM to
style, so I bundled my own pdf.js reader that re-applies bionic in place while keeping
the original layout, margins, columns, and line breaks intact. Unicode-aware splitter,
100% local, nothing leaves the device.
Every major data structure implemented from scratch. The AVL tree above
(watch it rotate to rebalance), red-black trees, heaps, hash tables, graphs, each
applied to a real scenario (LRU cache, Dijkstra routing, Huffman coding), then
benchmarked empirically against theoretical Big-O.
JavaGenericsGraph algorithmsDP · Greedy
About
the short version
I'm an upcoming third-year CS student at AUB pursuing minors in Mathematics and
Philosophy, which is why my projects swing between numerical
integrators and competing ethical frameworks. I like working close to the metal
(C++ physics, xv6 kernels, POSIX sockets) and close to the user
(React, TypeScript, deployed products people actually use).
I'm equally at home in a kernel scheduler and a React
frontend; the constant is shipping something that actually runs.
In July 2026 I join CERN in Geneva for a 12-month software development
internship with the CMS Experiment, Technical Coordination, building
the tools behind one of the largest physics detectors ever constructed.
DegreeBSc Computer Science, AUB
MinorsMathematics · Philosophy
GPA0.00 / 4.00
HonorsAUB Honor Society
NextCERN · CMS: July 2026
LanguagesEnglish C1 · Arabic native · FR & IT basic
Based inBeirut, Lebanon
Toolkit
strongest first
Languages
C
C++20
Java
TypeScript
JavaScript
Python
SQL
MIPS asm
Stack & infra
React
Node.js
PostgreSQL · Supabase
Cloudflare Workers & Pages
Vercel · Render
Playwright
Clerk
Docker
Git
CI/CD · GitHub Actions
Systems & theory
Linux
OS internals
TCP/IP · POSIX
GDB · Valgrind
Make · CMake
Algorithms & DP
Numerical methods
Linear algebra
Statistics & Random Variables
Agile · Scrum
Beyond the terminal
also runs on
Community +
UNICEF Club volunteer: prepared food to be distributed to displaced families during the war and
co-organized campus fundraisers raising $900+ for mothers with cancer and children at AUBMC.
Electric guitar ♪
Self-taught on electric guitar and steadily working through music theory; recently performed live at Kerr Got Talent.
Photography ◉
Photography runs on the same instinct as debugging: noticing the one detail everyone else walked past.
Let's build something with gravity.
Open to collaboration, interesting problems, and good conversation, in English, Arabic, or broken Italian and French.