Table of contents

 Education
 Work Experience
 Projects
 Skills
 Awards

Education

  • First Class honours in the MSc in Computer Science at the University of Girona, 2014-2016
  • B.S. in Computer Science at the University of Girona, 2010-2014
  • Technological High School at IES Santiago Sobrequés, 2008-2010

Work Experience

Participant, Recurse Center

New York, USA — Fall 2016

The Recurse Center is a free, self-directed, educational retreat for people who want to get better at programming, whether they’ve been coding for three decades or three months.

I joined RC with the idea of improving my C++ skills as well as gaining a low-level understanding of games and games engines. During the firsts weeks I mainly solved C++ exercices to warm up and get ready for the first project: A software Ray Tracer implemented in the CPU completely from scratch and without any external library. This program is able to simulate colors using the Phong shading model, multiple shadows using shadow rays, light attenuation, reflections and refractions.

Because the previous project seemed very interesting for me, I decided to dig deeper in rendering so I started an OpenGL project. This project allowed me to learn the basics of OpenGL by implementing different shading methods like Gouraud, Phong and Blinn-Phong shading and other features like normal and shadow mapping.

Finally, after a long talk about games and memory allocations with a fellow RCer I decided to implement several memory allocation algorithms for games to test against malloc. I implemented a linear and a stack, a linear, a pool and a free list allocator. Then I benchmarked it’s efficiency against malloc. In all cases, my algorithms were far better than malloc.

Back-end developer, Wikiloc Outdoor, S.L.

Girona, Spain — February 2015 to March 2016

Due to the growth that Wikiloc was experiencing, they hired me to work on some features to improve and optimize their online platform.

During the firsts months I worked autonomously on a project to automatize server provisioning using Ansible. The goal was to be able to replicate machines to easily create test environments and also to turn on new servers in case of failures.

After that, I closely worked with the strategy team to design and implement (autonomously too) a real-time metrics dashboard using Graphite and Grafana. The idea was to centralize all useful data to metric in a set of dashboards that would help the strategy team to take decisions. In order to centralize all data, I created multiple Python scripts to query several databases (Redis, MySQL and PostreSQL).

Finally, during the lasts months at Wikiloc, in order to improve the search engine performance and to add more search features I designed and developed (again, autonomously) a SolrCold prototype along with a Java driver to ease the creation of Solr search queries from the back-end. The final prototype was able to perform all previous search queries plus geo-spatial searches with a better performance and was fault tolerant.

Back-end developer (intern), University of Girona

Girona, Spain — October 2014 to November 2015

This project called +CooVol started as my Degree Final Project along with four other students by the initiative of the University of Girona. After finishing the project and winning the best degree final project (see Awards) the university hired us as interns to keep working in the project in order to create a final product.

At +CooVol each one of us had a single responsability although we all took part in the requirement analysis, design and decision making process. My specific responsability was to implement and test the REST API to connect the front-end application with Cassandra, a distributed database. This REST API was developed using pioneer technologies with the goal to create a distributed system that was easily replicated to scale horizontally and without a single point of failure. To do so I used Scala as a programming language, Spray to create a non-blocking API and AKKA to implement a concurrent and distributed computation model based on actors that allowed me to exploit to the maximum the different threads and cores of the CPU.

Full-stack developer (intern), Infogestió Girona S.L.

Girona, Spain — November 2013 to May 2014

During my time here I just worked as a “code power” in an ERP application. When something was needed to be implemented, either a bug or a new feature, I was there to do it. I worked on both products of the company, the desktop product implemented using VB. 6 and the mobile product using native Android.

Back-end developer (intern), ANPRO 21

Girona, Spain — July 2013 to September 2013

During this internship I exclusively worked in one single project below the supervision of a PhD student. The company needed an algorithm to perform sentimeny analysis on news with a better accuracy and performance than the previous system. Using Lucene and Java, I developed a sentiment analyzer algorithm that was fast enough for the needs of the company: more than 300.000 news were analyzed every day. In order improve its accuracy, I iterated over a secret formula provided by the company.

NXT developer (intern), University of Girona

Girona, Spain — November 2012 to April 2013

This was my first professional job as a software developer. During the firsts months I implemented a static web page using PHP to allow people upload their solutions to published problems on the website.

After that I developed (on my own) a cooperative navigation algorithm based on a Bug0 for NXT robots using LabView, a visual programming language for electrical and mechanical engineers. The different robots communicated through a TCP/IP program.

My Projects

Checkout all my projects with a brief description in the projects tab.

Skills

C++, 3D Maths, Graphics, Rendering, Dynamic memory, Multi-threading, Unreal Engine 4, Behavior Trees, Git, OpenGL, OOP, Software patterns, Python, Java, Databases

Awards