I'm doing a master's in computer science (AI) at Université Laval in Québec, as part of a double degree with INSEA in Rabat, where I study data & software engineering. I mostly work on backends: APIs, databases, and the parts of a system that have to stay correct when real users and live data hit them. I also like going one layer lower to write the shell, the compiler or the search algorithm myself, just to see how it works. Outside of building things, I do competitive programming: Codeforces Expert and top 4% at Meta Hacker Cup 2025.
|
Québec City's bike-share charges you once a ride passes 30 or 45 minutes, and normal map apps ignore that. This planner splits a trip into several rides on the same bike: you re-dock along the way so the clock resets. It also accounts for hills. Result: across 1,000 sampled trips, the share charged overage fees fell from 49.6% to 0%. Live demo · |
An ORM generator built as a small compiler. You describe your schema in a It needs no runtime reflection and no macros.
|
|
A chess engine that plays at around 2000 Elo. It searches with minimax, alpha-beta pruning and quiescence search, and orders moves with killer moves, the history heuristic and static exchange evaluation. Play it on Lichess · |
A Unix shell written from scratch. It handles pipes,
|
|
A web platform for running an academic conference: authors submit papers, reviewers score them, and editors accept, reject or ask for revisions. It has separate roles for each, and exports reports to Excel and PDF.
|
A command-line tool for setting up DOMjudge programming contests. I've contributed 2 merged pull requests, about 1,260 lines in total.
|
| Contest | Result |
|---|---|
| Meta Hacker Cup 2025 | 491 / 13,779 |
| Codeforces | 1647, Expert |
| Moroccan Collegiate Programming Contest 2025 | 18th |
| Moroccan Olympiad in Informatics 2022 | Semi-finalist |
I also set problems for Game of Codes, a national inter-school contest. My solutions live in Competive-Programming-Problems and neetcode-submissions.
Say hi at me@imranakki.com. I'm happy to talk about backends, databases or a contest problem.




