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 (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.