Home / About Me

Wow, a whole page about me!

Konstantinos Zagoris
Konstantinos Zagoris
Senior Full Stack Engineer · Cyprus
Part-time Lecturer in Databases and Distributed Systems, Neapolis University Pafos, Cyprus (2019–present)
Ph.D. at Democritus University of Thrace, Greece

I am a full stack engineer based in Cyprus. I build software from the first conversation with its users through to deployment and production support. My work spans maritime applications, web platforms, and research tools, with C#/.NET and TypeScript at the centre of much of it.

Witty Programming is where I write about the tools and design choices I encounter along the way. I prefer straightforward solutions, and I want to explain why a particular approach fits the problem.

Since 2021, I have worked as a Senior Software Engineer at Olympus Marine Group. For SCMS, a structural-findings catalogue for ship officers, I ran user interviews, designed the workflows, and built the Vue 3/TypeScript front end and C#/.NET API. I then handled rollout and support as the application grew to daily use across approximately 12 ships.

My maritime work also includes collecting shipboard telemetry and getting it reliably to shore when satellite connectivity is intermittent. Before Olympus, I worked at Retraced on supply-chain traceability with React and Node.js. Working across these systems has taught me to treat a language as a tool for the job, and communication as part of building it.

I also teach databases and distributed systems part-time at Neapolis University Pafos, where I have been a lecturer since 2019. My academic work began with a Ph.D. at Democritus University of Thrace on content and metadata-based document image retrieval, followed by postdoctoral research in document analysis and medical imaging. My publications have received over 2,100 citations; the current list and citation count are on Google Scholar.

My interests, and the subjects behind this blog, include:

  • Front ends with TypeScript, Vue, React, Angular, and Alpine.js.
  • C#/.NET and Node.js back ends.
  • Database design, time-series data, and event-driven systems.
  • Software architecture and the trade-offs behind it.
  • Image processing, pattern recognition, and applied machine learning.

Work-related Projects

WinMTR Remaster – Cross-Platform Network Diagnostics

WinMTR Remaster – Cross-Platform Network Diagnostics

I remastered the original Windows-only WinMTR application in C#/.NET 10 and Avalonia. It combines traceroute and continuous ping to show packet loss and latency at each responding hop, with desktop and command-line interfaces for Windows, macOS, and Linux.

  • Separated the tracing engine from the interface and platform-specific networking, with immutable route snapshots shared by the desktop app and CLI
  • Built a live, sortable hop grid with loss and latency indicators, a selected-hop detail pane, and light and dark themes
  • Added text and JSON reports alongside HTML and CSV, with copy and export available while a trace is running
  • Configured Native AOT releases that run without an installed .NET runtime, with capability warnings for platform restrictions

Source code · Downloads · How I built it

SCMS – Structural Findings Catalogue

I was the sole product engineer for SCMS, a structural-findings catalogue used by ship officers. I interviewed users, redesigned the workflows of an abandoned legacy application, and built the replacement through to rollout and production support.

  • Built the Vue 3/TypeScript front end with Pinia and TanStack Query, and the C#/.NET REST API
  • Took the application from effectively zero adoption to daily use across approximately 12 ships, helping renew and expand the customer contract
  • Mapped decks and the full vessel to metre-level coordinates so officers can pinpoint findings in top and side views
  • Added heat maps of current and historical findings to help identify recurring problem areas for maintenance planning

Remote Student Monitor Framework for Securing Exams

Remote Student Monitor Framework for Securing Exams

I was the sole developer of a remote exam proctoring platform, taking the research method I proposed during COVID-19 through to a production application. I built the React/MUI/TypeScript interface and the serverless backend using Google Cloud Functions.

The RSMF project funded the application through ERASMUS+ KA220-HED (€248,000), with six European partner institutions. The platform has been deployed for over 500 exam sessions at Neapolis University Pafos.

  • Three-stage verification flow (credentials, ID card, real-time facial recognition) with event-triggered video recording for human-in-the-loop review
  • Course/Students/Exams management system with peer-to-peer video conferencing built on WebRTC/PeerJS
  • Serverless architecture using Firebase Firestore and Cloud Functions, with custom SMTP-based transactional emails
  • Real-time face detection integrated into the exam video conference stream

Platform · Source code

Simple Custom Content Management Platform (sccmp)

Main developer of a reusable content management framework for small projects built with Vue 3, Tailwind CSS, and TypeScript. (Github)

  • Dynamic sidebar/topbar navigation and page composition driven by configuration
  • Firebase authentication (sign-in, sign-up, password reset, email verification) with custom emails via Firebase Functions
  • Profile onboarding flow and a Messenger-style chat built on Firebase Firestore

sWaiver – Signed Forms

sWaiver – Signed Forms

I built an online system for collecting and managing signed forms, from the customer-facing interface to the serverless backend.

  • Built the front end with Ionic, Angular, and TypeScript, and the backend with Google Cloud Functions
  • Worked directly with customers to refine the form-management workflows and incorporate their feedback

Website

Graphical User Interface for Hellenic Autonomous Vehicle

Graphical User Interface for Hellenic Autonomous Vehicle

This subcontract concerns the HAV Graphical User Interface (HAV-GUI), an interface developed for car touchscreens. I constructed the HAV-GUI using NVIDIA’s DriverWorks SDK, and it consists of three key components: a tile/grid display that allows users to view all available information screens, button/tile elements that enable users to activate specific functions, and a layout engine that arranges these elements on the screen.

  • I communicate with multiple academic institutions and companies to create and implement the required specifications.
  • Create custom GUI elements using C++ and the NVIDIA DriverWorks SDK.

Ship Emissions Monitoring System

I designed and built the data pipeline that carries shipboard emissions telemetry to shore systems. The work covered signal mapping, data quality, storage, and the contracts agreed with an external engineering team.

  • Normalised 141 heterogeneous signal tags into a common record containing timestamps, units, equipment, source, sample rate, and quality status
  • Distinguished calibration, sensor faults, communication loss, and stale readings so downstream systems can interpret the measurements
  • Built a durable local outbox with acknowledgements, retries, restart recovery, and idempotent message IDs over RabbitMQ and Azure Event Hub to handle interrupted satellite connectivity
  • Designed InfluxDB and SQL Server data models and REST trend endpoints for dashboards, diagnostics, reporting, and prediction services

Research Projects

Unsupervised Word Spotting in Historical Handwritten Document Images Using Document-Oriented Local Features

Unsupervised Word Spotting in Historical Handwritten Document Images Using Document-Oriented Local Features

I developed a method for finding words as images rather than recognised text across collections of over 100,000 historical document images. It uses document-oriented local features and spatial matching without training data.

  • Designed custom data structures for many-to-many matching of weighted keypoints across large image collections
  • Used the spatial relationships between nearby features to match handwritten word images
  • Built the C#/.NET backend and Angular interface that make the retrieval method usable through a browser

Demo · Source code · Paper

Transpro - WPF Application for Document Transcription and Image Processing

Transpro - WPF Application for Document Transcription and Image Processing

I was the main developer of Transpro, a .NET/WPF desktop application for processing and transcribing historical documents. It combines image preparation, page segmentation, and transcription with export to PAGE XML.

  • Built the Emgu.CV image-processing pipeline for binarisation, segmentation, and region analysis
  • Managed application state and data binding through MVVM
  • Supported PAGE XML export across the 2009, 2013, and 2018 schema versions
  • Configured ClickOnce deployment for x86 and x64

Source code

Bio-Inspired Document Image Enhancement

Research-driven work on mnemonic cellular automata for scene text detection and historical document binarization, achieving competitive performance through principled local update rules without parameter-heavy deep learning.

  • Extended classical cellular automata with memory mechanisms for image processing tasks
  • Published in ICDAR 2017, Journal of Cellular Automata 2014, ICDAR 2013, and ACRI 2012
  • Implemented in Python (NumPy, OpenCV), MATLAB, and C#/.NET

Computer-aided diagnosis of mammographic masses

Computer-aided diagnosis of mammographic masses

Supervised and contributed to developing a recommendation system that comprises two stages: A margin-specific supervised Content-Based Information Retrieval (CBIR) stage that retrieves images from reference cases along with a decision stage that is based on the retrieved items. (paper)

  • It was developed using Python and the following libraries: numpy, pandas, scikit-learn, and OpenCV.
  • Needed to communicate with multiple academic institutions and people to gather/create the necessary data.
  • I supervised the development/research of the system and contributed specifically to the development/research of the recommendation system.
  • The recommendation system is based on a decision involving multiple SVMs modelling different types of cancer based on the distance from each SVM hyperplane.

Journals

  • K. Zagoris and I. Pratikakis and B. Gatos. (2017). Unsupervised Word Spotting in Historical Handwritten Document Images Using Document-Oriented Local Features. IEEE Transactions on Image Processing, 26(8), 4032-4041.
  • Lazaros Tsochatzidis and Konstantinos Zagoris and Nikolaos Arikidis and Anna Karahaliou and Lena Costaridou and Ioannis Pratikakis. (2017). Computer-aided diagnosis of mammographic masses based on a supervised content-based image retrieval approach . Pattern Recognition , 71(), 106 - 117.
  • Zagoris, K. and Pratikakis, I.. (2014). Text detection on natural images using mnemonic cellular automata. Journal of Cellular Automata, 9(2-3), 183-194.
  • Konstantinos Zagoris and Ioannis Pratikakis and Apostolos Antonacopoulos and Basilis Gatos and Nikos Papamarkos. (2014). Distinction between handwritten and machine-printed text based on the bag of visual words model . Pattern Recognition , 47(3), 1051 - 1062.
  • Avi Arampatzis and Konstantinos Zagoris and Savvas A. Chatzichristofis. (2013). Dynamic two-stage image retrieval from large multimedia databases. Information Processing Management, 49(1), 274 - 285.
  • Zagoris, Konstantinos and Chatzichristofis, Savvas and Papamarkos, Nikos. (2011). Text localization using standard deviation analysis of structure elements and support vector machines. EURASIP Journal on Advances in Signal Processing, 2011(1), 47.
  • Konstantinos Zagoris and Kavallieratou Ergina and Nikos Papamarkos. (2011). Image retrieval systems based on compact shape descriptor and relevance feedback information. Journal of Visual Communication and Image Representation, 22(5), 378 - 390.
  • Konstantinos Zagoris and Kavallieratou Ergina and Nikos Papamarkos. (2010). A Document Image Retrieval System. Engineering Applications of Artificial Intelligence, 23(6), 872 - 879.
  • Chatzichristofis, S.A. and Zagoris, K. and Boutalis, Y.S. and Papamarkos, N.. (2010). Accurate image retrieval based on compact composite descriptors and relevance feedback information. International Journal of Pattern Recognition and Artificial Intelligence (IJPRAI), 24(2), 207–244.
  • Zagoris, K. and Papamarkos, N. and Koustoudis, I.. (2008). Color Reduction using the Combination of the Kohonen Self-Organized Feature Map and the Gustafson-Kessel Fuzzy Algorithm. Transactions on Machine Learning and Data Mining, 1(1), 31–46.

Conferences

  • Pratikakis, I. and Zagoris, K. and Barlas, G. and Gatos, B.. (2016). ICFHR2016 Handwritten Document Image Binarization Contest (H-DIBCO 2016). In 2016 15th International Conference on Frontiers in Handwriting Recognition (ICFHR) (pp. 619-623).
  • Pratikakis, I. and Zagoris, K. and Gatos, B. and Puigcerver, J. and Toselli, A. H. and Vidal, E.. (2016). ICFHR2016 Handwritten Keyword Spotting Competition (H-KWS 2016). In 2016 15th International Conference on Frontiers in Handwriting Recognition (ICFHR) (pp. 613-618).
  • Papandreou, A. and Gatos, B. and Zagoris, K.. (2016). An Adaptive Zoning Technique for Word Spotting Using Dynamic Time Warping. In 2016 12th IAPR Workshop on Document Analysis Systems (DAS) (pp. 387-392).
  • Pratikakis, I. and Zagoris, K. and Gatos, B. and Louloudis, G. and Stamatopoulos, N.. (2014). ICFHR 2014 Competition on Handwritten Keyword Spotting (H-KWS 2014). In Frontiers in Handwriting Recognition (ICFHR), 2014 14th International Conference on (pp. 814-819).
  • Zagoris, K. and Pratikakis, I. and Gatos, B.. (2014). Segmentation-Based Historical Handwritten Word Spotting Using Document-Specific Local Features. In Frontiers in Handwriting Recognition (ICFHR), 2014 14th International Conference on (pp. 9-14).
  • Tsochatzidis, L. and Zagoris, K. and Savelonas, M. and Pratikakis, I.. (2014). SVM-based CBIR of breast masses on mammograms. In Proceedings of the 3rd International Workshop on Artificial Intelligence and Assistive Medicine co-located with the 21th European Conference on Artificial Intelligence (ECAI 2014) (pp. 26-30).
  • Zagoris, Konstantinos and Pratikakis, Ioannis and Gatos, Basilis. (2015). A Framework for Efficient Transcription of Historical Documents Using Keyword Spotting. In Proceedings of the 3rd International Workshop on Historical Document Imaging and Processing (pp. 9-14).
  • Tsochatzidis, L. and Zagoris, K. and Savelonas, M. and Papamarkos, N. and Pratikakis, I. and Arikidis, N. and Costaridou, L.. (2014). Microcalcification oriented content-based mammogram retrieval for breast cancer diagnosis. In Imaging Systems and Techniques (IST), 2014 IEEE International Conference on (pp. 257-262).
  • Virvilis, V. and Perantonis, S. and Zagoris, K. and Pratikakis, I.. (2013). A multimodal e-learning environment for orthopedics: design and implementation challenges. In System Theory, Control and Computing (ICSTCC), 2013 17th International Conference (pp. 728-732).
  • Zagoris, K. and Pratikakis, I.. (2013). Text Detection in Natural Images Using Bio-inspired Models. In Document Analysis and Recognition (ICDAR), 2013 12th International Conference on (pp. 1370-1374).
  • Zagoris, K. and Pratikakis, I. and Antonacopoulos, A. and Gatos, B. and Papamarkos, N.. (2012). Handwritten and Machine Printed Text Separation in Document Images using the Bag of Visual Words Paradigm. In (pp. ).
  • Chatzichristofis, Savvas A. and Zagoris, Konstantinos and Arampatzis, Avi. (2011). The TREC files: the (ground) truth is out there. In Proceedings of the 34th international ACM SIGIR conference on Research and development in Information (pp. 1289–1290).
  • Chatzichristofis, Savvas and Zagoris, Konstantinos and Boutalis, Yiannis and Arampatzis, Avi. (2012). A Fuzzy Rank-Based Late Fusion Method for Image Retrieval. In Advances in Multimedia Modeling (pp. 463-472).
  • Arampatzis, A. and Zagoris, K. and Chatzichristofis, S.A.. (). DUTH at ImageCLEF 2011 Wikipedia Retrieval. In (pp. ).
  • Chatzichristofis, Savvas A. and Zagoris, Konstantinos and Arampatzis, Avi. (2011). The TREC files: the (ground) truth is out there. In Proceedings of the 34th international ACM SIGIR conference on Research and development in Information (pp. 1289–1290).
  • Zagoris, Konstantinos and Chatzichristofis, Savvas A.and Arampatzis, Αvi. (2011). Bag-of-visual-words vs global image descriptors on two-stage multimodal retrieval. In Proceedings of the 34th international ACM SIGIR conference on Research and development in Information (pp. 1251–1252).
  • Chatzistavros, E. and Chatzichristos, S.A. and Stamatellos, G. and Zagoris, K.. (2011). Comparative Performance Evaluation of Image Descriptors over IEEE 802.11b Noisy Wireless Networks. In Multimedia and Ubiquitous Engineering (MUE), 2011 5th FTRA International Conference on organization IEEE (pp. 128–133).
  • Arampatzis, Avi and Zagoris, Konstantinos and Chatzichristofis, Savvas A.. (2011). Dynamic two-stage image retrieval from large multimodal databases. In Proceedings of the 33rd European conference on Advances in information retrieval (pp. 326–337).
  • Arampatzis, Avi and Zagoris, Konstantinos and Chatzichristofis, Savvas A.. (2011). Fusion vs. two-stage for multimodal retrieval. In Proceedings of the 33rd European conference on Advances in information retrieval (pp. 759–762).
  • Avi Arampatzis and Savvas A. Chatzichristofis and Konstantinos Zagoris. (2010). Multimedia Search with Noisy Modalities: Fusion and Multistage Retrieval. In CLEF (Notebook Papers/LABs/Workshops) (pp. ).
  • Zagoris, Konstantinos and Arampatzis, Avi and Chatzichristofis, Savvas A.. (2010). www.MMRetrieval.net: a multimodal search engine. In Proceedings of the Third International Conference on SImilarity Search and APplications (pp. 117–118).
  • Zagoris, K. and Chatzichristofis, S.A. and Papamarkos, N. and Boutalis, Y.S.. (2010). Automatic Image Annotation and Retrieval Using the Joint Composite Descriptor. In Informatics (PCI), 2010 14th Panhellenic Conference on (pp. 143 -147).
  • Konstantinos Zagoris and Nikos Papamarkos. (2010). Text Extraction Using Document Structure Features and Support Vector Machines. In Proceedings of the 11th IASTED International Conference (pp. 88).
  • Zagoris, Konstantinos and Chatzichristofis, Savvas A. and Papamarkos, Nikos and Boutalis, Yiannis S.. (2009). img(Anaktisi): A Web Content Based Image Retrieval System. In Proceedings of the 2009 Second International Workshop on Similarity Search and Applications (pp. 154–155).
  • Konstantinos Zagoris and Kavallieratou Ergina and Nikos Papamarkos. (2008). Developing Document Image Retrieval System. In Proc. Of IADIS International Conference Computer Graphics and Visualization 2008 (pp. 119-126).
  • Zagoris, Konstantinos and Papamarkos, Nikos and Koustoudis, Ioannis. (2007). Color Reduction Using the Combination of the Kohonen Self-Organized Feature Map and the Gustafson-Kessel Fuzzy Algorithm. In Proceedings of the 5th international conference on Machine Learning and Data Mining in Pattern Recognition (pp. 703–715).
  • Zagoris, K. and Papamarkos, N. and Chamzas, C.. (2006). Web Document Image Retrieval System Based on Word Spotting. In Image Processing, 2006 IEEE International Conference on (pp. 477 -480).