about

selfie!

Currently

I’m a Senior Software Engineer at Persado, where we’re building a multi-agent AI content platform for regulated brands. I design and ship product features, and I also handle cross-team work like build and CI across the whole product, accessibility, and full-stack services end to end. I care a lot about developer experience, tooling, and system design, which is how a lot of that cross-team work keeps finding me. Day to day, that’s React, TypeScript, Ruby, Ruby on Rails, PostgreSQL & Kubernetes.

Most features I ship use an LLM somewhere, and a lot of my work is making those calls reliable in production. I also built the auth layer for our MCP app. These days most of my code goes through Claude Code, and I’ve used Cursor and Codex too.

Previously

Before that, I was a Lead Software Engineer at Code Seed, building caro, a healthcare platform for patient-centered care. I was responsible for the architecture and coding standards, and worked closely with the product and customer success teams. We used Angular, TypeScript, Serverless Computing, MongoDB & Ionic.

Before Code Seed, I spent almost four years as Lead Software Engineer at Cyclopt, working on a platform that measures code quality, maintainability, and security for software teams. I made the technical calls and mentored junior engineers through code reviews and pair programming. We used React, Express, MongoDB, GraphQL, RabbitMQ, Serverless Computing & Node.js, plus React Native for mobile.

Earlier, I spent three years at the Intelligent Systems & Software Engineering Labgroup at Aristotle University. I built web and mobile apps with React, React Native & Expo, and a real-time big data analytics platform with Node.js, Cockroach Labs, Apache Kafka, Apache Spark, Python & Scala. We published research on all of it, too. 🎉

Research & education

I hold a Diploma (integrated Master’s) from Aristotle University of Thessaloniki in Electrical & Computer Engineering, with a focus on software engineering. My thesis was about calling software components by describing what they do: sqrt(2) call("That function that calculates square roots", 2). Basically LLM tool calling, a few years too early.

Then I stuck around at Aristotle University of Thessaloniki (yes, again) for a Master’s in Data & Web Science, with a thesis on automating the deployment of peer-to-peer networks for network simulation.

Along the way, I co-authored papers on continuous implicit authentication, big data infrastructure, and npm package reuse. They’re all linked from the projects page.