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
(xv6 kernels, POSIX sockets, C++ physics) 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
Vercel · Render
Playwright
Clerk
Docker
Git
Systems & theory
OS internals
TCP/IP · POSIX
GDB · Valgrind
Make · CMake
Algorithms & DP
Numerical methods
Linear algebra
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.