Skip to content

Resume

Summary

I have been a professional computer programmer for more than 10 years, with hands-on experience in many different projects from small web applications to complex video games. I work well in a group, I have also led small teams and enjoyed it, but I’m not looking for a management position with no coding involved.

I believe what makes me a good programmer is that I like to learn new things and I do it fast. I love confronting a complex problem and focus on it until it’s resolved, which makes me excel at debugging. My main weakness, I think, is that I lose focus if I don’t have a clear objective.

Professional experience

First jobs 1995-1998

My first professional job was in 1995 as an Internet and computer instructor at one of the first cybercafes in Palma, L@Red. From 1996 until 1998 I worked as a systems administrator and C programmer at preView Multimedia Systems (a subsidiary of DVS), where I developed tools (a Windows shell extension and a NFS server) for a distributed audio/video storage system.

Applied skills: Linux server administration, C programming, COM/DCOM, digital audio and video processing.

Programmer at UbiSoft, 1998-1999

In this international entertainment company’s Barcelona studio I developed a 3D engine for the commercial video game ProRally 2001.

Applied skills: C and C++ programming, 3D rendering using OpenGL and an old API named Glide.

Technical Director at factoriaX, 2000-2001

In this startup I formed and managed the technical team with three more programmers and one designer. I was also responsible for the architecture of the company’s main project, a distributed GUI based on CORBA, and of coordinating with different open source projects.
I also administered the company intranet (email, distribution lists, etc.).

Applied skills: Project management, team coordination, CORBA, C++ and Python programming.

Systems Administrator at MAG Global, 2001-2002

In this private insurance company I worked as a network administrator and tech support. I took care of client and server computers and communications infrastructure (email, Internet, telephony, etc.) for five offices in three countries.

Applied skills: Linux and Windows system administration, email servers.

Pub manager, 2002-2003

I decided to take a break in a more relaxed work, so for a year I managed and served a small pub. Meanwhile at home I developed a blogging platform for Catalan-speakers using Helma, a Java and Javascript web development platform. Unfortunately it’s no longer online due to time and budget constraints, but in its good days it had hundreds of users and thousands of monthly visitors.

Applied skills: Java and Javascript programming, HTML and XML, some SQL and database administration. Also, cocktail preparing and basic accountancy.

Senior Programmer at Tragnarion Studios, 2003-2006

I returned to professional programming in this video game studio. I first led a small (two programmers) technology research team with two objectives:

  • Researching new videogame development tools, specially dynamic languages and virtual machines but also user interfaces.
  • Advising other programming teams on design and architecture. In-house programmer training.
  • Managing the collaboration system for programmers, based on Trac and Subversion.

Later on I worked as Lead Gameplay programmer, developing the gameplay framework, coordinating a group of four programmers with the design team and assuring code quality.
I contributed to different open source projects like the graphical engine Nebula Device for which I developed a Python bridge; and the GNUstep framework in which I improved the build system. This last project made me an official contributor to the FSF’s GNU project.

Applied skills: Project and research management. C++, Objective-C, Python and Lua programming. Programming languages implementation. Concurrent (multi-threading) and vectorial (SIMD) programming.

Senior Programmer at The Electronic Farm, 2006-2007

In this company I worked on a scheduling platform implemented with TCL. Unfortunately, it closed down most of its assets in February 2007.

Applied skills: C and TCL programming.

Programmer at Collabora, 2008-2012

In this open source software consultancy worked on different projects:

  • Contributed to hildon-desktop, the window manager and compositor for maemo used in the Nokia N900 mobile phone. I was responsible for the task launcher and manager, and helped in other areas of the project.
  • Added support for NPAPI plugins (such as Adobe Flash) to the Gtk+ and Qt ports of the WebKit browser engine.
  • Contributed to the architecture and development of the Clutter WebKit port.
  • Added support for accelerated compositing on various WebKit ports.

Applied skills: C and C++ programming, process and memory management, X window management and compositing, free and open source development, internals and use of WebKit, Gtk+, Qt and Clutter UI libraries.


Knowledge and skills

Platforms

My first computer was a Sinclair ZX Spectrum with an embedded BASIC environment. Since then I have been an user of CP/M, MS-DOS, Windows, OS/2, Solaris and Linux. Now I use Ubuntu Linux.

Administration

I have been an administrator of clients, both Windows and Unix, and of Linux servers from RedHat to Debian. I have managed email servers (sendmail, Postfix and Exim), directory (DNS, NIS and LDAP), news (NNTP), file (NFS and SMB), web (Apache), messaging (Jabber) and databases (MySQL and Postgres).

Tools

I’ve used MS Office and I’m now an OpenOffice user. My browser is Firefox and my email client is Thunderbird. I use nano, Emacs or Eclipse depending on the task and the mood. For project management I’ve used Trac, CVS and Subversion. I have used make, Cons and Jam build systems.

Programming languages

Since my first program in BASIC, I have gone through assembler, C, C++ (without and with STL), a little Pascal at college, various scripting languages (shell, TCL, Perl, Python and a little Ruby), Java, a little Javascript for web and Smalltalk (mostly Squeak). I’m a Lisp fan and have dabbled in Erlang. I really like programming languages.

Technologies

I have developed components using COM/DCOM/ActiveX and CORBA. I have used OpenGL for 3D graphics, and Gtk+ and Qt for UI development. For web development I’ve used Helma and more recently Django, I’ve also tried Zope, Ruby On Rails and learned a lot from Seaside.  On mobile, I’ve done some personal Android development.

Natural languages

I’m fluent in Catalan, English and Spanish, and have small knowledge of German, Russian and Chinese.


Other

For more personal information such as hobbies and interests, here’s more about me.