Ricardo Gonçalves

Software Engineer

                                                                   Porto (Portugal) 

                                                              (+351) 960 324 097 






I am a computer scientist and a software engineer. I have experience in programming, algorithms, data structures, complexity and optimisation. I also have good knowledge of computer, software architecture and operating systems. I always strive to learn more, find new and better ways to get the things done, being perfectionist when it counts. What I love the most is simplicity, transform tough problems into a simple and elegant solution.

Work Experience

Software Developer at HealthySystems                                          Mar 2016–Present

Worked mainly with security concepts (like certificates, signatures and PKI), authentication mechanisms, data processing and Web and Desktop development:

·        I built a Java application to work with SmartCards (Citizen Card and Ordem dos Médicos). It created a HTTPS service to communicate with the browser via a REST API. I implemented a licensing mechanism. The application installers (for Windows, Linux and MacOS) were automatically built with GitLab Continuous Integration.

·        I developed a data backend service for an Android application. The service managed the drugs prescription for patients and was integrated with hospital services. To solve the involved challenges (high performance, security and authentication management) I used the following technologies: Java Servlets, Hapi HL7 messages parser, RabbitMQ and MySQL.

·        I created ElasticSearch/LogStash filters to parse logs of multiple systems, written in Ruby.

·        I worked on an existing platform for authentication in several services with multiple authentication mechanisms (password, SmardCard, YubiKey and QRCode). I implemented a reverse proxy and redesigned user interface. Technologies used: Groovy on Grails, Spring and Javascript.

·        I implemented a plugin for Kibana to manage configuration of a system that automatically deploy remote services.

·        I developed an authentication and authorisation system for Kibana based on OpenID Connect.

·        I idealised, promoted and managed a new company’s product: an authentication and authorisation solution based on Keycloak with multiple authentication mechanisms integrated.

·        I also gave internal lectures, monitored trainees and wrote technical documents of the work I have done.

Research Assistant at INESC/CRACS                                       Dec 2014–Feb 2016


Research and development of an automatic handwritten signature verification system using smartphones. I implemented all involved components, namely signature acquisition and storage, recognition and authentication with signature. Technologies used: Java Serlvets, Tomcat, Google AppEngine, Google Datastore (NoSQL) and Javascript.

Research Assistant at INESC/CRACS                                       Apr 2013–Sep 2013

Planning, configuration and management of a remote desktop system using LTSP and X2GO. The system was configured for remote printing and authentication with SmartCards.

Freelance Experience

2D CAD application for Light Steel Frame Construction, team of 3 Aug 2012–Oct 2013

The application was intended to design 2D structures in light steel. It exported the structures for production in specialised machinery.

·        I was responsible for planning (requirement analysis and cost estimation) and implementation of application settings manager, added support for project attachments and printing the assembly project document.

·        Technologies used: Java and Swing

Personal & Academic Projects

For a complete list of my projects, please visit my homepage (https://www.rigon.tk) or my GitHub page (https://github.com/rigon)

Yes & No Stock Questions                                                                      July 2017

This is an Android trivia game with the most puzzling questions about what people are willing to do for money. It is available in GooglePlay. Technologies used: Android, Google AppEngine, Google Datastore.

BootPopup                                                                                    December 2016

A JavaScript library to simplify the task of creating Bootstrap modals.

QMMP plugin for Youtube                                                              February 2015

A plugin for QMMP (Qt MultiMedia Player) that allows the user to search, add tracks to playlist and play musics from Youtube. It gained some users. Technologies used: Qt5, C++ and Python.

Notes                                                                                                  March 2015

A simple web application to write notes and websites with static content (dynamic content can be also integrated). The content is written in Markdown, making it very easy to use.

Lituanica SAT1 Telemetry                                                        Feb 2014–Jun 2014

This application was built in cooperation with LituanicaSAT1 team. It was intended to help to collect and organise the telemetry information received during the satellite space mission. Technologies used: PHP, Bash, jQuery and Bootstrap.

GC Particle System with vector fields                                       Feb 2012–Jun 2012

A particle system (50K particles) with multiple vector fields allowing different effects, multiple cameras, various control commands and a cinematographic demonstration mode. Technologies used: C++, OpenGL and Shaders.


MSc Computer Science

Sep 2013Dec 2015, Faculty of Science of University of Porto

·        Curricular specialisation in Parallel and Distributed programming

·        Master thesis subject: Handwritten signature authentication using motion detection and QRCodes

·        Spent 5 months in the ERASMUS program in Lithuania, where I worked with LituanicaSAT1 team

BSc Computer Science

Sep 2008Sep 2013, Faculty of Science of University of Porto


Gonçalves, R.P.; Augusto, A.B.; Correia, M.E., "Time/space based biometric handwritten signature verification," Information Systems and Technologies (CISTI), 2015 10th Iberian Conference on , vol. II, no., pp.1,6, 17-20 June 2015

Personal Skills

I started programming when I was 11.

In 2007, I got the 5th place in National Olympiads in Informatics contest.


Portuguese (Native), English (C2), German (A1), Lithuanian (A1)

Technical skills

Operating Systems



Programming Languages

·  Linux (Arch, Alpine)

·  Windows

·  MacOS X

·  MySQL

·  PostgreSQL

·  SQLite

·  Google Datastore

·  Docker

·  Git/GitLab CI

·  Android

·  LaTeX

·  Photoshop/Premiere

·  C/C++

·  Java

·  JavaScript

·  Python

·  Haskell

·  Ruby

·  Node.js

·  Bash

·  PHP

·  Visual Basic


Algorithms, optimisation, programming contests, programming languages, computer architecture and history, signal processing, electronics, physics, data mining, nature and environment, system administration, mountain cycling, swimming, music, play guitar.