My Work, My life, My love
This is an overview of my professional work over the last 11 years.
Senior Front-End Developer at Al Jazeera
Al Jazeera is among the biggest news media companies on the world. Based on Qatar, it's primary audience are arabs but it does have products for other regions such as English speaking countries or Chinese ones.

Main Responsibilities:
- In-house AI: Integration of our AI on GCP with various parts of our CMS to reduce workload for our news editors.
- Dark theme: Implementation of dark theme for the video section of our five different products.
- Analytics: Migration from Google Optimize to Mixpanel throughout the codebase, and supervision of various new experiments end-to-end.
- Code Quality: Refactoring of different legacy parts of the codebase, along with migration from JS to TS where it made sense.
Notable Achievements:
- Migrated 40% of the codebase to TypeScript, with all the strict mode family options enabled.
- Replaced legacy playlists with AI generated ones, increasing time on site by 8%.
- Integrated Onetrust to simplify cookie management and comply with the different regulations (GDPR, PIPEDA, etc).
Senior Full-Stack Developer at Hofy
Hofy was an EaaS (equipment-as-a-service) company, providing companies the ability to send work devices to their remote works in more than all over the world. It was aquired by Deel a couple of years ago, which is when I moved to Canada and joined Stay22.

Main Responsibilities:
- Self-Serve: Collaboration with design & product to run experiments on our onboarding experience to minimize friction and provide clients with frequent automated updates.
- Shipping Microservice: Refactoring and development of our shipping codebase to integrate with all major shipping APIs, increase accessibility to updates, and reduce complexity.
Notable Achievements:
- Reduced the number of support tickets by 25% through continuous A/B experiments on the onboarding experience.
- Slashed the cost of a resources-heavy microservice by 57% by rewriting it from NestJS to Golang.
Front-End Developer at Turing
Turing is AI company that matches remote tech workers with companies. Initially, I took their test to join the platform as a user but then they offered me a position with the internal team which I was happy to take. The company grew from less than 100 people to over 600 during my time there.

Main Responsibilities:
- Self-Serve: Addition of the ability to save developer profiles by our HR clients and share them even with users outside the self-serve platform.
- Newsletter: Implementation of an in-house newsletter service for our marketing team, including the front-end on Next.js and back-end on NestJS.
- Notification System: Development of our automated notification in collaboration with marketing to increase KPIs and reduce churn.
- Tracking: Addition of extensive tracking with Amplitude throughout our products in order to have clear data points for A/B experiments.
Notable Achievements:
- Implemented functionality to share developer profiles which increased referrals from existing clients by 15%.
- Added Amplitude tracking to 90% of the codebase which led to more precise A/B experiments with clearer results.
Technical Lead at Upbots
Upbots was an automated trading platform for cryptocurrencies, it started off with CEX (Centralized Exchanges) support before adding Superbot as a product which supported Dex (Decentralized Exchanges). Unfortunately it went down with FTX as a lot of capital was staked there.

Main Responsibilities:
- Code Coverage: Creation of unit tests and end-to-end tests for the codebases of Upbots and Superbots.
- Android Application: Creation of an mobile application that replicate most of the functionalities available from the web application.
- Smart Contracts: Porting of two trading bots from TypeScript to Solidity in order for them to be available for DEX users.
- Superbots: Porting of the Superbots codebase from Vue.js to Next.js, along with creation of new UI components based on our new designer suggestions.
Notable Achievements:
- Created an Android app for Upbots using React Native which led to a considerable amount of new signups thanks to searches on Google Play.
- Ported Superbots from Vue.js to Next.js which eased future development and allowed usage of improved components.
- Created smart contracts for bots using Solidity in order to allow users the option of stacking crypto with their wallets.
- Achieved a code coverage of 80% for the codebases for Upbots and Superbots.
Full-Stack Developer at Design With Friends
Design With Friends is a platform to virtually design rooms then buy all the furniture required to make the virtual room real. This was a fascinating project to work with, my tech lead at this company was one of my best mentors. It's thanks to him that I learned to love TypeScript.

Main Responsibilities:
- Scraping Microservice: Implementation of scraping for major retailers using Puppeteer, Cheerio, and NestJS. Afterwards we moved to using Lambda functions which reduced the server costs due to the nature of scraping (we don't need it running 24/7).
- UI/UX Improvements: General optimizations and changes around the products, along with a number of small A/B experiments.
- Code Coverage: Creation of unit tests to increase coverage in our codebase both on the front-end and back-end.
- Code Quality: Creation of npm package for common modules and types to be reused in our different codebases.
Notable Achievements:
- Created a scraping microservice for major US retailers (Amazon, Etsy, Walmart, etc) which automated the work of two freelancers that we were employing to fetch data manually.
- Migrated the scraping architecture to AWS Lambdas using the Serverless framework. This migration reduced server costs for this microservice by 68%.
Full Stack-Developer at CodinGame
CodinGame is a gaming platform where games are played using AI bots coded by the players. I got an opportunity to interview with them after winning one of their community challenges. This way my first job outside Morocco, I loved Montpellier and the Occitanie region.

Main Responsibilities:
- Admin Area: Creation of an administration area for internal use, it allowed our sales and customer success teams to customize our clients plans and meet their expectations.
- Code Quality: Implementation end-to-end testing using Cypress for the main user journeys on our product. This effort was ongoing at the same time as a portage from AngularJS to React.
Notable Achievements:
- Created an internal tool to automate common sales team workflows, the sales director invited me for drinks the week that it deployed.
- Ported 30% of CodinGame's codebase from AngularJS to React.
Full-Stack Developer at TechnoPark
TechnoPark is an organization that helps early stage startups secure funding and find mentorship. My job with the organization was to educate non technical founders on how to best proceed with their projects and occasionally help some of them with tricky technical problems.

Main Responsibilities:
- Workshops & Conferences: Presentations and workshops to startup founders on how technology can take their project to the next stage.
- Technical Consultancy: Continuous advisement and follow-ups with selected startups to help them with their ongoing technical challenges.
Notable Achievements:
- Traveled around the world.