Panagiotis (Panos) Gkilis — Machine Learning Engineer
Production ML systems, MLOps, speech and language AI. Everything below is deployed, measured, and open to inspection. Thessaloniki, Greece — open to remote.
bedvibe@bedvibe.studio · GitHub · Hugging Face · ORCID 0009-0007-3805-170X · LinkedIn
Available now, full-time and remote. Looking for a senior or staff role in ML engineering, MLOps or applied AI — training and evaluation pipelines, retrieval systems, inference infrastructure. Comfortable owning a system end to end, which is what everything below is.
Based in Greece, working across European and US-overlapping hours. The fastest way to reach me is bedvibe@bedvibe.studio — I answer the same day.
The full record of what I have built — 38 projects, each with the architecture, the measurements and what went wrong — is on my portfolio. It covers a 730M-parameter speech model trained from scratch, six Model Context Protocol servers, a model gateway with admission control and deadline-aware failover, a real-time aerospace telemetry engine in Rust, custom voice-activity detection, production auth and billing, and a card game with its own engine.
The short version
Six years of end-to-end production machine learning: models trained from scratch, deployed behind live APIs, and operated for paying customers. Sole engineer of BedVibe Studios — a multilingual speech-AI platform built on a 730M-parameter text-to-speech model trained on consumer GPUs, running on FastAPI, PostgreSQL, Docker and Linux with Stripe-billed usage. Seven published research records with Zenodo DOIs, and open-source libraries on PyPI.
I develop with AI coding agents and treat their output as untrusted until it clears a gate: automated evaluation suites, ASR-validated model QA, static checks. Three of my published libraries are those gates — ttsproof for text-to-speech failure modes, trainproof for training runs, and notchecked for coverage accounting. That method is why a LoRA collapse and a live retrieval regression were caught before release rather than after.
The pattern that runs through all of it: a fault that returns an error is one you fix this afternoon; a fault that returns a plausible success is one you ship. Most of my writing is about finding the second kind — the gateway that returned 200 to everyone too late, the run on pure noise that cut its loss 62%, the validation layer correctly deleting good data.
Get in touch
bedvibe@bedvibe.studio — I answer the same day. Also on LinkedIn, GitHub, and my CV (PDF).
