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-present
I’m currently working on open source browser engines for this software consultancy company.
Applied skills: C and C++ programming, free and open source development.
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. For web development I’ve used Helma, I’ve tried Zope, Ruby On Rails and learned a lot from Seaside.
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.