I'm a passionate computer programmer. My interests span from user interface design to graphics programming and game development. I have a tendency to like tackling challenging subjects such as distributed storage and processing and serving video everywhere.

Work Experience

Sky

Senior Front-End Developer

2015-12-01 - Present

Tech lead at Sky Store's web client team, help maintain, architect and evolve the product. Sky Store is transactional VOD store. Migrating an Angular 1 codebase into vanilla ES6 with React views, one feature at a time.

SAPO

Senior Javascript Engineer

2010-12-01 - 2015-11-27

Development and maintenance of the JavaScript internal SAPO libraries and components for InkJS and libSAPOjs.Design and development of solutions for other SAPO teams:- StockMedia single-page app for management of media files;- the programming editor interface for MEO Kanal.Design and development of the SAPO Vídeos player, supporting several media playback and VAST/VPAID ads.Technical documentation writing, unit and functional tests development and fostering of good practises on the team.

Bulk Systems Corporation

Software Engineer

2009-06-01 - 2010-11-01

Design and implementation of an novel augmented reality system for sunglasses experimentation in-store, based on detecting, tracking and removal of a prop artifacts and superimposed rendering of accurate 3D glass models.Rewritten prototypal MatLab implementations to C++, OpenGL and OpenCV. From R&D to exhibition at Portugal Tecnológico Fair at FIL.Integration platform from glasses providers backend inventories to ad hoc management solution for a glasses store based on Python webscrapping.

Xpand IT

Software Engineer

2007-04-01 - 2009-05-01

Integration project for the Kenya's telco Safaricom with Tibco BusinessWorks.Development of web applications with JBoss, Struts 2 and Hibernate.Development of mobile app prototype in JavaME (Symbian) and Objective C (IPhone) for Porto Editora.Development of library management web app for HUF Portugal.Development of MIG metadata editor of geographical data in Java/Swing for Instituto Geográfico Português.

Volunteer

Casa de Sto. António

math coach for young mothers

2005-01-01 - 2005-07-01

Education

Instituto Superior Técnico

Engenharia Informática e de Computadores

Master’s Degree

2005-01-01 - 2007-01-01
GPA: 15.60 out of 20

Instituto Superior Técnico

Engenharia Informática e de Computadores

Bachelor’s Degree

1999-01-01 - 2005-01-01
GPA: 12.48 out of 20

Publications

Intro to Flowtype

presented at Require LX

2016-10-19

For the past year I've been writing client-side infrastructure for a feature-rich and cross-device web video player for SAPO. Cross-browser meaning it must work in recent browsers, older ones and overcoming mobile restrictions. Feature-rich because it supports ads serving, subtitles, quality switch, related videos, etc. I discuss the challenges faced and suggest strategies helpful to others.

Web Video - Building a player for current times

presented at Codebits VI

2014-04-01

In this session I'll be introducing the flow static analysis tool for JavaScript (flowtype.org). We'll see what it is and the benefits one can reap from it. I'll show you how to set it up and a tour how to annotate your code.

Urban Sketcher - Creating Urban Scenery using Multimodal Interfaces

IST

2008-11-01

A system was developed for the creation of urban scenarios produced on large screen displays using laser pointers as input devices and supporting collaborative usage. A novel interface had to be developed to support interaction with such input devices, based on the concept of gates and circular menus with a non-intrusive interface. Users can navigate on a virtual world using a set of comprehensive navigation modes, along with a multimodal flight mode controlled by speech commands and arm tracking. Simple shapes can be created and modeled using a minimalistic set of modeling tools, defining a novel modeling interface. Buildings can be instantiated from a library of facade styles by drawing the desired blueprint and setting the facade height to generate unique buildings. Buildings and other shapes can be transformed and cloned. Objects in the scene can have notes attached to them to aid in reviewing sessions. An alternative building creation work flow is proposed to take advantage of this system for early prototypes and showcasing projects.

Skills

Computer Vision

Test Driven Development

3D Graphics

Test Automation

LAMP

Computer Animation

Go

Git

Python

JavaScript

C++

GIMP

Inkscape

C

3D Visualization

Data Visualization

Online Advertising

Blender

Game Development

User Interface Programming

WebGL

Subversion

CSS

HTML5

Node.js

Java

GIS

SVG

Apache

Web Video

Technical Documentation

Solution Architecture

OpenGL

Functional Testing

React

Jest

Flowtype

Languages

Portuguese

Native

English

Professional working