Beirut → Geneva · est. orbit July 2026

Jamil M.

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.

move your cursor — it has mass

Selected work

every card is a live miniature

UniFlow — AI-powered course planner

2026 · team of 4, Agile

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.

React 19TypeScriptNode · Express SupabaseClerkPlaywright Groq · Llama 3.3 70B

N-Body Gravitational Simulator

2026 · independent

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.

C++20RK4Plummer softening CMakeMatplotlib · FFmpeg

The Moral Agent

2026 · AI Ethics

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.

TypeScriptTanStack StartCloudflare Workers SSEPrompt engineering

xv6 Operating System Extensions

2026 · OS course, 3 phases

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.

Cx86 · RISC-VQEMU GDB
vs bot · click a column
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.

CPOSIX socketsOpenMP Minimax · α-βValgrind

Bionic Reader (Firefox extension)

2026 · published on AMO

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.

JavaScriptWebExtension · MV2 pdf.js 4.10MIT

Data Structures & Algorithms Library

2025 · Java

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 algorithms DP · 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.