Senior Software Engineer
Since 02/2016
Feedzai, Lisbon, Portugal
Core product developer working with real-time stream processing and large scale machine learning. Feedzai systems are mostly used to help our clients detect patterns in real-time and react to it within milliseconds. The most common use case has been to help finantial institutions avoiding transaction/credit/account opening fraud. A lot of the behind scenes entails also processinglarge amounts of data in off-line jobs for Data Science pipelines that keep our online machine learning models as effective as possible. In short, this means working with lots of interesting technology and getting various types of distributed systems to work in practice with tight SLAs.
Back to Top


Ph.D. in Information Systems and Computer Engineering
From 09/2012 to 02/2016 Concluded
Instituto Superior Técnico, University of Lisbon, Portugal
I focused in Transactional Systems, both in shared memory and distributed, with shared data maintained in-memory. This stereotype is at the basis of many modern systems that take advantage of the parallel and distributed hardware available and large amounts of memory. In this setting, I set out to prove that it is possible to use middlewares with strong consistent transactions (i.e., Serializability or stronger) without giving up scalability, performance, and ease of programming. For this, I created systems that improved over the state of the art, by obtaining better scalability and performance without imposing any burden on the programmer besides asking for the transaction identification in the code.
M.Sc. in Information Systems and Computer Engineering
From 09/2010 to 07/2012 Concluded
Instituto Superior Técnico, University of Lisbon, Portugal
I majored in Distributed Systems and minored in Software Engineering. These are the main areas that soon called for my attention and which I have pursued since then in a never-ending effort to learn more.
B.Sc. in Information Systems and Computer Engineering
From 09/2007 to 07/2010 Concluded
Instituto Superior Técnico, University of Lisbon, Portugal
As in any Computer Engineering Bachelor, I was exposed to a wide range of topics and areas, which later allowed me to make a wise choice in the areas to specialize in.
Back to Top


Industry Internship: Google

3 months (Summer 2015)
Software Engineer Intern in the Advertisement Product Area
Development of a monitoring infra-structure for a large-scale system in Google Ads (the Advertisement Product Area) using Google's MillWheel (VLDB 2013). This system was being developed at the time, with near real-time performance constraints, and my main focus was to provide automatic monitoring and debugging hints for performance-related problems in the distributed infra-structure. I worked in the Pittsburgh office (USA), close to the Carnegie Mellon University, in close collaboration also with teams from the Mountain View office.

Industry Internship: Google

5 months (Summer 2014)
Software Engineer Intern in the YouTube Product Area
Worked in the YouTube Analytics platform, which provides insightful feedback to content/video owners in YouTube, thus performing at a huge scale of data and concurrent requests. My project was focused on the development of a data management system for the platform that provided low latency for new data to be available in the system. To do so, I mostly worked with Google's Dremel (VLDB 2010). This internship was in the multi-cultural and diverse Google office in Zurich, Switzerland.

Industry Internship: Fenix Team

1 year (2010/2011)
Junior Developer in the FenixEdu Team at Instituto Superior Técnico
The FenixEdu team at IST develops Fenix, a web-based platform for universities, which has been deployed at multiple sites (besides IST, naturally). It is a multi-tiered web application built on top of the Fenix Framework, which in its turn uses the JVSTM, making it the largest system in production in the world running with optimistic concurrency control based on Transactional Memory (on which I later focused my Ph.D. topic). During my internship I developed new administrative tools for the Post-Graduate unit, helped with bugs and operational emergencies. I also performed a background, long term task, of refactoring the source-code to apply non-functional changes. For this task I used Scala and the Eclipse ADT support to manipulate the source-code programatically and thus automatically change hundreds of thousands of lines of code.

Research Internship: INESC-ID

1 year (2009/2010)
Junior Researcher at the Spoken Language Laboratory
Started to learn the process of working in a research-oriented group and what it takes to improve the state of the art. During my internship I worked in a project whose objective was to have a robot that could drive through an unknown environment, keep track of its position, and learn about new entities via natural language expressions. This led me to find out about numerous areas of research, challenges in building robust systems, and how to experiment and infer statistically meaningful conclusions.
Back to Top


Student Award Standander Bank
December 2012
Distinguished as the best Master student finalist in Computer Engineering and also as one of the 7 best finalists of all degrees of the University of Lisbon.
Merit Award
January 2013
Distinguished as the best student in Computer Engineering in my university in 2010/2011 (i.e., during my Master's first year).
Best Paper Award
June 2014
Awarded at the 11th USENIX International Conference on Autonomic Computing (ICAC) 2014 (check my Papers).
Runner-up for Best Paper Award
July 2014
Runner-up for the Best Paper Award at the 23rd International Conference on Parallel Architectures and Compilation Techniques (PACT) 2014 (check my Papers).
Back to Top