profile-pic
There's a module for that!
Solving hard problems in Drupal architecture and development

Portfolio


WorkBC.ca: Engineering a massive Drupal site

A screenshot of the front page of WorkBC.ca

CDQ: Re-engineering a failing Drupal codebase

A screenshot of the front page of CareerDiscoveryQuizzes.WorkBC.ca

SSOT: Creating a data API for Drupal consumption

A screenshot of the Swagger/OpenAPI documentation page of the Single Source of Truth (SSOT) API.

Services


Solution architecture

A cabin

Module development

A cake

Service integration

A circus tent

Content migration

A safe

Troubleshooting and optimization

A submarine

Engineering leadership

A game controller

About


Hello! :wave:

My name is Karim Ratib. I consider myself a software “craftsman”, combining professional programmer, architect, tinkerer, learner, speculator, etc.

I’m also a lifelong music fan, learner, player and programmer. I’m deeply involved in a project called music-i18n, which aims at adding support for non-common Western practice to open source music software. I’m contributing to FOSS projects and creating my own around this concept - you can check my music demos here.

I’m currenty serving as MusicXML spec editor and W3C Music Notation Group co-chair.

Professionally, I’m working as a solution architect with the Government of British Columbia. I also offer Drupal consulting services through my own business.

Until 2020, and for ~10 years, I led a fantastic team of programmers at a great, small organization called Meedan. We worked on collaborative annotation systems for social media, notably applied to fact-checking. We open sourced all our code.

Before Meedan, we get into archeology - thanks to Wayback Machine for preserving my sites :raised_hands:

Contact Me


If you have a project where you think my skills would be valuable, I would love to hear from you! The more details you include in your message, the more accurately I'll be able to respond. Thanks for your interest.

Please note that clicking Send will open up your email client to actually send the message.