ML-Affairs Blog

Production notes on ML systems, streaming architectures, and the gap between research and reality

This blog is about the part of machine learning that tends to get skipped in polished case studies: getting systems to behave reliably once they hit production. I write about streaming-first architectures, event-driven inference, schema and data discipline, observability, and the decisions required to move from “the model works” to “the system survives.” If you are interested in ML systems that have to run continuously, degrade gracefully, and support real operational decisions, start here.

Harmonizing Avro and Python: A Dance of Data Classes

Christos Hadjinikolis | 07 November 2023

Why Avro schema discipline matters in data engineering and how to generate Python data classes from Avro schemas.

Why read Useful if you want a practical reason to care about Avro-level schema discipline instead of treating it as ceremony.
Who it's for Data and ML engineers who need stricter schema discipline without giving up Python-friendly developer workflows.
What you'll learn Why Avro matters, where schema drift hurts, and how to turn Avro definitions into Python-friendly data classes.
Takeaways Avro schema management prevents downstream breakage · Serialization choices shape system reliability · Python data classes can fit a stricter data contract
read more

Agile In Action: Bridging Data Science and Engineering

Christos Hadjinikolis | 31 October 2023

What Agile looked like to me in 2023 at Vortexa: helping data scientists and engineers learn together, communicate clearly, and ship ML systems that can survive production.

Why read Read this if your ML work keeps getting stuck between promising notebooks and production systems that nobody fully owns.
Who it's for Especially useful for data scientists, software engineers, and ML leads trying to make cross-functional teams work without hiding behind process.
What you'll learn Why Agile mattered to me less as ritual and more as a way to synchronise experimentation, communication, and engineering discipline.
Takeaways Agile is useful when it makes experiments explicit · The real gap sits between a notebook and a production system · Communication is part of the system, not an afterthought
read more

Dynamic(i/o) Why you should start your ML-Ops journey with wrapping your I/O

Christos Hadjinikolis | 31 May 2022

Why ML pipelines need I/O abstraction, and how wrapping file and storage concerns improves maintainability, testing, and delivery.

Why read Read this if your ML codebase keeps getting buried under storage, schema, and environment-specific glue code.
Who it's for ML engineers and platform builders whose pipeline code is dominated by file, storage, and schema handling instead of core logic.
What you'll learn Why I/O concerns overwhelm ML pipeline code, and why abstraction helps more than another pile of helpers.
Takeaways I/O logic should not dominate business logic · Abstraction improves testing and portability · Cleaner boundaries make ML systems easier to maintain
read more

Complete Guide to Python Envs (MacOS)

Christos Hadjinikolis | 14 February 2021

A practical guide to Python environments on macOS, including system Python pitfalls and the setup patterns that actually work.

Why read A practical post for anyone who is still losing time to Python setup confusion on macOS.
Who it's for macOS users and Python developers who are tired of not knowing which interpreter or environment they are actually using.
What you'll learn Which Python environment tools matter, where macOS gets in the way, and how to build a sane local setup.
Takeaways System Python is rarely what you want · Environment management is a productivity issue · Clarity beats collecting tools
read more

A BREXIT NLP Dataset!

Christos Hadjinikolis | 02 September 2020

How I built a BREXIT-related NLP dataset and why real-world labeling and collection choices matter in applied NLP.

Why read Useful if you care about how topical NLP datasets get assembled outside clean benchmark settings.
Who it's for Practitioners building applied NLP datasets from messy real-world sources rather than benchmark-ready corpora.
What you'll learn How the dataset idea emerged, why labeling is the hard part, and what makes a practical NLP dataset usable.
Takeaways Real data collection is messy · Labeling strategy determines downstream value · Applied NLP starts with better datasets, not just models
read more

Style Transfer in Heraklion

Christos Hadjinikolis | 15 August 2020

An intuitive explanation of neural style transfer, grounded in Heraklion imagery and the core mechanics behind the model.

Why read A more intuitive route into neural style transfer than a dry paper summary.
Who it's for ML practitioners and curious readers who want to understand style transfer through intuition before diving into the paper.
What you'll learn The core mental model behind style transfer, how the losses work, and why the generated image changes.
Takeaways Style and content are separated mathematically · The optimization target is the generated image · A visual example helps the theory land
read more

Agile Data Science

Christos Hadjinikolis | 11 August 2020

Why agile matters in data science work, where experimentation meets delivery, and how teams can move from prototypes to value.

Why read Read this if you want a more grounded view of what Agile can actually mean in data science work.
Who it's for Data scientists and ML engineers trying to move from prototype work into production delivery without losing iteration speed.
What you'll learn Where Agile helps, where data science work differs from normal software delivery, and why iteration matters.
Takeaways Experimentation needs structure · Delivery and learning loops must coexist · Agile in ML is about adaptation, not rituals
read more

AWS ML Certification

Christos Hadjinikolis | 29 July 2020

A practical guide to the AWS Machine Learning Specialty exam, including difficulty, study scope, and how long preparation usually takes.

Why read Useful if you are deciding whether the AWS ML Specialty is worth the effort and how to prepare for it.
Who it's for Data scientists, ML engineers, and cloud practitioners deciding whether to invest in the AWS ML Specialty exam.
What you'll learn How hard the exam really is, how its topics are split, and what kind of study timeline makes sense.
Takeaways The exam is broad, not just AWS services · Preparation time depends heavily on your background · A structured study plan matters more than cramming
read more

Just do it!

Christos Hadjinikolis | 28 July 2020

A short reflection on why public writing matters, why criticism is not the point, and why you should publish before you feel ready.

Why read A short, honest reminder that writing in public matters more than waiting to feel fully ready.
Who it's for Engineers, builders, and first-time writers who keep delaying public writing until it feels safe.
What you'll learn Why blogging feels exposing, why that fear is normal, and why publishing imperfect work still has real value.
Takeaways Write before confidence arrives · Criticism is part of the exchange · Blogging is practice, not performance
read more