Programming

When I started as a researcher in 3DTV project, I had zero experience with coding and image processing. Thankfully I had the chance to work with great developers, and within a year's time I was an avid programmer in C/C++ and OpenCV. By the time I finished my 3 years as a researcher in this project, I have created a video player in C++, I have modified h.264 JM software and vlc player (and ffmpeg) code heavily to implement our compression algorithms. These tools were eventually used for realizing the first ever stereoscopic video streaming system over multiple platforms (described in our publication: End-to-end Stereoscopic Video Streaming with Content-Adaptive Rate and Format Control).

 

But most importantly during this time I learned programmer's way of thinking for solving problems. This is by far the most important and useful skill I acquired in my Master degree years, which was also useful to me for other programming languages.

 

During my PhD, I was dealing a lot with linear algebra and optimization, hence I started using Matlab and by the end of my PhD I was quite skilled at it. I wrote all my libraries and functions for convex optimization and compressive sensing which gave me better understanding of the algorithms I was using. I continued to use Matlab later during my postdoc years as well.

 

When I got into the problem of image retrieval and training neural nets, I got introduced to python and the scientific computing libraries within (numpy, scipy, scikit-image, etc.) and I fell in love with it. I also started to experiment with different deep learning algorithms and finally implemented our algorithms using Theano. Currently I continue using python heavily for medical image registration and graph signal processing, with the recent integration of deep-learning to our approach as well (using TensorFlow or Keras this time).

 

In general I can say that I love programming in general, and experimenting with new libraries/languages. Nothing beats that feeling when you implement something in your mind, and it just works (efficiently!) :).

Language

I am fluent in English, though after spending many years in France, my friends say that I have developed a slight french accent :). My french is not bad either, I am fluent with B2/C1 level, though I believe I still do make occasional mistakes. For the technical discussions I prefer english though if possible.

Teaching and Supervising

I have taught the course of Multimedia Laboratory  for 2 years during my PhD, which was a senior level course offered to both undergrads and masters students. This course included various topics on audio, image and video processing, with theoretical teaching as well as hands on experience in laboratory. My responsibilities were preparation of the teaching material and experiement setups, teaching in class and supervising the experiments, and finally preparation and evaluation of the examinations. I have also separately supervised end of term projects of 4 undergrad students. I had around 48 hours of teaching, and 150 hours of supervision experience during teaching this course, and it helped me learn a lot about teaching and supervision.

 

I also have supervised several masters students during my PhD. who were volunteered to take part in research projects for gaining additional experience. I initiated these students in my research project and supervised them to perform simulations, implementing algorithms and brainstorming ideas on the research topic.

 

Apart from teaching and supervision in my professional domain, I have also taught Aikido during 5 years. Even though it is a completely different experience, I also learned a lot on pedagogy and communication while teaching Aikido, so I find it quite relevant as well.