Currently coordinating the integration of Europass with ESCO utilising the ESCO APIs.
The web site you are currently reading. It has gone through many phases since 2008 when it was first created, but the latest version is built with the awesome Middleman static site generator and the Bootstrap HTML/CSS/JS framework and is served via GitHub Pages.
Technical product manager and Scrum master responsible for all aspects of a major project, which resulted in a brand new, highly acclaimed version of the Europass Online Editor (launched October 2014). The main objectives of this project were to improve the usability of the editor by removing unnecessary features and simplifying the user interface, make it responsive so that it can be accessed by mobile devices and make it easy to import/export Europass documents from/to the cloud via custom integrations with popular cloud storage services (currently Google Drive, Dropbox, OneDrive).
Oversaw a series of accessibility improvements to the Europass portal successfully leading to WCAG 2.0 (Level A) compliance and the development of an alternative version of the Europass CV template specifically targeted at visually impaired users.
Installed, set up and configured the Elasticsearch ELK Stack as a centralised logging server solution for Europass. Its purpose is to automatically collect thousands of log events per day from tens of servers, process them, store them in a structured way and make them easily searchable, thus providing better anomaly detection capabilities and insights into the problems faced by users.
Developed a simple Groovy command-line program, which parses all XML documents found in a given directory and pretty-prints them in bulk.
Built in an afternoon a quick and dirty Ratpack app to demonstrate how the various interoperability options provided by Europass can be used in practice. The application has been open sourced at https://github.com/dimzava/europass-interop-demo.
Rebuilt https://europass2spreadsheet.eu from scratch using Spring Boot and Java 8, just for the fun of it :-). Currently experimenting with RabbitMQ, Spring AMQP and CloudAMQP in an attempt to scale out the service on Heroku's free tier.
Created and launched https://europass2spreadsheet.eu, a free online service for converting Europass CVs to Excel spreadsheets via email. It's been built with the Ratpack web toolkit, integrated with the Mailgun API for sending and receiving emails and is deployed on Heroku.
Designed and implemented a web app, which helps the Europass technical support team to easily troubleshoot problems reported by end users. The app downloads log files from remote servers (via SCP and Samba), extracts stack traces based on a given string pattern, processes them and stores them in a MySQL database. Technical support can then query the database for a specific error code (provided by the user) and get back the corresponding stack trace details via an intuitive web interface. This application has been open sourced at https://github.com/dimzava/errcode.
Implemented in close cooperation with the Ratpack team the Ratpack/Groovy portion of the TechEmpower Web Framework Benchmarks, a popular benchmarking test suite for comparing the performance of several web application frameworks.
Technical product manager and Scrum master of the development of the Europass Cover Letter, a new document and editor added to the Europass portfolio in April 2014. Active involvement in all stages, from inception through to delivery into production.
Developed a Groovy command-line program, which verifies the results of a web analytics migration project from a legacy AWStats solution to Google Analytics. It works by querying two different databases (one containing AWStats data and the other one containing Google Analytics data), comparing the results and printing text-based reports pinpointing potential inconsistencies between the two data sources (diffs in absolute numbers, percentages, etc.)
Led the efforts for the second generation of interoperability between Europass and EURES (the first generation was based on older versions of the Europass XML Schema and legacy SOAP APIs). Taking advantage of the Europass XML, Europass users are now able to create a EURES profile/CV by simply uploading a Europass CV to the EURES portal. Likewise, EURES users can export their profile/CV into the Europass format, using the Europass REST API under the hood. A JAXB-based client was also developed in frames of this project, to ease the consumption of the Europass REST services by Java applications.
Technical product manager and Scrum master of the development of a brand new version of the Europass Language Passport (launched December 2013). I was responsible for all aspects of this project, from the design and implementation of the new document template and online editor to the final roll-out and end-user support.
Developed a simple Groovy command-line program, which parses all XML documents found in a directory and validates them against a given XSD, in bulk.
Wrote a bunch of Groovy and curl scripts to automate the procedure of on-demand health checks of various servers and services (in addition to standard infrastructure monitoring by Nagios, etc.).
Bootstrapped and led the efforts for the development of the Europass REST API as a technical manager and Scrum master. I still remain actively involved with anything that has to do with this project, including design, versioning, backward compatibility, technical support to interoperability partners, etc. The REST API (which replaced the now deprecated Europass SOAP API) is currently used by many EU and private organisations, universities, open source projects, etc.
Designed and implemented http://interop.europass.cedefop.europa.eu, a developer-focused portal with technical information concerning Europass Interoperability (XML and JSON Schemata, REST and SOAP web services, API documentation, sample applications, etc.). It is built with the Middleman static site generator, the Bootstrap front-end framework and an Ubuntu-based development environment created and configured via Vagrant.
Developed a simple Groovy script, which starts a preconfigured number of headless LibreOffice instances, monitors and automatically restarts them in case they crash.
Technical product manager and Scrum master of the first major redesign of the Europass CV template and editor since its first launch in 2005 and the development of a new document and editor, the European Skills Passport. Oversaw all aspects of the project, from inception, wireframing and the design of new document templates to delivery into production, end user support and maintenance. Europass traffic has been increasing rapidly since this revamp in December 2012.
Managed and implemented several server migration projects, physical to physical, physical to virtual, operating system upgrades, database server upgrades, etc.
An attempt to build a Grails-based E-Shop. Project abandoned due to the lack of interest and gradual shift to other technologies.
Built a Grails-based RSVP application in frames of my baby daughter's Christening event. The application was deployed on Heroku using a PostgreSQL database.
Wrote some Groovy scripts for automatically warming up the caches of various Europass services.
Managed the first major redesign of the Europass portal since its first launch in 2005 and the migration of the backing (custom) CMS to a newer version. Oversaw all aspects of the project, from inception, wireframing and information architecture through to delivery into production and maintenance.
Conducted an interoperability study to assess potential synergies between the Europass Mobility Management System (EMMS) and the corresponding systems used by the Aristotle University of Thessaloniki (AUTh) for managing student and academic mobility.
Managed the development of a tool used for converting Java properties files to Excel spreadsheets and vice versa.
Managed the development and release of the second version of the Europass SOAP API, which extends the conversion services provided by the first version of the API by adding support for HR-XML, JSON and HTML formats apart from MS Word, ODT and PDF.
Managed the successful deployment, integration and testing of several instances of the Europass Mobility Management System (EMMS), coordinating with the business and IT representatives of 36 National Europass Centres, located in 34 countries across Europe (EMMS is a SOAP-based distributed, multi-node application used for issuing Europass Mobility documents).
Coordinated the development of two prototypes assessing how job vacancies published in portals such as EURES and EURAXESS can appear directly in the Europass CV editor and be filtered automatically based on the user's CV data.
Developed a simple Groovy program, which converts Apache SSL request logs to the combined log format.
Designed and implemented a high availability server architecture based on redundant Apache and Tomcat instances, which allowed Europass to painlessly scale from 800.000 visits/month and 400.000 document generations/month in 2010 to more than 2.000.000 visits/month and 1.500.000 document generations/month in 2014.
Installed and configured JIRA/GreenHopper (replacing an old Bugzilla instance) to improve the effectiveness of incident and change management processes as well as to introduce Scrum and Kanban within the Europass team.
Lead developer of a three-member team responsible for the overall analysis, design and implementation of a web-based application used by EKT staff members and external stakeholders (universities, PhD students, etc.) to manage the internal workflows (submission, cataloguing, digitisation, archiving, etc.) of the National Archive of PhD Theses (EADD). The development efforts, apart from the integration of PhDMS with EADD and another external system via custom HTTP-based APIs, included a sophisticated reporting engine capable of exporting dynamic reports in various formats (HTML, PDF, RTF, Excel, CSV).
Lead developer of a two-member team responsible for the overall analysis, design and implementation of a full-fledged Order Management System used by the EKT Library Department for managing orders of scientific articles, conference proceedings, books, etc. by the academic and research community.
Designed and developed a reusable Java library that makes it easy to define and execute finite state machines and workflows using e.g. a Spring XML configuration file. This library, originally inspired by the State Design Pattern and Harel Statecharts (pdf), has been extensively utilised by EKT in various large production systems (including the aforementioned LibOMS and PhDMS) and has been open sourced on GitHub.
Worked along side a team of two to architect, design and implement a Spring-based application used in the Greek public sector as part of a larger integrated information system for the electronic submission of various financial data to the (former) Ministry of Economy and Finance.
Integrated Spring into a custom data cleansing/scrubbing framework built by EKT in order to achieve better maintainability, extensibility and testability.
Sole developer of a standalone application used for automatically downloading data from disparate online sources in XML and plain text formats, parsing, merging and transforming them according to a suitable XML schema and eventually feeding them to a Flash application.
Lead developer of a two-member team responsible for the overall analysis, design and implementation of http://openaccess.gr, a bilingual portal devoted to Open Access movement advocacy. Responsibilities included the customisation and extension of dotCMS, a J2EE-based open source CMS on top of which the portal was built (see below).
DotCMS is a J2EE-based Enterprise CMS/Portal suite, utilising technologies such as Struts, Velocity, DWR, Hibernate and Lucene among others. Applied a few patches as an active committer, all of which passed into production releases (rewriting and refactoring of the internationalisation infrastructure to suport UTF-8 character encoding, implementation of new features and new Velocity macros, bug fixes).
Sole developer of a CRUD web application that allows EKT staff members and external partners to maintain a database of research organizations and associated researcher profiles.
Maintainer and developer of http://researchers.nisnest.gr that acts as a pool of researcher and research organisation profiles, aiming at assisting researchers from Eastern European countries in identifying and forming potential partnerships.
Sole developer of a standalone tool used for processing/cleaning Dewey XML data and converting them to CSV format, so that they can be imported to an Oracle 10g database.
Sole developer of an intranet reporting engine built on top of a legacy database, used for generating business reports dynamically, selecting search criteria at run time.
Served as rapporteur of the E-Business Forum’s Ιa2 Working Group, studying the applicability of the Semantic Web and associated technologies in the context of E-Business. Written most parts of the final deliverable (pdf).
Built a few simple static HTML/CSS web sites as an amateur web developer on behalf of friends and relatives, including a marketing site for a niche Greek Coffee brand, a marketing site for a bicycle shop and a personal site for a PhD student.
As part of my master's dissertation project I developed an innovative e-Learning platform that allows doctors to be trained and collaborate online, by viewing and annotating streaming videos on PDAs and desktops. The application, which was built as a proof-of-concept prototype on behalf of the BrainIT Group at Glasgow Souther General Hospital, involved the entire software engineering lifecycle, from requirements gaterhing, to analysis, design, implementation, testing and evaluation with real users in a field trial.