Resume
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
- Procedural Generation Tool (C#, Unity, Wave Collapse Function)
- Thread Pool (C++)
- Software Rasterizer (C++)
- Memory allocators (C++)
- Basic OpenGL project
- Software Raytracer (C++)
- MSc. thesis: AI system to simulate combat behaviors in FPS (C++, Unreal Engine 4, Behavior Trees)
- Bug0 navigation algorithm for Turtlebot 2.0 (Python)
- Android app
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
- ‘Why didn’t I think of that?’ award in the ‘Hack the Stacks’ hackathon at the American Museum of Natural History (2016)
- Best academic results in the MSc. in CS at the University of Girona (2016)
- Best degree final project for +CooVol in the B.S. in CS at the University of Girona (2014)
- (Sports) 1st Prize in the Paleo Girona sports competition (2016)