Home

Hi and welcome to the main point of entry to my digital self.

My name is Kyriakos Chatzidimitriou and I strive to be a Software Architect, an (applied) Machine Learning Researcher and an Entrepreneur. Currently, I am working on my first company Cyclopt and I am also a research fellow at the Aristotle University of Thessaloniki, working as a team leader, software architect and researcher in R&D projects with group ISSEL, conducting research in the areas below.

My research, development and business interests are in the broad area of Machine Learning and Big Data for and with Software Engineering and Software Development but more specifically in the area of Quality of Software Systems, which can be Applications, Big Data Systems or Intelligent Systems with Machine Learning models. In particular:

  • Devising metrics, tools and models for assessing the quality of software (and intelligent - Software 2.0) systems, for example based on the ISO 25010 standard.
  • Autonomously improve the quality of software systems (what is called autonomic computing), either in the automatic Find Bugs-Fix-Verify (Fi-Fi-Verify)sense for software systems or in the life-long learning sense for machine learning based systems.
  • Big CodeSoftware Analytics (Descriptive, Diagnostic, Predictive, Prescriptive, etc.) and Mining Software Repositories and software related data streams for patterns to improve the various stages of the software lifecycle or the software itself.
  • Applying machine learning on the source code and building useful knowledge representations of software related artefacts.
  • Engineering intelligent software systems (software agents) for automating (and improving) various tasks humans do, with focus on lifelong machine learning techniques and their quality.
  • Software tools for machine learning automation (AutoML), for garbage-in, gorgeous-out outcomes and autonomic systems.
  • Big Data/Machine Learning with Software Engineering: Architectures, formalisms,  patterns, paradigms, algorithms, infrastructure as code and heuristics that can efficiently express big data operations and in particular enable the scalability of machine learning algorithms.

As a developer (and for the time being as these things change), I am fond of the MERN stack for building web applications, JavaScript and node.js but I also work with Python and R in projects. I left Java sometime ago. My site is structured as follows:

  • About
    • Me: information about me, including my CV and my social media profiles.
    • Timeline: my personal timeline.
  • Blog: my blog on personal, research and development activities, tutorials and 'how tos', personal opinions, book reviews, exercise and nutrition posts etc.
  • Research: my portfolio of research projects that includes areas of research and funded projects I worked or I am working on.
  • Development: my portfolio of development projects that includes open source software, libraries and tools I am involved in (as a developer or as a manager/team leader), as well as any running applications web or mobile.
  • Publications: my publish or perish statistics profile and my publications list.
  • Resources: Pages that provide links to the best things (articles, videos, books, podcasts etc.) I found on the web on specific subjects along with my narration and links to my posts. I got this idea from Martin Fowler's Resource Guides, as for example that on Microservices.