RGSoC - Thank you heart

November 2017

Heart shapped interactive photo collage

[WIP] As a way to thank everyone involved in Rails Girls Summer of Code 2017, I've created a heart shapped interactive photo collage, to be populated with photos.

Technologies: HMTL, CSS, JavaScript

API aggregator

November 2017

Aggregate different services that interact with public APIs

This website agreggates 3 different projects that deal with public APIs: wikipedia, based on a challenge from Free Code Camp; twitch tv, also from a Free Code Camp challenge; NASA, built on the scope of the JavaScript and React for Developers course.

Two of these projects were developed with pure JavaScript, using the Fetch API.

Technologies: HTML, CSS, Bootstrap, JavaScript, Fetch API

Go Walks Portugal

September - November 2017

Website development

Go Walks Portugal is a walking tours company from the center of Portugal.

As a freelancer, I've developed their current mobile-friendly website using Ruby on Rails (WIP).

Technologies: Ruby on Rails

Daqui para Li

September 2017

Development of landing page

Daqui para Li is a Portuguese traveling agency. Besides the normal services of this type of business, this agency also offers inclusivity services.

Launched in October, I had the opportunity to develop their landing page.

Technologies: HTML, CSS, Bootstrap, JavaScript, jQuery


April - May 2017

Project SECURIS: Fatima landing page and website

SECURIS: Fatima was a project concerned with the security of its users, developed for the visit of Pope Francis to Fatima, a city in the center of Portugal, on May 2017.

On this project I had the opportunity to develop a bilingual landing page and a simple mobile-friendly website with Ruby on Rails.

Technologies: Ruby on Rails

Local Weather

April 2017

Display the Local Weather

The goal of this website, developed as a challenge from Free Code Camp, was to show the local weather, based on the HTML5 Geolocation of the user, and present a different icon or background image depending on the weather.

As an added challenge, I've developed this project without relying on any framework, using only HTML and CSS.

Technologies: HTML, CSS, JavaScript

How I met your mother

February 2017

Random quote machine

How I met your mother quotes was developed as part of a challenge from Free Code Camp. The goal was to develop a random quote machine and I choose this series as theme.

This project gave me a chance to experiment with basic API usage, DOM manipulation with jQuery, parsing JSON files and query parameters.

Technologies: HTML, CSS, Bootstrap, JavaScript

Entity Linking for fraud detection

February - June 2016

Data Visualizations for Entity Linking in eCommerce

As part of my master's thesis, I've worked on the design, implementation and testing of data visualizations for Entity Link Analysis for a fraud detection company. The purpose was to identify Fraud Rings: groups of people actively collaborating to commit identity fraud.

This type of fraudsters usually combine different real identifiers to create multiple synthetic identities to commit frauds. Entity Linking is data-analysis technique that explores associations between related entities, in order to identify patterns of behaviour that come across as suspicious.

Using the D3.js framework, I've developed an exploratory tool to test different data visualizations over transaction's information.

Technologies: Java, mySQL, Javascript, D3.js

Hanami's mailer gem

July - September 2015

Development of a mailer gem for framework Hanami

As part of the Rails Girls Summer of Code program, I had the opportunity to work in the Open Source framework Hanami. Hanami is a modern web framework for Ruby. My team's goal was to develop a gem to handle mail.

All the development was done based on pair programming and test driven development.

Technologies: Ruby, TDD

TV Series

October - December 2015

Semantic Web system for TV Series based on information from IMDB

This semantic web system provides information regarding TV Series. The onthology was built with OWL DL, using Protégé and Apache Jena. A Python web crawler collects information from the IMDB and Wikipedia websites to populate the triple store. The query language SPARQL is used to manipulate the stored information. A web interface displays the information and offers semantic searches capabilities and presents recommendations based on the user's search history.

This project was developed on the scope of the Web Semantic course taught on my master's degree. The core work was developed through pair programming and I was responsible for the development of the web interface while my partner worked on the web crawler.

Technologies: OWL DL, Protégé, Apache Jena, SPARQL, Spring, Javascript, Bootstrap

Insulin dose calculator

March - May 2015

Web service, N‐Version programming based, insulin dose calculator for patients with type­‐2 diabetes

Patients with type-2 diabetes might need periodic insulin injections. The adequate dosage of insulin to take in a given moment needs to be calculated with accuracy. This web application calculates this critical dose though n-version programming. N‐Version programming is a technique used in highly critical systems that achieve high reliability through software redundancy.

This project was developed in the scope of the Software Quality and Dependability course, lectured on my master's studies, and each group of students was required to develop a web service with calculations capabilities of insulin doses. Using the results calculated by N versions of these equivalents web services, a voting system decides on the output and the result is displayed on a web interface.

My major role in this three-person project was the development of the web interface.

Technologies: Java, EJB, Bootstrap, SPIN Model checker

iJava Compiler

March - May 2014

Compiler for the iJava language

Considering iJava (imperative Java) a subset of the Java (version 5.0) language, this project englobes the development of a compiler for that language.

The iJava compiler was implemented in C, using lex and yacc as lexical, syntax and semantic analyzers. The iJava code is converted into the intermediate representation LLVM and, using the appropriate flags, the abstract syntax tree and the content of the symbol table can be displayed.

This project was developed with pair programming, using unitary tests provided on Mooshak for validation, on the scope of the Compilers course from my Bachelor's studies.

Technologies: lex, yacc, C

Star Wars Bejeweled

December 2012

3D Java implementation of the Bejeweled game, Star Wars version

Developed on the scope of the Oriented Object Programming course from my Bachelor's degree, this project consisted in developing a game, similar to Bejeweled, where a user can switch adjacent pieces in a grid to create sets of three or more similar pieces. The main requirements were: implement two game modes - by score and by time; generate different power-up pieces when different combinations of more than 3 pieces were made; save highscores on file; be able to customize the grid size.

Set on the Star Wars universe, using spaceships as pieces, this game was developed by a group of three where I was responsible by the navigation and the game engine.

Technologies: Java

Game of Life

November - December 2012

Multiplayer version of Conway’s Game of Life implemented with processes and threads

Conway’s Game of Life is a zero-player game. The world is represented by a grid where each cell can either be dead or alive. The state of liveness of a cell at each iterative generation is dependent of the state of the cell and the surrounding ones at the previous generation.

On this project, developed for the Operative Systems course on my Bachelor's studies, the game was implemented in C using processes and threads, by pair programming. The Processes implementation uses shared memory, to share data between processes, memory mapped files to manipulate files on disk collaboratively between processes and POSIX semaphores to control accesses to shared resources. The Threads implementation uses concurrent programming and synchronization primitives such as semaphores and condition variables.

Technologies: C

Lovesick Box

March - May 2012

Adobe Flash multimedia application

Lovesick Box is a move-box Flash game inspired by the movie 'Eternal Sunshine of the Spotless Mind'. The game, narrated in the first person, follows the story of someone who decided to erase the memory of his past lover, after a complicated breakup. In each level, the player has to solve a brain-teaser by arranging the mobile boxes in the scenario. However, as the story unfolds, he rediscovers his love for the other person, changing the dynamics of the game as he resists the procedure.

This game, developed on the scope of the Multimedia course lectured on my Bachelor in Informatics Engineer, was the first major project I've worked on. It was a challenging project, since this was a course far too advanced for a beginner. Build by a group of 3, I was responsible for the creative content - story, scenarios, level design - and by developing the initial and final animations.

Technologies: ActionScript 3.0, Adobe Flash, Photoshop and Illustrator

Go to website Twitter LinkedIn GitHub