Computer scientist — MSc from UMons — building Acteble.
Working at the crossroads of AI-era software engineering — Claude Code workflows, autonomous agents, RAG pipelines, mobile development — anchored by Software Craftsmanship: clean code, clean architecture, hexagonal architecture, DDD, TDD.
20 km of Brussels 2022Hackathon Citizens of Wallonia 2023SoCraTes BE 2023VisugXL 2023VISUG meetup — Mediator pattern and .NET 8Hackathon Citizens of Wallonia 2024EduCraft20 km of Brussels 202420 km Maredsous–Dinant 202520 km of Brussels 202520 km Maredsous–Dinant 2026SoCraTes BE 2026
Sole founder, architect and developer. Rust backend + Flutter mobile. The R&D layer also served as the dissertation for my MSc in Computer Science at UMons.
Projects:
Acteble — Backend: a modular monolith in Rust, split into bounded contexts with a hexagonal architecture, CQRS and an event-driven core (event store, outbox/inbox), served over REST/JSON and gRPC streaming; a PostGIS pipeline turns OpenStreetMap data into routing graphs published to a CDN, and custom Dylint lints enforce the architecture in CI. App: an offline-first Flutter client for iOS, Android, web and desktop — a Melos monorepo with Riverpod over an encrypted local store (Drift, SQLCipher), end-to-end encryption through a Rust core (vodozemac via flutter_rust_bridge), Bluetooth peer-to-peer sync, MapLibre maps and LiveKit real-time media. Website: a React single-page application built with Vite and internationalised with i18next. · PlatformRustTokioAxumTonicgRPCProtobufSQLxPostgreSQLPostGISRedisMinIOLiveKitOpenBaoPrometheusTestcontainersOpenStreetMapDockerCaddyDylintDDDHexagonalArchitectureCQRSEventDrivenFlutterDartMelosRiverpodDriftSQLiteSQLCipherDioFlutterRustBridgeMapLibreFlutterMapFirebaseOfflineFirstE2EEMobileReactViteJavaScripti18nextReactRouterESLintVercel
Mémoire de master — MSc dissertation « Un cadre computationnel multicritère pour l'exploration de projections spatio-temporelles dans des systèmes sociaux complexes », UMONS Service d'Algorithmique — the R&D of Acteble's planning engine. Multi-objective group formation under spatio-temporal constraints: NP-hard by reduction from k-CLIQUE; admissible groups enumerated as bicliques (Close-by-One); an iterative Pareto solver with termination and local-convergence guarantees; one DSL compiled to Python, MiniZinc and Rust that yield bit-identical fronts, the Rust output running in the Acteble API. Benchmarked against CP-SAT, NSGA-II, MOEA/D and SPEA2 (hypervolume, IGD, 30 seeds, Wilcoxon–Holm): significantly ahead of MOEA/D at every size, of NSGA-II and SPEA2 from 500 users. · DissertationPythonRustLaTeXMiniZincORToolsConstraintProgrammingCombinatorialOptimizationMultiObjectiveOptimizationParetoDSLMutationTesting
Actrack — A Python engine (DDD, hexagonal) weighs fifteen match-outcome strategies — Elo, Poisson attack/defence, form, head-to-head, squad value, rest days, bookmaker odds — adjusted for venue, and is ported to Rust/Dioxus apps for web (WebAssembly), desktop, mobile and terminal, kept at parity with it. A research lab backtests the strategies walk-forward, one tournament held out at a time, on 635 matches from ten tournaments (World Cups 2002–2022 and four continental cups of 2023–2024), and tunes the ensemble weights; out of sample, Elo alone scores best (55.6% accuracy). · Forecasting enginePythonPandasNumPySciPyDuckDBRustDioxusWebAssemblyEloRatingPoissonModelEnsembleModelWalkForwardBacktestBrierScoreHexagonalArchitectureDDDTDD
LL — A Rust workspace whose pure domain core (hexagonal, DDD, test-first) drives a terminal UI (ratatui) and Dioxus desktop and iOS apps: Leitner boxes with SM-2 scheduling over SQLite, content from checksummed data packs. Its data lab builds the six-language lexical database in Python — about 8,900 word senses (October 2026) aligned on WordNet, illustrated with Tatoeba sentences, analysed with spaCy, every word-in-sentence link checked. · ApplicationRustDioxusRatatuiSQLiteiOSSpacedRepetitionLeitnerSM2PythonspaCyNLPWordNetTatoebaHexagonalArchitectureDDDTDD
Baba — Five layers: a Rust CLI that does all the I/O, a link-grammar syntactic parser, an SWI-Prolog symbolic engine with no I/O, domain vocabulary packs kept as data, and some fifty Rust action binaries — a new verb is one pack fact and one binary. Mutation-tested, with a corpus of regression sentences and a cold start around 120 ms. · CLIRustPrologLinkGrammarSymbolicAINLPDDDTDDMutationTesting
KAG — Nine pipeline stages (download → ocrize → parse → normalize → chunk → embed → retrieve → rerank → generate), each a port whose algorithm is chosen by label (BM25F, RM3, MMR, LambdaMART, TextRank…); hexagonal + DDD + TDD, standard library only in the core, no LLM. Metrics match pytrec_eval exactly. On six BEIR datasets no retriever wins everywhere (ndcg@10 0.668 on SciFact with BM25F); a LambdaMART reranker lifts ArguAna from 0.301 to 0.527 in 5-fold cross-validation. · FrameworkRustRAGInformationRetrievalLearningToRankBEIRDDDHexagonalArchitectureTDD
Indexer — Each of the 523 sources is a TOML file that Rust validates and compiles into static JSON, embedded at build time in a Cloudflare Worker: pure-Rust API logic, ETag and 304 responses, per-IP and API-key rate limits counted exactly by a Durable Object, BM25F ranking weighted by a six-criterion reliability score, and a gap analysis that matches needs to candidate sources. · APIRustCloudflareWorkersWebAssemblyDurableObjectsTOMLBM25FInformationRetrievalTDD
Polytech — A Python library (DDD, hexagonal, test-first, mutation-tested, mypy strict) of the notions of maths, physics, electronics, signals and optimisation, computed with SymPy, NumPy and SciPy and injected through macros into 920 LaTeX documents; a pipeline converts course material to Markdown, LaTeX and XML, and Lean 4 proofs with Mathlib trace results back to the axioms. · LibraryPythonSymPyNumPySciPyLaTeXLean4MathlibDDDHexagonalArchitectureTDDMutationTesting
Converge — The AI writes operations, the engines compute: an LLM emits a strictly validated JSON part program; two independent kernels, OpenCASCADE (exact) and Manifold (mesh), must agree on volume and bounding box, and the assembly is checked for overlaps before any STEP, STL, 3MF or glTF export. A Rust core (hexagonal ports and adapters) drives a Python worker over JSON lines, and an NSGA-II search (Optuna) picks the components on a Pareto front, cross-checked by exact enumeration. · PlatformRustPythonOpenCASCADEManifoldbuild123dGmshOptunaNSGA2MultiObjectiveOptimizationParetoThreeJSHexagonalArchitectureTDD
AI research and engineering for the Belgian Federal Parliament. Designed an internal platform that lets staff search, explore and converse with the parliamentary archives. Authored an open evaluation protocol that compares retrieval strategies on the Senate corpus, with a focus on bilingual FR/NL robustness.
Projects:
Synergy — Internal platform that lets parliamentary staff search, explore and converse with the archives of the Belgian Federal Parliament, powered by a retrieval-augmented pipeline with bilingual FR/NL support.PythonJava.NETRAGAI
fedrag-be — Open, reproducible protocol that benchmarks retrieval strategies on the bilingual Senate corpus, measuring FR/NL robustness across the retrieval pipeline.RAGPythonEvaluationBenchmarkOCRSentenceTransformersPandas
Emvi App — AI powered visual assistant for visually impaired people providing them with a description of their environment, OCR, code scans (QR codes & barcodes), and an adapted Valhalla routing system for the visually impaired.FlutterFirebaseOpenAIValhallaAIDart
Built the facial recognition pipeline (DeepFace / Serengil — detection + recognition) and the sentiment-analysis stack for the LLM-generated photo descriptions.
Remi — Reminiscence application allowing people with cognitive issues to recover their memories through descriptions of their photos powered by facial recognition and LLMs. DeepFace by Serengil was used for the facial recognition pipeline.PythonFastAPIOpenAIWhisperDeepFacePostgreSQLSQLAlchemy
Used Python libraries (SpaCy, ...) to extract named entities from text via NER model training and implementation in .NET. Model recall score: 87%.
Projects:
VhAuctions NER Inventory Model — Named Entity Recognition machine learning model to extract inventory items from an audio transcription.PythonSpaCyPandasNumPy.NETNER
Software modernization within the .NET stack following domain-driven design and clean code principles. Implementation of Azure AI services in a .NET solution.
This qualifying training aimed to strengthen the technical skills acquired during my bachelor's degree program at EPHEC. In addition, during the extension, we received an introduction to Business Intelligence and ETL processes (Data Warehousing) using Microsoft tools (SSIS, ...). This comprehensive training covered various areas including SQL Server, Node.js, Express.js, React, and Angular, encompassing everything from database development to user interface and backend.
Projects:
MyWay — Education manager for students. No longer maintained; database and auth are unavailable.AngularJavaScriptTypeScriptExpress.jsAPIUI/UXSQL ServerAuth0PayPalSequelizeNode.jsReact
Master of Science - MSc in Computer Science (work-study program) — specialised professional focus (120 ECTS)
UMons
–
13.04/20 — obtained with satisfaction
MSc dissertation: « Un cadre computationnel multicritère pour l'exploration de projections spatio-temporelles dans des systèmes sociaux complexes » — carried out at the UMONS Service d'Algorithmique. Student representative & buddy TandeMons. Core coursework: software engineering & project management, artificial intelligence, databases, data structures, operational research, cryptography & IT security, and ethics & computer law, with two paid company internships.
PythonLaTeXDDDCleanArchitecture
Projects:
Mémoire de master — MSc dissertation « Un cadre computationnel multicritère pour l'exploration de projections spatio-temporelles dans des systèmes sociaux complexes », UMONS Service d'Algorithmique — the R&D of Acteble's planning engine. Multi-objective group formation under spatio-temporal constraints: NP-hard by reduction from k-CLIQUE; admissible groups enumerated as bicliques (Close-by-One); an iterative Pareto solver with termination and local-convergence guarantees; one DSL compiled to Python, MiniZinc and Rust that yield bit-identical fronts, the Rust output running in the Acteble API. Benchmarked against CP-SAT, NSGA-II, MOEA/D and SPEA2 (hypervolume, IGD, 30 seeds, Wilcoxon–Holm): significantly ahead of MOEA/D at every size, of NSGA-II and SPEA2 from 500 users. · DissertationPythonRustLaTeXMiniZincORToolsConstraintProgrammingCombinatorialOptimizationMultiObjectiveOptimizationParetoDSLMutationTesting
Synergy — Internal platform that lets parliamentary staff search, explore and converse with the archives of the Belgian Federal Parliament, powered by a retrieval-augmented pipeline with bilingual FR/NL support. · PlatformPythonJava.NETRAGAI
fedrag-be — Open, reproducible protocol that benchmarks retrieval strategies on the bilingual Senate corpus, measuring FR/NL robustness across the retrieval pipeline. · ResearchRAGPythonEvaluationBenchmarkOCRSentenceTransformersPandas
Emvi App — AI powered visual assistant for visually impaired people providing them with a description of their environment, OCR, code scans (QR codes & barcodes), and an adapted Valhalla routing system for the visually impaired. · Mobile ApplicationFlutterFirebaseOpenAIValhallaAIDart
Remi — Reminiscence application allowing people with cognitive issues to recover their memories through descriptions of their photos powered by facial recognition and LLMs. DeepFace by Serengil was used for the facial recognition pipeline. · AI ApplicationPythonFastAPIOpenAIWhisperDeepFacePostgreSQLSQLAlchemy
Programme: analysis & design, programming in .NET, Java and web, relational databases, e-business and integrated management software (ERP), networking and IT project management.
SQLC#.NETJavaPythonJSHTMLCSS
Projects:
WebMenu — QR code based cash register for HoReCa establishments..NETFlutterSQL ServerQRCode
Student Representative — EPHEC École Supérieure de Promotion Sociale, –
Tutor — EPHEC École Supérieure de Promotion Sociale, –
Attestation in 7e Spéciale Mathématiques
Institut Saint-Louis Bruxelles
–
Attestation
Bachelor in Political Sciences in General orientation
Université Saint-Louis - Bruxelles
–
29 credits earned in 2016-2017, contact me for more information.
Course units:
2016-2017
Économie I — Economics IMicroeconomicsCompetitiveMarketsFirmBehaviourMarketFailure
Économie II — Economics IIImperfectCompetitionMacroeconomicsNationalIncomeMonetaryMarket
Science politique — Political sciencePoliticalSciencePowerStateDemocracy
Séminaire : penser le social — Seminar: thinking the socialEpistemologyDurkheimWeberMarx
Séminaire : principes et méthodes en sciences sociales — Seminar: principles and methods in the social sciencesAcademicWritingCitationEpistemology
Socio-économie des médias — Socio-economics of the mediaMediaEconomicsAdvertisingMediaRegulationWebEconomy
Anglais I (Saint-Louis) — English IEnglish
Néerlandais I — Dutch IDutch
Cours préparatoires in Médecine et dentisterie
UCLouvain - Université catholique de Louvain
–
Attestation
C.E.S.S. in General Studies Maths & Modern languages
Centre Scolaire Saint-Adrien - Val Duchesse
–
Satis bene
in General studies Latin & Greek
Lycée Mater Dei
–
References
Waseem Virk, Flutter Dev Emvi.ai
Working alongside Baptiste Grosjean on the EMVI project has been an incredibly rewarding experience—both professionally and personally. Not only is Baptiste a highly skilled developer with a sharp eye for design and functionality, but he’s also been a mentor and an inspiration throughout our collaboration.
I’ve learned so much from him—from best practices in Flutter development to the importance of thoughtful UI/UX and clean architecture. He’s always willing to share his knowledge, explain complex ideas with clarity, and support the team in any way he can.
What stands out the most is Baptiste’s ability to turn challenges into opportunities. His calm, focused approach and problem-solving mindset helped us overcome technical hurdles and build features that truly improve user experience. On top of that, his collaborative nature made working as a team feel seamless and motivating.
If you're looking for someone who not only delivers exceptional results but also uplifts everyone around him, I can't recommend Baptiste enough. He’s a fantastic developer, a great teammate, and someone I’ve been lucky to learn from.
Tino Schuerewegen, Software developer at Xtrada
I had the pleasure of working with Baptiste for a year, with the added joy of mentoring him on a project for three months. If there's one thing that stands out about Baptiste, it's his boundless energy. Whether it's 9 AM or 9 PM, he's always the most enthusiastic person in the room—sometimes even more enthusiastic than the coffee machine.
Baptiste brings a contagious energy to any project he's part of. He’s outgoing, smart, and has an eagerness to learn that is truly admirable. Whether he's diving into a complex task or asking insightful questions, he's always in search of knowledge. His enthusiasm for learning, especially when it comes to leveraging tools like ChatGPT, is both impressive and a little intimidating. Seriously, if ChatGPT had a best friend, it would be Baptiste!
He’s also incredibly hands-on, never shying away from rolling up his sleeves and getting deep into the work. His approach isn't just theoretical; he's all about practical, tangible results.
In summary, if you're looking for someone who brings enthusiasm, intelligence, and a touch of humor to every task, Baptiste is your person. Working with him was not just productive, but genuinely enjoyable.
Emiel Van Gysegem, Marketing and operations at Xtra Groep
Hoewel we niet direct samenwerkten, had ik altijd een heel fijne connectie met Baptiste. In een mengelmoes van Engels, Nederlands en Frans deelden we vaak leuke gesprekken. Zijn enthousiasme en energie zijn echt aanstekelijk, en hij weet een prettige, informele sfeer te creëren in elke interactie. Baptiste is iemand die een positieve dynamiek met zich meebrengt.
Steven Claus, CFO at Xtra Groep
Baptiste is a full-stack software developer and is driven by an unwavering determination. This mindset permeates every aspect of his career. He has worked in various fields, allowing him to quickly adapt to any situation. These roles have honed both his technical and interpersonal skills, making him a versatile collaborator who significantly impacts every project he joins. Fueled by a constant desire to learn, he continually updates his knowledge through a master’s degree in computer science. This ongoing learning journey makes him a well-rounded IT professional in the field of computer science.
Tjörven Janssens, software developer at Xtrada
Baptiste is naast een software ontwikkelaar, graag bezig met data-analyse en is een expert in het gebruik van ChatGPT. Hij leert graag nieuwe dingen en doet dit ook snel. Hij is erg enthousiast in omgang en staat steeds klaar voor een vriendelijk woord of wat advies.
Michael Culot, Sales manager at Xtrada
Baptiste is a great and devoted developer who’s eager to keep learning new technologies and elevate his skill set. You would be amazed about not only his knowledge but also his warm open enthusiasm. Baptiste, you’re going to be doing great things in your life, just keep your vibrant spirit ✊