AI Engineer building production ML, LLMs and multi-agent systems for environments where a wrong answer costs the vintage, a wildfire response, or a satellite mission.
Most people ship demos. I ship systems people depend on. A benchmark impresses for a minute; a solved problem holds up when a missed defect ends a space mission. So I don't lead with model names β I lead with the constraint that mattered, the design that removed it, and the number that proves it worked.
| Now | Software Test Engineer @ OHB Hellas β aerospace, ECSS V&V/PA |
| PhD | Autonomous UAV navigation β Hellenic Army Academy |
| Published | Sensors (MDPI) 2026 β lead author |
| Base | Crete, Greece β working worldwide |
5 production deployments Β Β·Β 0 hallucinated numbers shipped Β Β·Β 71Γ faster InSAR unwrapping Β Β·Β 450+ experimental runs
Each one, the same shape: problem β solution β result β with a number attached. Full write-ups at zervakisai.github.io.
β Vinea β Agronomic decision agents for a vineyard
Flagship agentic project Β· Pydantic AI pydantic-graph FAO-56 output validators uv 12 tagged phases
flowchart TB
W(["π¦οΈ hourly weather Β· Open-Meteo or committed CSVs"])
subgraph PY["βοΈ PLAIN PYTHON Β· every number is computed here"]
F["<b>FeatureBuilder</b> β <i>no model in the call path</i><br/>FAO-56 water balance Β· ETc = ETβ Γ Kc, clamped to [0, TAW]<br/>Delta-T & wind bands β the day's spray windows"]
end
subgraph AI["π§ PYDANTIC AI GRAPH Β· judges and explains β never calculates"]
direction LR
I["<b>Irrigation</b><br/>irrigate, or hold?"]
S["<b>Spray</b><br/>which window?"]
C["<b>Coordinator</b><br/>sequences the day"]
end
V{"<b>Output<br/>validators</b>"}
R["depletion echoed <b>verbatim</b><br/>windows β deterministic candidates<br/>confidence β€ its weakest leg<br/><i>an oracle recomputes it nightly</i>"]
OUT(["π <b>tomorrow's advisory</b><br/>in the grower's hands by 06:00"])
BLK["π« <b>blocked</b><br/><i>never ships</i>"]
INJ["β οΈ prompt<br/>injection"]
W --> F
F ==>|"finished numbers, typed contracts"| I
I --> S
S --> C
C ==> V
V -.- R
V ==>|"holds to the numbers"| OUT
V -->|"a quantity the model invented"| BLK
INJ -.->|"reaches the wordsβ¦"| AI
INJ -.-x|"β¦never the arithmetic"| PY
classDef det fill:#0d2a1a,stroke:#3fb950,stroke-width:2px,color:#e6edf3
classDef llm fill:#10233d,stroke:#58a6ff,stroke-width:2px,color:#e6edf3
classDef gate fill:#3d2f00,stroke:#d29922,stroke-width:2px,color:#f0d58c
classDef rules fill:#161b22,stroke:#d29922,stroke-width:1px,color:#c9d1d9
classDef good fill:#0d2a1a,stroke:#3fb950,stroke-width:3px,color:#7ee2a8
classDef bad fill:#3d1418,stroke:#f85149,stroke-width:2px,color:#ffa198
classDef src fill:#161b22,stroke:#8b949e,stroke-width:1px,color:#c9d1d9
class F det
class I,S,C llm
class V gate
class R rules
class OUT good
class BLK,INJ bad
class W src
style PY fill:#07160f,stroke:#3fb950,stroke-width:2px,color:#7ee2a8
style AI fill:#0a1626,stroke:#58a6ff,stroke-width:2px,color:#79c0ff
linkStyle 1 stroke:#3fb950,stroke-width:3px
linkStyle 5 stroke:#d29922,stroke-width:1px
linkStyle 6 stroke:#3fb950,stroke-width:3px
linkStyle 7 stroke:#f85149,stroke-width:1.5px
linkStyle 8 stroke:#f85149,stroke-width:1.5px
linkStyle 9 stroke:#f85149,stroke-width:2.5px
Built in 12 tagged phases β persistence, a Postgres queue, FastAPI, Streamlit, a prompt registry, an eval gate, an LLM gateway, RAG citations, row-level security, SLOs and Kubernetes all landed on top of that core without reaching into it. tests/test_core_unchanged.py compares the parsed AST of those six files against the day they were written.
| Problem | "Should I irrigate? Can I spray?" A grower's daily calls hide real cost β a wrong one wastes scarce water, or sprays into the wrong window and risks the vintage. A raw LLM will confidently invent the agronomy. |
| Solution | One design constraint: every number is computed in plain Python β the model judges and explains, it never calculates. A FAO-56 water balance and spray-window analysis run nightly per block; a small pydantic-graph of typed agents (Irrigation, Spray, Coordinator) judges the borderline calls and sequences the day. Output validators hold the agents to the numbers: depletion echoed verbatim, spray windows a subset of the deterministic candidates, confidence capped by the weakest leg. |
| Result | An advisory cannot ship a hallucinated quantity β validation blocks it and a nightly eval oracle recomputes it; the same boundary stops prompt injection. Built in 12 tagged phases from CLI to Kubernetes without touching the AST-frozen core β and uv run vinea always produces output, even with zero API keys. |
12 phases Β· 0 hallucinated numbers
|
Training-free InSAR phase unwrapping on a consumer GPU
Problem β Solution β ResultP β Phase unwrapping is the long pole of InSAR: SNAPHU is accurate but takes minutes per scene with no GPU path, while deep-learning unwrappers degrade off-distribution β exactly where an autonomous disaster responder meets an unseen scene. S β A hybrid that is fast, accurate and training-free: a GPU multi-scale warm-started weighted-IRLS solve (FFT-preconditioned conjugate gradient) recovers the fringe pattern in milliseconds, plus an exact region-contracted integer-LP leveling stage β the totally-unimodular dual of minimum-cost-flow β to remove residual offset drift. R β 71Γ faster than SNAPHU on airborne UAVSAR at 99.5% per-component agreement β up to 130Γ on Sentinel-1 β and SNAPHU parity at low coherence (99.3% at 0.35) where the fast path-follower collapses to 70.3%. Single RTX 3060. 71Γ vs SNAPHU Β· 99.5% agreement |
Risk-parameterised UAV path planning under uncertainty
Problem β Solution β ResultP β Safety-tuned planners paradoxically increase total mission cost by 23β38% when timing constraints exist β and nobody could audit the safety-vs-throughput trade-off. S β A deterministic wildfire-response benchmark for risk-parameterised UAV path planning, with a configurable risk coefficient Ο that makes the trade-off explicit and auditable. R β 450+ experimental runs Β· Friedman ΟΒ²(4) = 190.8 (p < 0.001), Wilcoxon (Bonferroni), Cliff's Ξ΄. Submitted to Sensors (MDPI) 2026 β lead author. Sensors / MDPI 2026 Β· 450+ runs |
Also public β π€ AgenticRAG multi-agent orchestrator + MCP server Β Β·Β π SmartFactory-RAG industrial RAG + predictive maintenance Β Β·Β βοΈ QBench quantum-classical ML benchmark suite
Earlier case files β smaller scope, same shape.
| Formula Student TUC | Forecast-first ECU pipeline predicting Lambda (Ξ») and RPM spikes with LSTM, ARIMAX and ETSformer β preventing lean spikes and over-rev failures before they become mechanical damage. | <5 ms inference live telemetry |
| LightningText | Real-time text analytics over 14M BookCorpus paragraphs on Apache Spark β reservoir sampling, Count-Min Sketch and wavelet compression instead of brute force. | 20 KB RAM <2% error 8Γ leaner storage |
| HAR-DRive | PCA vs LDA on UCI HAR: a 5-dimensional LDA with an SVM-RBF cuts features by 98% and still scores macro-F1 0.984 β activity recognition that fits a wearable. | F1 0.984 β98% features |
Agent framework of choice: Pydantic AI β typed contracts, graphs, one-layer retries, offline-testable.
| π PhD(c) | Autonomous Navigation of UAVs β Hellenic Army Academy |
| π MSc | Machine Learning & Data Science β Technical University of Crete |
| π BSc | Mathematics & Applied Mathematics (241 ECTS) β University of Crete |
| π FLARE | Decision optimization under uncertainty β Sensors (MDPI) 2026, lead author |
| π§ AI4Edu | AI for personalized learning β co-authored, deployed platform |
|
π€Ί Discipline ΓpΓ©e teaches what shipping does: read the opening, commit fully, and own the outcome in real time. |
ποΈ SKAI Crete FM Featured guest on the trajectory of AI, autonomous systems, and emerging aerospace career paths. |
π§ Long-form podcast Turned complex agentic-AI concepts and current industry shifts into something a general professional audience could actually use. |
βοΈ Medium essay Argues the executive KPI of AI is shifting from productivity to orchestration integrity β introducing FLARE's Ο as a managerial tuning knob. |
The good ones don't wait.
Based in Crete, Greece Β· Working worldwide Β· Open to multi-agent systems and production ML engagements


