Update README.md

This commit is contained in:
2026-10-20 16:23:49 +00:00
parent aba85f1a92
commit afa035a295
+74 -52
View File
@@ -1,74 +1,96 @@
# Adrien Bouvais # Adrien Bouvais
Data, Platform, MLOps Engineer based in Luxembourg. **Data, Platform & MLOps Engineer** based in Luxembourg.
I design backend systems, data platforms, and inference infrastructure — currently architecting the backend for Clearstream AI at Clavem Group.
I design backend systems, data platforms and inference infrastructure, currently on the backend of Clearstream AI at Clavem Group. Outside of work I write Zig, mostly tools for physics and simulation, dev video games and self-host my own server at home.
---
## Currently building
### [Zigma](https://zigma.bouvais.lu): a programming language for scientific computing
Zigma makes scientific computing safer and easier. It attaches dimensions and scales directly to variables and performs strict dimensional analysis at compile time: add meters to seconds and your code simply won't compile. The source isn't public yet, but the [documentation](https://zigma.bouvais.lu) is.
```text
g = 9.81 m/s2
t = 0..10 s step 0.1
v0 = 20.0 m/s
// Zigma automatically derives that 'y' is in [m]
y = (v0 * t) - (0.5 * g * t^2)
// Compile-Time Error: Cannot add [m] to [s]
wrong = y + t
```
- **Math-first syntax:** reads like a math notebook
- **Dimensions first:** attach dimensions to variables and let the compiler check them
- **Automatic scale:** add meters to inches and Zigma does the conversion
- **Python and Jupyter:** designed to be used in notebooks alongside Python and NumPy
- **Fast:** built on Zig, with SIMD or WebGPU
- **Uncertainty propagation:** confidence intervals (`20.0 +/- 0.5 m/s`) handled natively in math operations
### [dimal](https://git.bouvais.lu/adrien/zig-dimal): dimensional analysis for Zig
The type system powering Zigma. A single `Tensor` API parameterized entirely at compile time by:
`T` (numeric type) · `dims` (physical dimensions) · `scales` (unit scale) · `shape` (array shape)
Originally built to store `i128` positions in space simulations and avoid float precision loss at astronomical scales. Its WebGPU binding lives in [zig-wgpu](https://git.bouvais.lu/adrien/zig-wgpu).
### Trading game
A market simulation built as one giant DAG: nodes generate, transform, store, trade and consume resources, all with dynamic pricing. You start small, buying and selling tiny quantities, then grow until you're moving the market itself. Written in Zig + Raylib, no modern engine.
--- ---
## Work ## Work
**Senior Data/ML Engineer — Clavem Group** *(2024 – present)* **Senior Data/ML Engineer, Clavem Group** · 2024 – present
Lead backend architect for a cloud-agnostic AI/data platform serving multiple business units in production. Backend and architecture of a cloud-agnostic AI/data platform used in production by multiple business units.
- Designed full platform architecture: ingestion, storage, serving, and security layers - Design and upkeep of the platform architecture: ingestion, storage, serving and security
- GitOps CI/CD on OpenShift/ArgoCD — config repos per environment, PR-gated promotion to production - GitOps CI/CD on OpenShift + ArgoCD, with a config repo per environment and PR-gated promotion to production
- Inference containers in Python, model/dataset registry via DVC + Artifactory, automated via GitHub Actions - Versioned model and dataset registry (DVC, Artifactory, Airflow) so Data Science teams work autonomously
- Operated and monitored production workloads on OpenShift; enforced secrets management and least-privilege access - Least-privilege access, secrets management and compliance checks before every release
**Data Engineer — Reveals SA** *(2023 – 2024)* **Data Engineer, Reveals SA** · 2023 – 2024
Core banking data migration and quality platform for a Luxembourg bank. Core banking data migration and quality platform for a Luxembourg bank.
- Fault-tolerant pipeline migrating billions of rows of sensitive financial data — zero data loss, TLS-secured - Fault-tolerant pipeline migrating billions of sensitive rows: zero data loss, encrypted in transit
- Airflow DAGs for multi-source ETL: parallel tasks, dataset dependencies, Oracle → PostgreSQL consolidation - Airflow DAGs for multi-source ETL (Oracle → PostgreSQL), plus pseudonymisation and synthetic test data
- Real-time data quality platform (Python/Flask) and self-service SQL validation framework for non-technical stakeholders - Real-time data quality platform (Flask + HTMX) and a self-service SQL validation framework for non-technical users
**Data & AI Consultant — Ernst & Young** *(2022 – 2023)* **Data Engineering Consultant, Ernst & Young** · 2022 – 2023
Data architecture advisory for enterprise clients on Azure. Data architecture advisory for enterprise clients on Azure: platform design, SQL schema optimisation, Airflow-orchestrated ETL.
- Designed data platform architectures and ETL pipelines for clients across multiple industries
- SQL schema optimisation for analytical workloads; Airflow-orchestrated data flows on Azure **Education:** Engineering degree in Thermal & Energy Engineering, Université Bretagne Sud (2019 – 2021)
--- ---
## Currently Building ## Other projects
### Trading video game | Repository | Language | What it is |
|---|---|---|
A giant DAG with nodes that generate, transform, store, trade, use ressources with dynamic pricing. | [ZipponDB](https://git.bouvais.lu/adrien/ZipponDB) | Zig | A database written in Zig |
Game is to play with the market, starting little by buying and selling small quantity. | [zig-multi-thread-raytracer](https://git.bouvais.lu/adrien/zig-multi-thread-raytracer) | Zig | A multi-threaded raytracer |
Then with more money, player can influence the market at higher level. | [Advent-of-Code](https://git.bouvais.lu/adrien/Advent-of-Code) | Zig | Puzzle solutions |
Game is done in Zig + Raylib. So no modern engine. | [Selfhosted-config](https://git.bouvais.lu/adrien/Selfhosted-config) | CSS | Docker Compose + config for my home server |
| [nvim-zig](https://git.bouvais.lu/adrien/nvim-zig) | Lua | My minimal Neovim config for Zig |
### [Zigma](https://git.bouvais.lu/adrien/zigma) — A Programming Language for Science | [Dotfiles](https://git.bouvais.lu/adrien/Dotfiles) | Lua | Arch Linux setup |
Write physics equations as code. Zigma attaches **dimensions and units directly to variables** and resolves them at compile-time via Zig's `comptime` — so a unit mismatch is a compiler error, not a runtime catastrophe.
```
g = 9.81 m/s²
t = 0..10 s step 0.1
v0 = 20.0 m/s
y = (v0 * t) - (0.5 * g * t^2) // Zigma derives: y is in [meters]
wrong = y + t // Compile-Time Error: Cannot add [Length] to [Time]
```
Zigma transpiles directly to Zig — C-level performance, automatic SIMD acceleration, zero runtime overhead. Supports uncertainty propagation (`20.0 +/- 0.5 m/s`), native CSV interpolation for empirical data, and `i128` precision for large-scale spatial simulations.
Roadmap: WASM notebook, GPU acceleration (WebGPU), autograd, automatic Jacobian transforms.
### [dimal](https://git.bouvais.lu/adrien/zig-dimal) — Dimensional Analysis Library for Zig
The type system powering Zigma. A unified `Tensor` API parameterized entirely at compile-time:
`T` (numeric type) · `dims` (physical dimensions) · `scales` (unit scale) · `shape` (array shape)
Originally built to use `i128` positions in space simulations to avoid float precision loss at astronomical scales.
--- ---
## Stack ## Stack
`Python` `Go` `Zig` `SQL` · `PostgreSQL` `Oracle` `SQLite` | | |
`OpenShift` `ArgoCD` `Airflow` `Terraform` `GCP` `Azure` |---|---|
`GitHub Actions` `DVC` `FastAPI` `Flask` `Docker` | **Languages** | `Python` `Go` `Zig` `SQL` `Shell` |
| **Data** | `PostgreSQL` `Oracle` `SQLite` `Airflow` `DVC` |
| **Platform** | `OpenShift` `ArgoCD` `Terraform` `Docker` `GCP` `Azure` |
| **CI/CD & APIs** | `GitHub Actions` `FastAPI` `Flask` |
--- ---
`contact@bouvais.lu` ## Contact
[contact@bouvais.lu](mailto:contact@bouvais.lu)