En alternance @ Horizon Trading Solutions

Théo DULUARD

Analyste-Développeur Logiciel

Diplômé d'un Master en Informatique avec 2 ans d'alternance, je me spécialise en développement Java/JS côté backend et React côté frontend. Curieux, rigoureux et sérieux, je cherche à apporter de la valeur à chaque projet sur lequel je travaille.

Stack principale

Java Spring Boot React JavaScript TypeScript Docker PostgreSQL GitLab CI

01. Cursus Scolaire

Master en Informatique, spécialisé en Ingénierie Logicielle

Université de Rennes • 2024 - 2026

Formation orientée conception de logiciels complexes, architectures distribuées et qualité logicielle. Axée sur les pratiques industrielles modernes : micro-services, cloud, vérification formelle et développement mobile.

Concepts étudiés

Architecture Logicielle (Micro-services, Monolithique)Patrons de conceptionDSL & Conception de langagesProgrammation logique (Prolog)Conception Bases de donnéesSécurité de solutionsWebSocket & Message Broker (RabbitMQ)

Technologies & Outils

React Java JavaScript PostgreSQL MySQL Firebase Angular Keycloak Xtext Langium Postman JUnit GitLab

Licence en Informatique

Université du Mans • 2021 - 2024

Formation pluridisciplinaire couvrant les fondements de l'informatique : algorithmique, programmation orientée objet, bases de données, réseaux et développement web. Réalisée en parallèle de mon alternance chez Horizon Trading Solutions.

Concepts étudiés

Algorithmique & Structures de donnéesProgrammation Orientée ObjetBases de données relationnellesRéseaux & SystèmesDéveloppement WebGénie LogicielPatrons de conception

Technologies & Outils

C Java Python JavaScript HTML CSS PostgreSQL GitHub Unix / Shell Prolog Haskell

1ère année de Licence — Mathématiques et Applications

Université du Mans • 2020 - 2021

Année universitaire centrée sur les fondements mathématiques et leur application à l'informatique et aux sciences. A renforcé ma rigueur analytique et ma capacité d'abstraction, utiles en programmation et en algorithmique.

Concepts étudiés

Algèbre LinéaireAnalyse & Calcul différentielProbabilités & StatistiquesLogique mathématiqueIntroduction à la programmation

Technologies & Outils

Python Scilab

02. Expériences Pros

Alternance · En cours

Développeur Java

Horizon Trading Solutions · Rennes

Éditeur de solutions de trading algorithmique temps réel pour banques d'investissement et brokers (130+ collaborateurs, présence internationale).

Sept. 2024 — Août 2026
  • Conception et développement d'un système de Functional Monitoring pour la plateforme H3 : capture en temps réel des métriques d'activité client via un framework de messaging haute performance (Aeron).
  • Centralisation des événements de marché (ordres, volumes) dans une base de données de séries temporelles (InfluxDB) et visualisation via Grafana.
  • Développement d'un processus d'extraction de données (requêtes Flux, export CSV) permettant l'analyse des volumes d'activité client et le suivi des métriques d'usage.
  • Contributions diverses : correction de bugs, amélioration de logiques métier, gestion d'exceptions dans un environnement distribué, rédaction de tests unitaires et d'intégration (JUnit, Mockito).
  • Cycle Agile Scrum (sprints de 2 semaines) : grooming, estimation, code review systématique, contrôle qualité et livraison continue.

Stack

JavaAeronInfluxDBFluxGrafanaPostgreSQLJUnit · MockitoGradleGitLabJenkinsJira · Scrum
Stage pré-embauche

Développeur Java — Intégration & Onboarding

Horizon Trading Solutions · Rennes

Stage de pré-embauche en vue de l'alternance de Master, intégré à une équipe Scrum sur la plateforme de trading H3.

Juil. — Sept. 2024
  • Onboarding et prise en main de l'environnement de développement (IntelliJ IDEA, Git, Gradle, Jenkins) et découverte fonctionnelle de la plateforme de trading H3.
  • Configuration d'un environnement de trading local complet : importation d'instruments financiers, gestion d'ordres et lecture du carnet de profondeur de marché.
  • Développement d'un client Java de connectivité marché : souscription aux flux d'événements temps réel (ordres, profondeur), envoi d'ordres et implémentation d'une stratégie de réponse automatique.
  • Réalisation des premiers tickets Jira en autonomie : développement de fonctionnalités et corrections en Java dans le cycle Scrum de l'équipe.

Stack

JavaIntelliJ IDEAJUnit · MockitoGitGradleDockerJira · Scrum

03. Projets Personnels et Universitaires

Micro-services & IA Master 2

VoiceMail AI Assistant

Assistant vocal IA de gestion d'e-mails, architecturé autour d'un pattern BFF orchestrant plusieurs micro-services (11 conteneurs Docker) avec traitement local via un LLM.

  • Privacy by Design : Anonymisation automatique des données personnelles avant traitement par le modèle.
  • NLU local : Analyse d'intention via Ollama (Llama 3.1) pour générer des plans d'action JSON validés par schéma.

Stack Technique

React TSSpring BootOllama 3DockerKeycloakGitLab CI
—/16
CLIENT UIReact · TSAPI GATEWAYBFF · OrchestrateurANONYMIZERJava · Stanford NLPOLLAMA LLMLlama 3.1VALIDATORAJV · JSON SchemaEMAIL SVCTypeScriptMAIL SERVERIMAP · SMTP

Cliquez sur ▶ pour simuler un traitement de commande vocale.

Application Mobile Master 2

Allo-Mission

Plateforme de mise en relation professionnelle. Les recruteurs peuvent publier des offres d'emploi détaillées, tandis que les candidats ont la possibilité de consulter ces annonces et d'y postuler directement depuis leur smartphone.

  • Double rôle : Interface dédiée recruteur (publication, gestion des offres) et interface candidat (recherche, candidature en un tap).
  • Authentification Firebase : Gestion des comptes, persistance de session et sécurisation des données en temps réel.
  • Cross-platform : Application Expo déployée sur iOS et Android depuis une base de code unique en TypeScript.

Stack Technique

React NativeTypeScriptExpoFirebase
API REST Backend Master 2

Jibrax API

Système complet de gestion de projet orienté équipe, conçu pour appliquer des principes avancés de conception logicielle et de persistance des données. L'architecture simule un environnement collaboratif réel.

  • Architecture à 4 entités : Gestion des Utilisateurs, Équipes, Projets et Tâches.
  • Opérations CRUD : Création et gestion complète du cycle de vie de chaque entité.
  • Requêtes avancées : Filtrage des utilisateurs actifs, récupération des projets par leader, filtrage des tâches par assignation ou équipe.

Stack Technique

JavaSpringPostgreSQLKeycloak
GET /api/users/active
200
{
  "count": 3,
  "users": [
    { "id": 1, "name": "t.duluard", "role": "ADMIN" },
    { "id": 2, "name": "a.martin", "role": "DEV" },
    { "id": 3, "name": "l.chen", "role": "DEV" }
  ]
}
{
  "team": "Backend Squad",
  "projects": [
    { "id": 1042, "name": "Jibrax Migration", "status": "IN_PROGRESS" },
    { "id": 1043, "name": "Auth Refactor", "status": "DONE" }
  ]
}
{
  "open_tasks": 4,
  "items": [
    { "id": 201, "title": "Fix N+1 queries", "priority": "HIGH" },
    { "id": 202, "title": "Add pagination", "priority": "MED" },
    { "id": 203, "title": "JWT refresh flow", "priority": "HIGH" }
  ]
}
// POST /api/tasks → 201 Created
{
  "id": 204,
  "title": "Write unit tests",
  "assignee": "t.duluard",
  "project_id": 1042,
  "created_at": "2025-05-18T09:41:00Z"
}
cycling endpoints…
DSL & Ingénierie des langages Master 2

RoboML

Conception d'un langage dédié (DSL) pour la programmation d'un robot à quatre roues. Le projet couvre l'intégralité du cycle de développement d'un langage : métamodèle, éditeur avec coloration syntaxique, interpréteur web et compilateur vers Arduino.

  • Syntaxe abstraite : Définition du métamodèle avec Ecore, gestion des mouvements, capteurs, variables et structures de contrôle.
  • Éditeur VSCode : Grammaire Langium avec coloration syntaxique et autocomplétion intégrées.
  • Double sémantique : Interpréteur avec simulateur visuel (P5.js) et compilateur générant du code Arduino exécutable sur matériel réel.

Stack Technique

Ecore / EclipseLangiumTypeScriptP5.jsArduino (C++)

RoboML — simulation en direct

explore.rml
fn explore() {
  Forward(50 cm)
  Rotation(90 deg)
  if Distance() < 20 {
    Backward(30 cm)
  }
}
Métamodèle EcoreGrammaire LangiumSimulateur P5.jsCompilateur Arduino
CI/CD & DevOps Master 2

GitLab CI/CD Pipeline

Mise en place d'un pipeline CI/CD complet sur GitLab pour une application Java Spring Boot. Le pipeline automatise l'ensemble du cycle de livraison, du build jusqu'au déploiement sur AWS EC2.

  • Pipeline 5 étapes : Build → Tests (JUnit + JaCoCo) → Documentation (JavaDoc) → Release automatisée → Déploiement SSH sur EC2.
  • Qualité intégrée : Couverture de code JaCoCo, génération de badges de statut et rapports d'artefacts automatiques.
  • Versioning automatique : Création de releases GitLab avec tags et changelogs générés à chaque livraison.

Stack Technique

GitLab CI/CDJava · Spring BootGradleJUnit · JaCoCoAWS EC2Docker

.gitlab-ci.yml

build 12s
test coverage: 87% 34s
documentation 8s
release v1.2.0 5s
deploy → AWS EC2 22s
Pipeline #47 · passed · triggered by push to main
CLI & Multithreading Master 1

At Wok

Simulation console du fonctionnement d'un restaurant (serveurs, cuisiniers, clients). L'objectif de cette application est la maîtrise de la programmation concurrente et la résolution des problématiques d'accès simultanés aux ressources.

  • Sémaphores : Gestion des files d'attente complexes et limitation des accès concurrents.
  • Blocs Synchronized : Protection des variables partagées pour éviter les *Race Conditions*.
  • Multithreading : Exécution parallèle du cycle de vie de chaque acteur du restaurant.

Stack Technique

JavaThreads (Concurrency)

🍜 At Wok

Serveur:
👨‍🍳 Chef en attente

🪑 Salle (Clients)

Salle vide...

📋 Terminal (WebSocket)

En attente de connexion au serveur Java...
Desktop Client L3 Informatique

JacoBhashi

Application de bureau développée en équipe (8 membres) pour le puzzle Hashi. Elle orchestre une interface riche via JavaFX et un backend Spring Boot, proposant le mode classique et un mode "Breaking Bridges" innovant.

  • Assistance Avancée : Système expert suggérant des coups, vérificateur de solution intégré, et "Hypothesis Mode" pour tester des chemins.
  • Persistance & Progression : Sauvegardes de parties liées aux profils utilisateurs, système de "Undo/Redo", et leaderboards intégrés.

Stack Technique

JavaSpring BootJavaFXMaven
JacoBhashi-1.8.1-SNAPSHOT.jar