Skip to content
<Thierno DIALLO/>

Thierno DIALLO

Senior Software Engineer

Hi, I’m Thierno, a Senior Software Engineer based in Montpellier. I enjoy taking backend systems from the first architecture sketch to reliable production code, then writing the documentation that saves the next person from having to read my mind. I’m drawn to problems where reliability, security, performance, and maintainability all want the front seat. Finding the right balance between those competing concerns is the part I enjoy most. Feel free to look around; I’ve left the interesting trade-offs in plain sight.

Technical Skills

  • Java
  • Quarkus
  • Python
  • OAuth 2.0
  • OpenID Connect
  • PostgreSQL
  • Docker
  • Kubernetes
  • GitHub Copilot
Thierno DIALLO

Education

Engineering Degree (Diplôme d’ingénieur de l’École Centrale de Lyon)

September 2018 – October 2021

École Centrale de Lyon

Selected for the double-degree program with École Supérieure Polytechnique de Dakar through a competitive process. The multidisciplinary general engineering curriculum broadened my computer engineering background with a cross-disciplinary approach to engineering problems.

Engineering Degree in Computer Engineering (Diplôme d’ingénieur de conception)

October 2017 – October 2021

École Supérieure Polytechnique de Dakar

I completed ESP’s Engineering Degree program in Computer Engineering, where I built a strong foundation in computer science and engineering. This academic path later led to my selection to join École Centrale de Lyon through a double-degree program and laid the groundwork for my career as a software engineer.

University Diploma of Technology (DUT) in Computer Science

October 2015 – July 2017

École Supérieure Polytechnique de Dakar

Selected through an entrance examination and an academic-record review, I completed this two-year post-secondary program in Computer Science. It gave me my first technical foundation before I was selected to continue into ESP’s Engineering Degree program in Computer Engineering.

Experience

AI Agent Governance and Developer Enablement

January 2026 – Present

CompuGroup Medical (CGM)

As AI coding agents became part of our daily work at CGM, their rapid adoption exposed inconsistent quality, duplicated effort, unreliable outputs, and the absence of common standards. In my role as a Software Engineer with Senior Developer seniority, I responded by leading the creation of a shared framework for the team.

I authored a governance model covering ownership, contribution and review lifecycles, independent testing, preview rollouts, composability, non-overlapping activation rules, and recommended quality thresholds. To make evaluation repeatable, I designed a weighted scoring rubric and implemented a deterministic Python tool that evaluates skills and workflows, reports critical issues, and ranks improvements by impact.

I also built reusable agent skills for safe Kubernetes diagnostics, Jira issue management, GitLab pipelines and merge requests, local Git operations, feature-environment resolution, and automated quality evaluation. Two orchestration workflows combine these capabilities into structured troubleshooting and evaluation processes, with explicit contracts, reusable dependencies, safety guardrails, and failure handling.

These assets are used broadly across the team. I continue to review contributions, help colleagues create and debug their own workflows, support them when they encounter AI-agent or tool-integration issues, and evolve the framework based on practical feedback.

OIDC Federated Authentication

March 2026 – July 2026

CompuGroup Medical (CGM)

Company-wide Single Sign-On was the next step for a multi-tenant healthcare SaaS platform used in France and Italy. As a Software Engineer with Senior Developer seniority at CGM, I designed and implemented the enterprise identity-provider integration end to end.

The key architectural boundary was to delegate authentication while keeping roles, permissions, and organizational access under the platform’s control, without removing the existing username-and-password login.

I owned the architecture, stakeholder coordination, Java/Quarkus implementation, security model, and technical documentation. The integration uses the OIDC Authorization Code Flow with PKCE, Pushed Authorization Requests, state, and nonce validation.

I designed server-side management of authentication state and external tokens, including refresh and session-coupled cleanup, as well as a provider-agnostic identity-mapping model that rejects ambiguous account matches. I also solved callback routing for dynamic test environments without weakening redirect validation.

The integration is now in production and actively used by healthcare professionals, providing secure federated authentication while preserving internal authorization boundaries.

Dynamic Integration Configuration

January 2026 – March 2026

CompuGroup Medical (CGM)

Third-party integrations did not all use the same connection settings: endpoints varied by deployment environment and user profile, while the relevant configuration was scattered across files and application code. As a Software Engineer with Senior Developer seniority at CGM, I took ownership of replacing that fragmented model with a centralized configuration-resolution system.

Routing a test or pilot user to a non-production endpoint while healthcare professionals continued using the production endpoint often required a code change and redeployment, with no simple way to create an isolated exception for one user.

I replaced this with a three-tier resolution model evaluated for each user and integration: an explicit user override takes priority, an integration-specific strategy applies routing rules, and a database-managed default provides the fallback. This made routine endpoint changes and individual overrides configurable without redeploying the application.

I used Strategy and Factory patterns to keep custom routing logic isolated and extensible. I also designed the JPA data model, implemented the Java/Quarkus service and API, and documented the architecture through a formal RFC and technical diagrams. The system is actively used in production.

Projects

Laajal Sa Diine

Laajal Sa Diine is a live short-form audio Q&A platform I designed and built independently to make practical Islamic guidance easier to find. The product combines a React and TypeScript client with a Node.js and Express REST API, MongoDB, and Amazon S3.

A central application challenge was content discovery: a French-language weighted full-text index ranks matches across multiple fields, while combinable filters and infinite scrolling make the library easier to explore. I also implemented JWT-protected administration with separate permissions for content, administrator management, and backups.

Taking the product live became another major challenge. Rather than use a fully managed hosting service, I deliberately provisioned and configured a Hetzner Cloud server, deployed the services with Docker, routed them through Traefik, and configured DNS through Cloudflare.

This gave me hands-on experience with deployment and operations across the application’s full path to production. The platform remains live, used by listeners, and maintained as an evolving side project.

  • React
  • TypeScript
  • Node.js
  • Express
  • MongoDB
  • Amazon S3
  • Docker
  • Traefik
  • Cloudflare
  • Hetzner Cloud

Waste-Container Fill-Level Alert System

GSF wanted collection teams to know how full waste containers were before planning their routes. For an ECL academic project carried out from September 2019 to April 2020, I served as technical lead as we designed a connected system to measure fill levels and transmit periodic data.

I led the electronics design and implementation, defining the communication path from an ultrasonic sensor and Arduino board to a LoRa gateway connected to GSF’s servers. I wrote the Arduino/C++ firmware and configured measurements and transmissions at 30-minute intervals to limit device activity and conserve battery power.

I coordinated with the mechanical team, which used ECL’s FabLab to manufacture a protective enclosure suitable for dirty and demanding conditions. We delivered a working, field-tested system and validated it in several waste containers. Without an intermediate relay, the LoRa communication reached approximately 100 metres.

The project strengthened my experience in embedded systems, low-power design, long-range communication, and multidisciplinary technical leadership.

  • Arduino
  • C++
  • LoRa
  • Ultrasonic Sensor

French Robotics Cup 2019 – Atom Factory

The 2019 French Robotics Cup challenged teams to design and build autonomous robots for Atom Factory, a 100-second match with several possible scoring actions and no prescribed order. Representing École Centrale de Lyon, I worked on our entry from September 2018 to June 2019, where strategy mattered as much as reliable execution.

As technical lead of the electronics team, I contributed extensively to the Python embedded software running on LEGO EV3 controllers. I worked closely with the mechanical team to align match strategy, physical capabilities, and software behavior, while coordinating the electronics work through implementation and integration.

We also applied closed-loop control concepts from our ECL coursework to regulate robot movement and position. Our robots passed official homologation and competed in the event. The project strengthened my experience in embedded programming, control systems, cross-disciplinary integration, and technical coordination.

  • Python
  • LEGO MINDSTORMS EV3
  • Embedded Systems
  • Closed-Loop Control