CV

Hosted on Gihub Pages




Personal Info

Name Harrando Ismail
Age 24 years old
Nationality Moroccan
E-Mail harrando.ismail (at) gmail.com
Links Github
Linkedin

Education

Master of Science in Informatics (MoSiG)
Artificial Intelligence Specialization
Grenoble INP Ensimag / UGA IM²AG
2017-2018
  • Doubly accredited Computer Science research program (Master's Website)
  • Relevant Courses : Category Learning and Object Recognition, Computer Vision, Natural Language Processing, Machine Learning Fundamentals, Advanced Machine Learning Algorithms, Knowledge Representation.
State Engineering Degree (Ingénieur d'état) in Informatics
Information Systems option
National School of Applied Science of Tangier
2012-2017 (5 years degree)
  • First in Class 2017
  • Google Student Ambassador (2014-2015 + 2015-2016)
  • Computer Science Club Advisor
  • Organizing Member for the Free Software Day (hosting Richard Stallman)
  • Relevant Courses : Image Processing / Computer Vision, Optimization, Operational Research, Graph Theory, Advanced AI, Data Mining and B.I., Algorithms and Complexity, Signal Processing, Calculus, Algebra
Baccaleaureat Degree
Mathematics and Engineering Sciences option (Sc. Maths B)
Lycée Technique Moulay Youssef
2009-2012
  • Obtained with Highest Honors ("Mention Très Bien")
Online Courses (MOOCs)
  • DeepLearning.ai - Deep Learning Specialization (currently enrolled)
  • UWashington - Machine Leaning Foundations
  • Stanford - Machine Learning
  • Stanford - Algorithms: Design and Analysis, Part 1
  • MITx - Intro to CS and Programming Using Python
  • UC Berkeley - Introduction to Artificial Intelligence
  • Udacity - Deep Learning
  • Duke University - Image and Video Processing
  • Udacity - Introduction to Programming Languages
  • EPFL - Introduction à la Programmation Orientée Objet en C++
  • Harvardx - CS50 : Introduction to Computer Science

Internships

R&D Intern in Deep Learning
Atos Bull
February 2018 - Now
  • Mission : Human Action Recognition
  • Functionalities : Using Deep Learning models to recognize human actions in video (research internship).
  • Technologies : Python, Tensorflow, Tensorboard, OpenCV
April - September 2017
  • Mission : Predictive Maintenance for HPC systems
  • Functionalities : Timeseries analysis, prediction and classification using Deep Learning models (LSTM) - Log Analysis for failure prediction (using statistical and neural models) - Anomaly detection in metrics - Setting up a Big Data environment for metrics storage and processing
  • Technologies : Python, TensorFlow, Keras, Pandas, OpenTSDV, Grafana, Jupyter Notebook
Lab Intern
LabTIC - National School of Applied Science
December 2016 - January 2017
  • Mission : Arabic Handwriting Recognition
  • Functionalities : Implementing a Machine Learning system to recognize Arabic handwriting.
  • Technologies : C++, Qt, OpenCV
July 2015 (1 month)
  • Mission : Comparing numerical methods for Optimization
  • Functionalities : Implementing and measuring performance and error margin for different Optimization methods.
  • Technologies : Javascript, D3.js
Web Developer (Summer internship)
Capital Consulting - Casablanca, Morocco
July, Augest 2016 (2 months)
  • Mission : Designing and implementing a web application for an NGO that promotes education for underprivileged students.
  • Functionalities : Tracking education and career milestones for selected students, keeping records of donations and donors, visualizing overall statistics.
  • Technologies : Laravel5/PHP, PostgreSQL, Bootstrap,jQuery/JS, Heroku, git

Skills

AI & DS TensorFlow, Keras, Scikit-learn, Numpy, Pandas, NLTK, Matlab, OpenCV, R (RStudio)
Programming Python, C++, C, Java, C#, Haskell, Prolog, Common Lisp
Web HTML5, CSS3, PHP (Laravel), JS (jQuery, Angular), Node.js, Bootstrap, Socket.io
Database Oracle (Optimization, Administration, Distribution), MySQL, MongoDB, Neo4j
Miscellaneous UML, XML, Git, Linux (Bash), Networking, AWS, Latex

Languages English (TOEFL - C2), French (TCF - C2) Arabic (Native), German (elementary).
Interests Cinema, Science and Technology, Blogging, Litterature, Video Games, ..

Projects

Brief

This section is out of date (wasn't updated since December 2016) and needs some serious dusting. Very soon. Maybe.

Machine Learning

This section is dreadfully lacking, I know. I just recently got involved with Machine Learning and there is so much to learn at once, let alone implement and experiment with. Thus, it will keep seeing updates in the near future.

OCR-abic

(internship, work in progress)

Implementing a Machine Learning system to recognize handwritten characters from scanned / photographed pages.

Experimenting with :

  • Neural Networks
  • KNN
  • SVM

The ML algorithms used are implemented from scratch in C++.

User Interface :

I also created a tool to generate image datasets, i.e. to handle extracting and resizing portion of raw images to get labeled, more manageable data. It's especially handy for extracting characters from pages of text containing full sentences, which happen to be the case for all Arabic handwriting datasets that I could find.

The tool is also written in C++ using Qt and OpenCV for handling and resizing the output (Github).

Sentiana

SENTIment ANAlysis for Facebook statuses (using reaction data : Love, Wow, Haha, Sad, Angry).
Used the Naive Bayesian classifier with Python's NLTK.

Developing a web interface to visualize each class probability as well as dominantly sentimental words (words with high correlation with certain classes).

Work in progress : adding bigram support, using WordNet for some extra precision.

Dataset source : here
Code : coming soon

Malin

Malin is a GUI for MAchine LearnINg algorithms.

The goal is to develop an interface that is easy to use and interact with, thus simplifying prototyping a quick ML model, while having access to the same parameters as one does when working with a scripting language (minus the scripting part) The algorithms in question are implemented from scratch.
Implemented in C++ and Qt.

The application is *far* from complete, and for now only supports :

  • Linear Regression
  • Logistic Regression
  • K-Nearest Neighbors
  • Random Forest
  • Input files in CSV

PS : "Malin" is French for smart, clever and witty.

Various Machine Learning applications

From Stanford's Machine Learning online course.

The course includes programming assignments (in Matlab) for many applications, including (click on the icon for a screenshot of the project):

  • Linear & logistic regression. Regularization.
  • Neural Networks for classification
  • Support Vector Machines
  • Dimensionality reduction for data compression (1024 to 36)
  • K-Means clusting
  • Anomaly detection
  • Collaborative filtering for recommender systems

Programming / Web

This section will not include the myriad of CRUD apps that we mass-produce for every programming / software engineering class.

Instead, I'll try to only feature the less trivial ones that I enjoyed making.

Image Processing & Computer Vision

To get familiarized with the different notions of Image Processing and Computer Vision, our class assignemnt was to create a graphical interface to visualize the different transformations and filters that could be applied to images (and videos), but also to explore the different tools that come with OpenCV, notably :

  • Low / High passing filters for basic transformations
  • Histogram generation and equalization
  • Edge detection with Canny filter
  • Handling streaming input from webcam / video files via threads.

For the class project in Stereovision (extration of 3D information from two or more 2D images), I implemented two methods to get depth information :

  • Using Similarity Measuring to generate a depth map estimation.
  • Using Harris' corner detection to detect the movement of interest points.

The code (and screenshots) is in Github.

Fingertracker

A simple interactive interface that tracks finger movements (using special colored rings) to detect basic gestures.

The user can choose the color and number of colors to track, and link specific tasks (following the trail, writing, drawing ..) to specific gestures.

A Project Management Application in Java

TeamPro is a Project Management Application that can be used to share information, files and important dates between team members. Users can :

  • Create a new project / join an existing project
  • Add members to the project's team
  • Chat in real time with the other members
  • Add tasks to the To Do list that defines the overall progress in the project
  • Add events and milestones to the project calendar
  • Share files within the project's group

The user interface () is based on Swing and is personalizable via themes.

A calendar widget has been developped from scratch to add the abiliy to interact directly with it to add, update or remove events.

Simulated Annealing for the Jobshop Scheduling problem

The Jobshop Scheduling Problem (JSP) is an NP-Hard optimization problem that is basically a more general case of the Traveling Salesman. Because no known algorithm can solve the problem deterministically, many a method of approximating the solution and avoiding local minima exist, called Metaheuristics. These methods run in linear time (in O(t) with t the number of iterations dictated by the user) and can reach good results in a reasonable amount of time.

This project also included reading research papers in the field (for the first time ever!) to choose which metaheuristic method to implement, which is far less trivial than it looks ("Why write in pseudocode when we can use math notation and vague terms to explain the algorithm!").

Aside for some bona-fide, ad-hoc hacking, the code seems to work : Github .

Touchscreen POS system interface

(freelancing experience)

The mission was to develop an interface for the POS terminal that is web-based.

In addition to displaying sold items and quantities in stock, the app should also generate formated, print-ready bills and invoices for custumers.

It also registers the sales (persisted on a local database) so that the shop manager can visualize information such as periodic turnover, stock data and inventory and register incoming supply.

A visual keyboard was developped using jQuery and bound to all input fields.

Little gallery :

Websites

Here are some websites that I've created :


School's Forum (Business Fair)


School's Lab website


Website concept for the Local Center of Technical Innovation

Other / Coursework

  • AI for Pacman using A* search.
  • Deploying a distributed database with Oracle.
  • Operation research algorithms implemented in C (Github).
  • HTML lexer in Python (PLY).
  • Single Queue simulator in Java.
  • A C implementation of RSA to secure communication between 2 Arduinos.
  • Puzzle Solving / Expert Systems in Prolog (Github).
  • Minishell (Github).
  • A brute-force password cracker (Github).
  • Tic-Tac-Toe (with minmax AI) in C and SDL.

Rarely Asked Questions

Who are you ? I'm Ismail, a 24 years old Moroccan student with a passion for Computer Science, especially Artificial Intelligence.
I enjoy learning, making (and breaking) things and knowing more about Life, the Universe and Everything.
I believe that the Internet is the single best human invention, and that cheese makes everything tastes better.
What do you want to work on ? Interesting Artificial Intelligence problems, especially Computer Vision, and Natural Language Processing/Understanding.
Why is your Github record so .. white ? I ask myself the same question everyday.
See the next question for more details.
Why don't you share the code of all your projects ? Back when I started programming, I would write (and take pride in writing) hundreds of lines of vanilla code that could be reduced into 2 lines with the proper tool/framework.. but it didn't matter as long as Things Just Worked. Things are different now and I'd rather look forward than look back!
I also keep most of my ongoing projects on private repositories for fear of being judged on the evident lack of quality on said projects.
Favorite things ? Computer Science. Artificial Intelligence, Good Courses. Maths. Lists. Screenshots. Smart people who can indulge in stupid conversations. Secretly envying people who are to organize time and prioritize their life goals. Cheese. And Python.
Your biggest weakness ? Stockholm syndrome/Sentimental attachment to Windows.
To a lesser extent, chronic procrastination and the inability to fake enthusiasm.
Your biggest strength ? I can get really passionate about things quickly. I love to learn about things I'm passionate about.
Why Computer Science ? It's hard to pick favorites among the life-altering moments that nurtured my passion for CS, but here's an attempt :
  1. Compiling my "hello, world !" in C
  2. Watching IBM Watson winning Jeopardy
  3. Discovering Recursion
  4. Building my first AI for Pacman, using A*
  5. Discovering Functional Programming
  6. Watching Her
  7. Learning that a simple Neural Network can simulate a NAND gate, and are therefore able to do all computations!
  8. Considering a research career in CS
Why Artificial Intelligence ? Because computers are not unlike children: you feel happy when they get something right, and proud when it's you who taught them how to do it!
What's with the logo ? Because this :

In case you're wondering, that's my name in Arabic and Latin characters spelled using elements from the logo. Took me a lot of doodling in class to get, but I'm happy with the result.
Fun fact : the mask proportions are based on my actual face! (If you think you know someone's who is more self-absorbed than I am please contact me here).
What is your short-term goal ? Making the switch from engineering to a research-oriented career.
Long term goal ? Definitely not world domination.

Contact