Software Architect and Engineer
2020 - PRESENTINTRASOFT International- Implemented a RESTful Java client as a microservice based on the Hyperledger Fabric blockchain for the registration of trademarks. The client was the European Intellectual Property Office.
- Implemented a microservice for shortening long URLs into six characters based on a given corpus. The algorithm is adaptive and automatically increases the number of characters required for the path as soon as the current limit is exhausted.
- Contributed to the project GIView for the geographical indication of products. The client was the European Intellectual Property Office.
- Improved the user experience by generating server-sent events, rendered at the UI as a vertical timeline of trademark changes in real time whenever a trademark was added or updated. The client was the European Intellectual Property Office.
Technologies: Back-end, APIs, Back-end Development, Server Sent Events (SSE), Continuous Deployment, Continuous Integration (CI), Continuous Development (CD), Architecture, REST APIs, RESTful Development, RESTful APIs, Mockito, JUnit, Back-end Architecture, Confluence, Jira, Maven, Git, MongoDB, Java, Docker, Kubernetes, Web Applications, Team Mentoring, CQRS, Microservices, Blockchain, Spring BootSolution Architect and Full-stack Developer
2019 - 2020CAST, Inc.- Continued the development of the company's Drupal website, which was initiated by another vendor. Fixed several bugs of the initial implementation and implemented change requests according to the client's requirements.
- Adjusted according to the client's requirements the Drupal theme, which was based on Bootstrap 4, SCSS, and jQuery.
- Proposed, designed, and developed a Java application, called Staticfy, for converting a Drupal website into a static one. This means increased performance, better security, and lower hosting costs for the client.
- Developed a Drupal module for search capabilities in the static site. Drupal's search capability is based on PHP. Since PHP code cannot be executed in a static site, the alternative was to implement search functionality with Ajax and JavaScript.
- Set up a SORL server at an AWS EC2 instance required for the search functionality of the website.
- Developed a Drupal module for handling the submission form of user requests. The submitted data are sent via jQuery and Ajax to the AWS Gateway API, which calls an AWS Lambda function. The function sends a confirmation email to the user and client.
- Architected and implemented the whole infrastructure at Amazon Web Services (AWS) with Terraform. This work included the following services: S3, CloudFront, Route53, EC2, SES, ACM, KMS, EFS, API Gateway, Lambda, and DynamoDB.
- Architected and implemented GitLab pipelines for deployment at the content environment, execution of Staticfy and deployment to the staging environment, and deployment to the production. Deployment is handled by the client, at will.
Technologies: Back-end Development, Solution Architecture, Continuous Integration (CI), Continuous Deployment, Continuous Development (CD), Node.js, Architecture, Serverless, API Integration, Content Management, Scraping, Web Scraping, Web Development, Full-stack, Packer, AWS API Gateway, AWS SES, jQuery, GitLab CI/CD, GitLab, Amazon EC2, Ajax, SCSS, Bootstrap, Java, AWS Route 53, Amazon Web Services (AWS), Terraform, Amazon S3 (AWS S3), AWS DynamoDB, AWS Lambda, CSS, JavaScript, HTML5, DrupalSolution/Software Architect and Engineer
2017 - 2020ViaBill- Architected a microservices infrastructure and implemented libraries for asynchronous communication of microservices based on domain events.
- Designed and implemented the integration to the Stripe payment gateway for online payments during checkout and offline recurring charging of installments.
- Analyzed, designed, developed, and tested, in close cooperation with the lawyers of the company, a microservice for GDPR compliance.
- Developed the REST API for the checkout UI used in the USA and Spain.
- Applied CQRS and developed projections for feeding data to the machine learning algorithms developed by the business analytics department.
- Participated in business workshops and contributed to business decisions related to the company's products.
- Mentored several senior developers and introduced them to the philosophy of domain-driven design (DDD).
- Turned a legacy monolithic system into a modern microservices-based one with significant enhancements in architecture, codebase structure, and processes.
- Developed a web scraper to retrieve messages in the dead letter queues from the ActiveMQ web console by parsing the HTML code. The scraped data were shown on the administration UI and administrators were able to replay the messages at will.
- Integrated the core engine with external providers for phone number validation and credit card info verification.
Technologies: Systems Analysis, Integration, Back-end, APIs, Object-oriented Programming (OOP), Solution Architecture, Financial Modeling, Back-end Development, Technical Leadership, Continuous Integration (CI), Continuous Deployment, Continuous Development (CD), Architecture, Hibernate, REST APIs, Financial Services, Mockito, JUnit, Back-end Architecture, API Integration, Confluence, Jira, Git, Amazon Web Services (AWS), Web Scraping, Scraping, Payment Security, Payment APIs, Card Payments, Payment Gateways, Fintech, Java, AWS, Docker, Web Applications, Cucumber, ActiveMQ, Stripe Payments, Team Mentoring, CQRS, Microservices, Domain-driven Design (DDD), MariaDB, Apache Camel, Spring BootSoftware Architect and Engineer
2013 - 2017Trasys International- Architected, designed, and implemented an asynchronous messaging system that supports the handling of XML messages sent by cooperating parties, for safety reports of clinical trials. My client was the European Medicines Agency.
- Analyzed and developed a set of modules for Tractebel's Power System Analysis Platform related to energy and infrastructure projects.
- Architected and designed structures for the CHESAR software application system. Participated in discussions with the domain experts and implementation of models for the chemical assessment of substances. My client was the European Chemicals Agency.
Technologies: Back-end, APIs, Object-oriented Programming (OOP), Back-end Development, Technical Leadership, Continuous Development (CD), Architecture, REST APIs, PostgreSQL, Mockito, JUnit, Back-end Architecture, API Integration, Confluence, Jira, Maven, Git, Team Leadership, Docker, Web Applications, Apache Camel, Spring Boot, Spring, JavaSenior Software Engineer
2007 - 2013CSS- Architected and participated in the development of the back-end system for Western Union Greece. Integrated the core system with the central system of Western Union in the USA for execution and management of money transfer transactions.
- Developed a plethora of front-end applications supporting the back end of Western Union Greece.
- Built a web application for the management of advertisements in the annual magazine of ICAP.
- Contributed to the new e-banking system for the National Bank of Greece.
Technologies: Systems Analysis, Integration, Back-end, Object-oriented Programming (OOP), Financial Modeling, Back-end Development, Technical Leadership, Continuous Development (CD), Hibernate, Financial Services, Apache Tomcat, SQL, Spring MVC, JSP, Back-end Architecture, Team Leadership, Web Development, Full-stack, MySQL, JavaScript, CSS, jQuery, Fintech, Web Applications, Java, SpringSoftware Analyst, Architect, and Engineer
2005 - 2013Freelance- Contributed to the development of an application for loan application management. My client was Eurobank.
- Developed software for research projects related to audio. The client for this project was Ionian University in Greece.
- Built software for research projects related to e-learning. My client was National and Kapodistrian University of Athens.
- Created an application processing XML files in order to produce the daily program of TV channels for On Telecoms.
- Wrote an application for the evaluation of olive oil. My client was Rodax Agro.
Technologies: Hibernate, SQL, Spring MVC, JSF, JSP, Apache Tomcat, Ajax, jQuery, CSS, HTML, JavaScript, Web Applications, Spring, JavaSoftware Engineer
2001 - 2005MAT- Developed a Windows printer driver for electronic signature devices.
- Built an application for the management of orders in restaurants.
- Created an application for coding, decoding, and transfer of audio and video in real time.
Technologies: C, Full-stack, C++