Back

Khaled Ferjani

Technical Lead

Summary

9 years at LINAGORA, Tech Lead since 2025. I'm Tech Lead on Twake Workplace at LINAGORA, an open-source suite with mail, calendar, chat and drive. I own sign-in and accounts: how people log in, and how an account gets created or deleted across every app, in the cloud and on customers' own servers. I write the design decisions down, and I still write the code. On the side I build Dojo, a free daily-practice school for engineers.

Technologies

TypeScript · Svelte · React · Node.js · Fastify · Go · Ruby on Rails · PostgreSQL · RabbitMQ · OIDC / LDAP · Kubernetes · Helm · Docker · Traefik · OpenBao · Sentry · GitHub Actions · Tailwind CSS · Linux · Git · Vue.js

Experience

Technical Lead, LINAGORA

Jun 2025 – Present

Issy-les-Moulineaux, France

Technical lead for around 20 engineers on Twake Workplace, which serves 7,000 active users and business (B2B) customers. I own sign-in and identity (SSO/OIDC, 2FA, client-side encryption), the RabbitMQ messaging between services, and security hardening. Reviewed 650+ pull requests across 38 repositories.

  • Wrote 20+ architecture decision records, on account lifecycle, external SSO, messaging and paid plans.
  • Made account creation and deletion work the same way in SaaS and on-prem: one event, and every app follows. 50+ merged PRs in the open-source ldap-rest along the way.
  • Took new collaboration apps from first design to production in weeks (React, Fastify, PostgreSQL, RabbitMQ), wired into mail, calendar, chat and drive.
  • Shipped two open-source services: one signs a user out everywhere when their account is deleted, the other is a proxy that hides users from third-party content providers.
  • Built the Twake Dashboard that operators use to run the platform, with role-based access, an audit trail, replay of failed messages and an on-prem mode.
  • Wired Stripe billing into the product, so billing events show up as banners inside the apps (RabbitMQ across Rails, Go and React services).
  • Rebuilt the dev Kubernetes cluster with secrets in OpenBao, and ran production rollouts that touched several services at once.
  • Ran hiring for senior engineers (technical test and interviews). Set up an AI-assisted code review workflow shared with the team.

Senior Full-Stack Developer, LINAGORA

2022 – 2025

Tunis & Issy-les-Moulineaux, France

Built platform services for Twake Workplace, its signup flow and Twake On Matrix (Matrix-based chat). Shipped major features in Cozy Drive and contributed upstream to Cozy. Owned the CI/CD: Docker, GitHub Actions and Helm.

Full-Stack Developer, LINAGORA

2020 – 2022

Tunis, Tunisia

Built the Twake platform and its Matrix invitation system, and contributed to OpenPaaS and SmartSla. Wrote frontends in AngularJS, Vue and React, set up CI/CD pipelines, and kept the integrations between teams working.

Web Developer, LINAGORA

2017 – 2020

Tunis, Tunisia

Built and maintained a managed PKI (digital certificates) platform for ANCE, the Tunisian national certification agency. Ran the client demos and the support.

Open Source & Side Projects

ldap-rest

(TypeScript, LDAP, RabbitMQ)

REST API for LDAP directories that also publishes every change as an event. 50+ merged PRs.

twake-sessions-service

(TypeScript, LemonLDAP::NG, RabbitMQ)

Ends SSO sessions when an account is deleted, driven by RabbitMQ events

Dojo

(SvelteKit, PWA, Mermaid)

Short daily lessons for software engineers on architecture, DevOps, databases, security and more, in French and English. Works offline, and spaced repetition brings old topics back before you forget them.

Vetixa

(SvelteKit, PocketBase, TailwindCSS, Zod)

Veterinary clinic management system, in production at vetixa.tn

Also contributed to cozy-stack and validator.js

Education

Applied BSc in Computer Science & Software Engineering

INSAT, National Institute of Applied Science and Technology · 2014 – 2017

Languages

Arabic (native) · French (fluent, daily at work) · English (fluent, daily at work)