Mission. Lead the AI and GenAI platform architecture for EDF Group, serving 10+ data science and product teams across energy retail, grid operations, commercial analytics and customer experience.
Challenge. The platform had become shared infrastructure that multiple business units depend on. At the same time, generative AI tooling was changing faster than any previous technology stack. The organization needed to adopt GenAI and agentic systems without destabilizing platforms already running business-critical workloads.
Actions.
- Defined the GenAI and ML platform roadmap, and led the Architecture Review Board across business units
- Separated stable platform contracts from swappable application tooling, so teams could adopt new frameworks without platform migration
- Built the evaluation infrastructure for LLM systems: versioned test datasets, automated regression testing, and quality scoring calibrated against human review
- Established the reference architecture for agentic workflows, with human approval steps built into the system design rather than added afterwards
- Introduced LLMOps practices: prompt versioning, guardrails, cost governance per team, and full trace logging for audit
- Delivered an LLM-powered opportunity detection system giving commercial teams 12–24 months of advance visibility on photovoltaic self-consumption projects
- Led the enterprise rollout of AI-assisted development tooling, including adoption strategy and cost governance
Business impact.
| Metric | Result |
|---|---|
| Platform availability | 99.9% across 100+ daily ML workloads |
| Infrastructure cost | −30% through FinOps governance |
| Incident resolution | <90 min median, down from 4 hours |
| Teams served | 10+ data science and product teams |
Stack — Python · LangChain · LangGraph · LlamaIndex · MCP · pgvector · Mistral · Gemini · Ollama · RAGAS · MLflow · Evidently · FastAPI · Kafka · Airflow · Kubernetes · OpenShift · AWS · Terraform · OpenTelemetry · Prometheus · Grafana · ELK
Read the full engineering detail
Governance under technology velocity. The governing tension is stability against velocity: 10+ teams depend on invariant infrastructure while the tooling landscape reorganizes continuously. The architectural resolution separates the two concerns — stable contracts at the platform layer, swappable implementations at the application layer. Serving topology, observability schemas and deployment pipelines remain invariant while teams migrate between orchestration frameworks. Reference blueprints are published and adopted rather than mandated.
Evaluation as an operational discipline. Production LLM systems fail differently from classical ML. Accuracy metrics do not transfer, and distribution shift is semantic rather than statistical. The platform treats the evaluation harness as infrastructure rather than a pre-deployment checkpoint:
- Golden datasets versioned alongside prompts, with regression suites executed on every prompt, model or retrieval change
- LLM-as-judge scoring calibrated against human annotation, with inter-rater agreement tracked to detect judge drift
- Retrieval quality measured independently of generation quality — recall@k and nDCG at retrieval, faithfulness and answer relevance at generation
- Offline evaluation gates in CI, complemented by online evaluation on sampled production traces
Agentic architecture. Agent reliability is a property of the harness, not of the model. The reference architecture is deliberately constrained: deterministic state machines over free-form LLM routing, with every transition typed, observable and restartable from checkpoint; explicit termination criteria and step budgets bounding runaway loops; tool schemas under strict validation with structured output enforced through constrained decoding; human approval expressed as a typed state transition rather than an external callback, eliminating race conditions; durable execution with checkpoint persistence, enabling recovery from mid-workflow faults without full replay. MCP adopted as the tool interoperability layer.
Retrieval engineering. Production RAG diverges sharply from reference implementations. Hybrid retrieval combines BM25 lexical matching with dense embeddings through reciprocal rank fusion, followed by cross-encoder reranking on the candidate set — trading latency for precision where the corpus is adversarially self-similar. Chunking strategy is determined empirically per corpus: semantic boundaries outperform fixed windows on structured regulatory documents by a wide margin. Context compression preserves token budget on long-context queries.
Inference economics. Cost is measured per resolved task, never per token. An architecture that halves token consumption while doubling retry rates is a regression that token-level accounting reports as an improvement. Controls in production: model routing and cascades, where smaller models absorb the tractable majority; semantic caching on high-repetition query classes; per-team cost attribution surfaced alongside latency and error rate.
Sovereignty and regulation. Data residency is an architectural constraint, not a cost trade-off. Deployment paths for sovereign European models and on-premise inference maintain optionality without forcing a second architecture. EU AI Act obligations are translated into platform primitives: system classification at onboarding, model cards and data lineage as mandatory deployment artifacts, transparency enforced at the serving layer, human oversight expressed as architecture.
Observability for non-deterministic systems. Span-level tracing aligned with OpenTelemetry GenAI semantic conventions. Every inference carries its prompt version, retrieved context, tool invocation trace, token accounting and evaluation scores. Embedding drift is monitored alongside classical feature drift — semantic shift within a corpus degrades retrieval quality before any downstream accuracy metric registers it.