Skip to content
View zervakisai's full-sized avatar

Block or report zervakisai

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
zervakisai/README.md

I turn hard problems into shipped solutions

Typing SVG


Website LinkedIn Email CV


>_ whoami

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


πŸ—‚ Case Files

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> &nbsp;β€”&nbsp; <i>no model in the call path</i><br/>FAO-56 water balance Β· ETc = ETβ‚€ Γ— Kc, clamped to [0, TAW]<br/>Delta-T &amp; wind bands β†’ the day's spray windows"]
    end

    subgraph AI["🧠 &nbsp; PYDANTIC AI GRAPH &nbsp;Β·&nbsp; 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
Loading

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

InSAR GPU weighted IRLS integer LP training-free


Problem β†’ Solution β†’ Result

P β€” 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

reinforcement learning benchmark risk coefficient ρ statistics Python


Problem β†’ Solution β†’ Result

P β€” 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


From the archive

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

πŸ›  Stack

Agent framework of choice: Pydantic AI β€” typed contracts, graphs, one-layer retries, offline-testable.

Generative AI & Agents

Pydantic AI MCP Claude API OpenAI API Agent SDK LangChain LlamaIndex

RAG & Retrieval

BGE-M3 FAISS ChromaDB Hybrid search Rerankers promptfoo

Machine Learning

PyTorch scikit-learn LightGBM JAX ONNX RL Time series

MLOps & Cloud

OpenTelemetry Langfuse Prometheus Grafana MLflow Docker Kubernetes FastAPI Ray

Quantum ML

PennyLane VQC QAE-CVaR

Languages

Python C/C++ SQL MATLAB Bash


πŸ“Š GitHub Stats

Β Β 


πŸŽ“ Research & Education

πŸŽ“ 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

⚑ Beyond the Code

🀺 Discipline
2Γ— Silver Medalist β€” National & Global Fencing

Γ‰pΓ©e teaches what shipping does: read the opening, commit fully, and own the outcome in real time.

πŸŽ™οΈ SKAI Crete FM
Live national radio on AI & autonomous systems

Featured guest on the trajectory of AI, autonomous systems, and emerging aerospace career paths.

🎧 Long-form podcast
Translating agentic AI for non-specialists

Turned complex agentic-AI concepts and current industry shifts into something a general professional audience could actually use.

✍️ Medium essay
"From the Bronze Age to the Periclean Era"

Argues the executive KPI of AI is shifting from productivity to orchestration integrity β€” introducing FLARE's ρ as a managerial tuning knob.


πŸ’¬ Got a problem worth solving?

The good ones don't wait.


Email Β  LinkedIn Β  Website


Based in Crete, Greece Β· Working worldwide Β· Open to multi-agent systems and production ML engagements


Popular repositories Loading

  1. smart-factory-rag smart-factory-rag Public

    Industrial AI β€” RAG + Predictive Maintenance + Sensor Fusion

    Python 1

  2. zervakisai.github.io zervakisai.github.io Public

    Jupyter Notebook

  3. flare_n flare_n Public

    Python

  4. zervakisai zervakisai Public

  5. agentic-rag-orchestrator agentic-rag-orchestrator Public

    Multi-Agent RAG Orchestrator with MCP Server

    Python

  6. quantum-ml-pipeline quantum-ml-pipeline Public

    Quantum-Classical Hybrid ML Benchmark Suite

    Python