Avatar

Mohammed Amine Maghous


About

I’m a software engineer, passionate about building performant, scalable, maintainable and secure software

Work experience

From January 2021

  • Software engineer, SII GROUP Casablanca, Mororcco
  • Leading the development of a Node.js library that transforms EDI (Electronic Data Interchange) files to corresponding JSON files.
  • The library is integrated with node-red
  • The library can process hundreds of EDI files per second
  • Currently working on a UI to visualize the processed EDI data using Spring and ReactJS

From February 2020 to August 2020

  • Research assistant / C++ software engineering intern, ORACLE LABS Casablanca, Morocco

  • I worked on a highly parallel and distributed graph processing system (PGX Distributed) written in modern C++.
  • I collaborated on this project by adding new features, like:
    • Support for NULL properties in frames(The result of a graph query).
    • Filtering a graph (to create a sub-graph) based on a collection of IDs and the inverse operation.
  • I’ve also benchmarked the system using TPC-H to compare the results with Oracle in-memory database, in a cluster of more than 100 powerful machines manipulated using SLURM.
  • Wrote and enhanced Python and shell scripts to automate some of the benchmarking tasks. This resulted in an average 30% improvement on time spent on the benchmarks.

Technologies: C++, CMake, GDB, Java, Google Test, Python scripting, Shell scripting, SLURM, Linux, Jenkins, Multithreading.

Skills

  • Experienced with: JavaScript | Java | C++ | STL | C | Python | ReactJS | Docker | Jenkins | Spring | Linux | Shell scripting | GIT | Multithreading | Algorithms & Data structures | MariaDB | SQL | Make | GDB | OOP | Google Test | SLURM | Jira.

  • Familiar with: Bazel | Ansible | Make | CMake | Socket programming | Computer architecture | Distributed systems | Oracle DB | Protobuff | TCP / IP.

    Education

From September 2015 to September 2020

  • Software engineering École nationale des sciences appliquées (ENSA) Khouribga, Morocco

    A five years degree, where you get to learn many aspects of software engineering from theory to application.

From October 2018 to Mai 2019

  • Software engineering 1337 future is loading (42 Network) Khouribga, Morocco

    A programming school, based on projects and peer learning

Awards & honors

November 2018

  • ACM MCPC (Moroccan Collegiate Programming Contest)

    Bronze medalist (the third place from 63 best Moroccan university teams). The competition focuses on efficiently solving algorithmic problems using a programming language of choice in the shortest time possible.

  • ACM ACPC (Arab Collegiate Programming Contest)

    61th position among the best 120 University teams from all the arab region.

  • MCC (Maghreb Coding Challeng)

    Second position, amongst Moroccan teams and 5th among the teams of all other countries (about 100 teams from Tunisia, Algeria, Morocco).

Projects

  • Language detector: An app that detects the language of a text submitted by a user. Language words are stocked in a DAWG( Directed Acyclic Word Graph) to reduce memory footprint and have faster word search. Technologies : Python / Django / Django Rest in the backend and JavaScript / ReactJS in the frontend.

  • Graph processor:

    It’s the first draft for a graph processing engine. I started this project due to my interest in algorithms and data structures. The system is currently partially multi-threaded, supports two algorithms, and written in modern C++.

  • Typing corrector:

    This is an academic project, where I wrote a program in C, that will detect duplicates and typing errors of a given text file, for that we used the Levenshtein Distance, with an approximate threshold. I was the first to finish the project among 120 students.

Voluntary experience

From February 2019 to April 2019

  • Software developer ENSA Khouribga Khouribga, Morocco

    I was in charge of developing and supervising a programming competition related to one of our University events. Where I created algorithmic problems and their corresponding checkers, using C++ to score the 25 participant teams’ submissions automatically.

Languages

  • Arabic: Native

  • Spanish: Bilingual proficiency

  • French: Professional working proficiency

  • English: Professional working proficiency

  • Catalan: Elementary proficiency