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)