Nikos Katirtzis

Software Engineer & Technology Enthusiast




About Me.


Hi, I am a Software Engineer, currently based in London, and working for Expedia's Hotels.com as a Software Dev Engineer I. There, I am part of Customer Retention Team (CRT), which is responsible for designing and building technical solutions on how customers are identified, sign up for an account and sign in to their account.

I completed the MEng in the department of Electrical and Computer Engineering at Aristotle University of Thessaloniki, and was awarded the MSc in Computer Science from the University of Edinburgh, with Distinction.

My interests lie mainly in the field of Software Engineering, while I have a keen interest in Data Mining, and primarily in Mining Software Repositories research area. I'm the manin author of Mantissa, a Recommendation System for Software Engineering (RSSE) emphasizing Test-Driven Development (TDD), which allows code searching in growing repositories, and of CLAMS, a novel approach for mining API Usage Examples in the form of source code snippets, from client code.


Experiences


Software Dev Engineer I


  • I am part of Hotels.com Customer Retention Team (CRT), which is responsible for designing and building technical solutions on how customers are identified, sign up for an account, and sign in to their account.

  • The team follows the Scrum process, while we pursue popular Agile practices, including Pair Programming, CI, TDD, and BDD.

  • The technologies I use as part of the team include, among others, Java, Python, Scala, Spring MVC, TestNG, Mockito, Docker, Splunk, MSSQL, and Cassandra.

Projects


Mantissa


  • Mantissa is an RSSE (Recommendation System in Software Engineering) that allows searching for software components in growing repositories.

  • The system extracts the query from the source code of the developer, employs CSEs such as GitHub to search for available source code, and ranks the retrieved results using the Vector Space Model (VSM).

  • Various techniques from the area of Information Retrieval (IR) are employed in order to best rank the results.

  • Additional source code transformations are performed so that each result can be ready-to-use by the developer.

  • Each result is presented along with relevance scoring and useful information indicating its original source code, its control flow, as well as any external dependencies.

  • This project contains work from the MEng thesis submitted while being an undergraduate student at Aristotle University of Thessaloniki. The report of the thesis is available in Greek here.

Projects


CLAMS (CLustering for API Mining of Snippets)


  • A framework for mining API snippets in the form of source code snippets, from client code.

  • CLAMS clusters a large set of usage examples based on what API methods they call. It then generates summarised versions for the top snippets of each cluster using a simple summarisation algorithm, and selects the most representative snippet from each cluster, using a tree edit distance metric on the ASTs.

  • This results in a set of high quality API usage examples in the form of concise and readable snippets, thus enabling and supporting source code reuse even in cases of libraries with sparse or minimal documentation.

  • Method is entirely data-driven, requiring only syntactic information from the program, and so is programming-language agnostic.

  • This project contains work from the MSc thesis submitted while being a postgraduate student at University of Edinburgh. The report of the thesis is available here.

  • The system is available here.

  • You may find the paper presented at the International Conference on Fundamental Approaches to Software Engineering (FASE) 2018 here.