What is this graph

About Me

In August 2021 I joined the Programming Group at the University of St. Gallen, Switzerland as a PhD student where I'm supervised by Guido Salvaneschi.

Between 2017 and July 2021 I was an R&D software developer at Agilent Technologies (formerly Genohm) in Lausanne, Switzerland.

In June 2017 I obtained a master's degree in computer science from the École polytechnique fédérale de Lausanne (EPFL) in the LAMP lab. In my thesis I simplified conceptually a polymorphic safe-and-precise effect system.

In 2015 I obtained a bachelor's degree in computer science and a minor in mathematics from the American University of Beirut (AUB). My bachelor's graduation project was to design and implement a quantum functional language.

Ideally I would like to be actively engaged in computer science research, or teach programming (languages) techniques or mathematics.

I discovered and taught myself how to program at the age of 14 through unconventional means. As a result everytime I hear about the work of others or share my own I learn of yet another approach to programming. So consider this an active invitation to be contacted; if you have an idea or project you want to talk about then consider me interested, so reach out!

I am an avid reader, my Goodreads profile lists all my non-technical interests (those outside of CS and math). I speak/read fluently three (natural) languages: English, French, and Arabic.

In my spare time, when I'm not reading or programming, I play Go, snooker, and the mandolin.

Academic Interests

And in general anything "exotic".

Technical Knowledge and Setup

I am proficient in many programming paradigms; functional, imperative, and object-oriented, with preference to functional languages. I mainly use Python for small applications, Bash for write-once-execute-once code, C and D for any heavy lifting, Octave for quick plotting and mathematical computations and Haskell for any type-theoretic experiments and programs that must be correct. I am proficient in these programming/scripting/markup languages:

My primary editor is Vim.

I live in the command line (with the help of tmux) most of the time.


What is this graph above?

This graph represents a 69-state machine, in fact, a quantum Turing machine [PDF]. It's a machine that abides by the laws of quantum mechanics. This machine can be thought of performing the following algorithm on each superposition |k,x⟩ in a 6-dimensional Hilbert space

x ∈ ℕ8
k ∈ ℕ8
while |x-k| < 4:
    x := x + 1   mod 8
This machine is significant because it is the first QTM that exhibits conditional looping (I couldn't find any), and it sheds some light on the inverse of decidable programs (the inverse of a decidable program can be proven to be sometimes undecidable).