Rihab Assabar

Développeuse logicielle, diplômée en génie logiciel de l'Université Laval.

Software developer with a software engineering degree from Université Laval.

À la recherche de mon premier poste en développement logiciel.

Looking for my first software development role.

Autonome, je prends l'initiative d'apprendre ce que les cours ne couvrent pas, avec des projets personnels en sécurité et en systèmes connectés. J'ai fait deux stages chez ABB sur des systèmes industriels, puis livré une plateforme à Bentley Systems avec une équipe de cinq, en coordonnant les rencontres avec le client.

I'm self-driven: I take the initiative to learn what my courses don't cover, through personal projects in security and connected systems. I did two internships at ABB on industrial systems, then delivered a platform to Bentley Systems with a team of five, coordinating the meetings with the client.

ProjetsProjects

Illustration générique, pas l'interface réelle.
Generic illustration, not the actual interface.

InfoRadarAI

Projet en génie logiciel pour Bentley Systems, hiver 2026

Software engineering project for Bentley Systems, winter 2026

Une plateforme de veille automatisée qui s'appuie sur l'intelligence artificielle, conçue pour un vrai client. J'ai coordonné les rencontres avec Bentley Systems et réparti les tâches dans une équipe de cinq. Côté technique : des API REST en Flask selon une architecture microservices, un pipeline CI/CD avec Docker et des tests d'intégration.

An automated monitoring platform powered by artificial intelligence, built for a real client. I coordinated the meetings with Bentley Systems and split the work across a team of five. On the technical side: REST APIs in Flask with a microservices architecture, a CI/CD pipeline with Docker, and integration tests.

  • Python
  • Flask
  • Vue.js
  • Docker
  • CI/CD
Capture d'écran de la documentation interactive de SecureAPI : les routes d'authentification (inscription, connexion, rafraîchissement, déconnexion) et les routes de notes, ces dernières marquées d'un cadenas.
Documentation interactive de l'API.
The API's interactive documentation.

SecureAPI

Projet personnel

Personal project

Une API REST (FastAPI) où chaque protection contre les failles du OWASP Top 10 est accompagnée d'un test qui essaie de la contourner : injections SQL, jetons JWT falsifiés, trop de tentatives de connexion. 33 tests, dont 15 tests d'attaque, et un scan de sécurité à chaque commit.

A REST API (FastAPI) where every protection against the OWASP Top 10 vulnerabilities comes with a test that tries to get around it: SQL injection, forged JWTs, too many login attempts. 33 tests, 15 of them attack tests, plus a security scan on every commit.

En cours de route, ma propre politique de sécurité bloquait la page de documentation de l'API. Je l'ai assouplie sur ces routes seulement et laissé le reste strict.

Along the way, my own security policy blocked the API's documentation page. I loosened it for those routes only and left the rest strict.

  • Python
  • FastAPI
  • SQLAlchemy
  • Pydantic
  • pytest
  • GitHub Actions
Capture d'écran du terminal : les 33 tests de SecureAPI réussissent, répartis en cinq fichiers dont l'authentification, les injections, la falsification de jetons, la limite de requêtes et les validations XSS.
Les 33 tests passent.
All 33 tests pass.
Capture d'écran du tableau de bord EmbedWatch : un tableau qui liste en direct les mesures de température, d'humidité et de batterie des capteurs simulés.
Tableau de bord en direct.
Live dashboard.

EmbedWatch

Projet personnel

Personal project

Un simulateur d'objets connectés : des capteurs virtuels publient leurs mesures par MQTT vers un serveur qui les enregistre et les affiche en direct dans le navigateur. Si la connexion tombe, l'appareil garde ses mesures en mémoire et les renvoie à la reconnexion. Les tests d'intégration tournent contre un vrai broker Mosquitto.

A simulator for connected devices: virtual sensors publish their readings over MQTT to a server that stores them and shows them live in the browser. If the connection drops, the device holds its readings and sends them again once it reconnects. The integration tests run against a real Mosquitto broker.

  • Python
  • FastAPI
  • MQTT (Mosquitto)
  • WebSocket
  • SQLite
Illustration d'un petit robot à roues bleu qui contourne des obstacles en suivant un trajet en pointillés vers une cible, avec un cône représentant son capteur.
Illustration générée par IA, pas le robot réel.
AI-generated illustration, not the actual robot.

Robot autonomeAutonomous robot

Cours Design III, hiver 2025

Design III course, winter 2025

Un robot autonome qui navigue et évite les obstacles, programmé avec ROS2 et Python. J'ai intégré les capteurs, écrit la logique de contrôle embarquée et ajouté des tests unitaires au pipeline CI/CD, avec 95 % de couverture.

An autonomous robot that navigates and avoids obstacles, programmed with ROS2 and Python. I integrated the sensors, wrote the embedded control logic, and added unit tests to the CI/CD pipeline, reaching 95% coverage.

  • Python
  • ROS2
  • CI/CD

ExpérienceExperience

Stagiaire en développement logicielSoftware development intern

ABB, Québec, juin à décembre 2023

ABB, Quebec City, June to December 2023

J'ai ajouté des fonctionnalités au logiciel de configuration utilisé par les techniciens, refactorisé plusieurs modules pour le rendre plus simple à maintenir, et développé une fonction de configuration qui simplifie la mise en service.

I added features to the configuration software technicians use, refactored several modules to make it easier to maintain, and built a configuration feature that makes commissioning simpler.

Stagiaire en génie logicielSoftware engineering intern

ABB, Québec, juin 2022 à mai 2023

ABB, Quebec City, June 2022 to May 2023

J'ai programmé et configuré des protocoles industriels (Modbus, OPC) et des interfaces PLC, écrit des séquences d'analyse automatisées pour des spectromètres industriels, puis testé et mis en service les systèmes avant leur déploiement.

I programmed and configured industrial protocols (Modbus, OPC) and PLC interfaces, wrote automated analysis sequences for industrial spectrometers, then tested and commissioned the systems before deployment.

EngagementInvolvement

Trésorière, département des financesTreasurer, Finance Department

Association des étudiants musulmans de l'Université Laval (AEMUL), 2024 à 2025

Muslim Students Association of Université Laval (AEMUL), 2024 to 2025

J'ai géré le département des finances de l'association pendant un an.

I managed the association's finance department for a year.

CompétencesSkills

LangagesLanguages
Java, Python, JavaScript (avancé). C++, SQL (intermédiaire).
Java, Python, JavaScript (advanced). C++, SQL (intermediate).
Web et APIWeb and APIs
FastAPI, Flask, Vue.js, React, REST, microservices
Embarqué et industrielEmbedded and industrial
ROS2, MQTT, Modbus, OPC, PLC
Tests et livraisonTesting and delivery
pytest, JUnit, Docker, CI/CD, GitHub Actions
SécuritéSecurity
OWASP Top 10, authentification JWT, validation des entrées, scans Bandit
OWASP Top 10, JWT authentication, input validation, Bandit scans
LanguesSpoken languages
Français, anglais, arabe, espagnol
French, English, Arabic, Spanish

Contact

Je cherche mon premier poste en développement logiciel. Écrivez-moi si mon profil vous intéresse, ou pour une question sur l'un de mes projets.

I'm looking for my first software development role. Write to me if my profile interests you, or with a question about any of my projects.

rihab-2000@hotmail.fr