I have collected my professional experience in this page. Instead of just listing months and positions I will try to narrate my story. Thus the unconventional "from past to present" structure. It is a bit longer but far more entertaining, I hope.
I have 20 years of professional experience related to software development. Bear with me while we go over them.
Dates are in ISO 8601 format: August 2016 is 2016-08.
1996 to 1998: Intern at Plataforma Solar de Almería
My first job was to rewrite the PSA website in something that allowed for some degree of automation. A large part of it was laying out their annual report. I learned HTML in anger, and a long-forgotten environment called Frontier.
1998-08 to 2000-05: Analyst-Programmer at Informática El Corte Inglés, SA
After many years programming as a hobby I thought I knew everything about writing software. My first programming job was very useful to teach me that I was in fact wrong. I was in the team that wrote a C cash register program, with a nifty Visual Basic interface.
My best experience there was a two-week course taught by a real engineer: an ex-IBM manager called Kyle Rone that had worked in the Space Shuttle software. His charts and graphs made me fall in love with metrics and testing.
2000-05 to 2001-07: Analyst at Siatcom, SA
During my first months at Siatcom I got to learn Java, then in great demand in the sector. Shortly thereafter I got to know first-hand the pitiful Spanish meat market for tech workers. I got to use my new Java skills at Telefónica I+D as a "consultant", in reality a subcontractor. But then I got to participate in a couple of cool projects: a location experiment that got the user position from a mesh of mobile stations, and a WAP ringtone and messaging platform. OK, the second project was not really cool, so I left.
2001-08 to 2005-03: Analyst at Ibermática, SA
In the Applied Research department we did many innovative things with Java and XSL, such as an agent platform (where I dealt very interesting synchronization issues) and an XSL library to generate recursive documents. I was also technical lead for InfoCitizen, an European project for sharing personal documentation across Europe.
It was cool to cooperate with several companies and institutions from all over Europe. As part of my job I attended several conferences and even presented a couple of European projects in academic circles. I also got to travel a lot which was nice, for a while. Then it got tiring. Then the European projects dried out. Ibermática was at its heart a consulting company (read: part of the semi-legal meat market), and it was beginning to show. Combined with the sudden lack of research projects it was a good reason to leave.
2005-03 to 2007-07: Consultant at Matchmind and Indra
During the last few months at Matchmind I worked for Leroy Merlin. Then I left, and for a few months joined Indra (probably the largest Spanish IT consulting company) on a very ambitious project to migrate all of the infrastructure of Caja Madrid (a largish public bank, now part of Bankia). But after a few months the project was not advancing at all and it was quite boring.
2007-07 to 2011-08: Project Manager at ING Direct Spain
After so many years at consulting companies, joining a "final client" was a breakthrough. I was hired as an analyst, coordinating a group of 3 to 10 developers. For the last couple of years I was a project manager, and technical lead for financial cards. During my four years there I learned to communicate with non-technical parties, and to coordinate disparate teams for a common goal.
We did many interesting projects. Truth be told, I sorely missed technical work, so at the first opportunity I went back to hard-core software development in anger.
2011-08 to 2012-08: CTO at MoveinBlue
2012-08 to 2012-12: Freelancer
After the adventure was mostly over, and we had failed to get rich in the process, I worked as a freelancer for Kimia writing a PHP backend and an Android app, while my friend Diego Lafuente wrote the iOS version.
I have not stopped taking freelance engagements, since they help me stay sharp and learn new things. In fact I have worked for several large companies, here is one recent story.
2013-01 to Present: MediaSmart Mobile
Since the beginning of 2013 I work full time for MediaSmart Mobile, a mobile adtech company. Before I joined the company was facing a major scalability challenge and I could not reject the offer. In fact we have grown from processing two thousand requests per second to more than 400 thousand in little more than three years. Yes, that is right: every 2.5 seconds we process a million requests, decide which ones are useful for our customers and respond to all of them.
I work with a great team and we are doing great things together, successfully competing at an international level. When I joined I thought I knew some Node.js, and I have to say that I was a bit optimistic. Since then we have tortured the V8 engine in ways that I could not even dream back then.
I have also learned a bit of Erlang and Go, which we use for certain subsystems. My Erlang code is not in production, while my Go code is. This last sentence says a lot more about me than about Erlang or Go.
My job includes math puzzles and lots of equations, and we handle huge amounts of data, so I guess I could say that I do "Big Data". But, as befits a small startup, I also do lots of other things such as backend development and DevOps.
I am telecommuting full time: I go to the office mostly for Monday meetings. I also work flexible hours, which allows me to take care of my daughter when needed and at the same time use my most productive hours working. I also gladly take care of a crisis at ungodly hours. It is a win-win situation!
Paid work is not everything; often it is more rewarding (and fun!) to give away your time.
Open Source Projects
I was a volunteer admin project at Savannah (part of the GNU project) from 2008 to 2010.
In 2013 I started doing public talks, the very first to a crowded room for MadridJS.
I like to give public talks every once in a while. I consider them to be volunteer work since I am not paid, although I get to attend amazing conferences. They are an excellent opportunity to learn how to speak in public and meet interesting people.
Since 2015 I am the organizer of MadridJS, following on the steps of the previous team which did a great job. I am also the organizer of Node.js Madrid. We have run a couple of editions of NodeSchool.
I have collaborated in the organization of two editions of JSDayES, which have been very well received by the JS communities in Spain.
I learned programming when I was 10, even before I had a computer: I wrote stupid BASIC programs on paper and run to the house of my friend Carlos, who owned a ZX Spectrum, to enter them and run them. When I got my own Amstrad CPC 6128 a couple of years later I wrote a lot of programs in the included BASIC interpreter, and even some using Z80 assembler.
I loved computers and I loved science. When I went to the Uni I studied Physics, with the idea that I could learn computers on my own, while self-taught science would be much harder. I was more or less right. From 1989 to 1993 I studied in Granada, and then moved to the Universidad Autónoma de Madrid to finish the last two years.
It would have been nice to follow the program set by Wheeler to rewrite all of Physics using information theory, or "it from bit". But alas, it was not to be. Instead I graduated in February 1996 and life led me elsewhere.
My trusty Atari 1040ST had been with me during University, and I had used it to do lots of amazing graphs and papers using GFA Basic and a desktop publishing system called Calamus. I also learned 68000 assembler, which is a great experience when you want to optimize a program to its last consequences. Being in control of every processor cycle is lots of fun! But it was already feeling its age in 1996. So I got hold of an amazing Apple PowerMac 7500, and used it to learn Pascal, Perl and C. I even got to learn a bit of C++ and even some Objective-C (back when it was not fashionable).
The next step was to teach young talent, something I have been doing (and enjoyed) since 2000 when I was sent to Morocco to train new programmers for IECISA.
Other Useful Info
Not everything fits into a "job history" or "education" narrative. Here are some other bits you may find interesting.
I have used many dev environments including IDEs such as NetBeans or Eclipse. Right now I use a minimalistic environment which consists of a Bash console and the
vim editor. (If you use
ed you can question the "minimalistic" bit.) This allows me to be as productive in a remote SSH connection as locally, which may not be saying much, but there it is.
My OS of choice is Debian, and my desktop is XFCE. Ubuntu for servers is nice too, and Mac laptops are great machines with a Unix console.
Why this page? A few months ago I deleted my LinkedIn account. I had been using it as my online CV for many years, which in retrospect was not a great decision: it consumed some time every week to read its endless stream of notifications and keep up with obnoxious updates and inane corporate self-help. I hardly got any valuable contracts via LinkedIn, just lots of recruiters I was not interested in. The few interesting offers I have received in recent times (from the likes of Amazon and Facebook) came by mail.
The disgraceful password leak and the Microsoft buyout were just the last straw. I do not want a single tech giant controlling my CV, and above all I do not trust any company that misplace my password. Apparently they do not even know the extent of the leak, which is the sure sign of a severe mishandling of an incident.
You may argue that GitHub now owns my CV, but there is a clear difference: it is now only published on GitHub, but the repo is cloned on my own computers. I could replicate it on any hosted server in minutes. I firmly believe that people should own their own data. So take that as a "personal interest" for my CV.
If you have a proposal feel free to contact me at firstname.lastname@example.org. Note to recruiters: I am not looking for a job change right now.