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