I have collected my professional experience in this page. Instead of just listing months and positions I will try to narrate my story. It is a bit longer but far more entertaining, I hope.
A developer with 20 years of experience proficient in Node.js and Golang, specialized in scalability and DevOps.
I have 20 years of professional experience related to software development. Bear with me while we go over them, in reverse chronological time as is customary. Dates are in ISO 8601 format: 2016-08 is August 2016.
2013-01 to Present: mediasmart.io
Since the beginning of 2013 I work full time for mediasmart.io, a mobile adtech company. Before I joined the company was facing major scalability challenges and I could not reject the offer. In fact we have grown from processing two thousand requests per second to more than 800 thousand in little more than four years. Yes, that is right: every ~1.2 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, which was a bit optimistic to say the least. 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. Some of my Go code has been in production for years without issues.
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!
2012-08 to 2012-12: Freelancer
After my entrepreneurship adventure was mostly over, and we 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.
2011-08 to 2012-08: CTO at MoveinBlue
2007-07 to 2011-08: Project Manager at ING Direct Spain
After many years at consulting companies, joining a "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, such as coordinating a task force to optimize financial transactions. Truth be told, I sorely missed technical work, so at the first opportunity I went back to hard-core software development in anger.
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 (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). The best part is that I got to work with very talented people, some of which I keep in contact with to this day.
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 thread synchronization issues; or 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 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 dwindling meat market), and it was beginning to show. Combined with the sudden lack of research projects it was a good reason to leave.
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 Spanish "meat market" for tech workers. I got to use my new Java skills at Telefónica I+D as a "consultant", actually a contractor in disguise. 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 (in 2000!), and a WAP ringtone and messaging platform. OK, the second project was not really cool, so I left.
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. My most interesting project was designing and writing a custom plug-in architecture from scratch.
1996 to 1998: Intern at Plataforma Solar de Almería
My first job ever 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.
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 excellent opportunities to learn how to speak in public and meet interesting people.
I have collaborated in the organization of three editions of JSDayES, which have been very well received by the JS communities in Spain. The last edition JSDayES 2017 had about 600 attendees and featured 35 speakers from over 10 countries.
Since 2015 I am the organizer of MadridJS, following on the steps of the previous team that did a great job. I am also the organizer of Node.js Madrid. We have run a couple of editions of NodeSchool.
Lately I have given a couple of workshops at AdaLab, a bootcamp specifically for females wanting to work in software development. It has been a great experience to see people so motivated! These brave women are going to be a force to reckon in our national industry.
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 type 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 later a few more 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 are allowed to 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. In return I just got 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 a sure sign of severe mishandling of an incident.
Maybe you are thinking that GitHub, where this blog is published, now owns my CV. There is a clear difference: the data is replicated on my own computers and can be republished anywhere else in minutes. One of the advantages of owning my private data!
If you have a proposal feel free to contact me at email@example.com. Thanks for making it this far!