Welcome
Hello,
this website is an extension to my curriculum vitae and a place to gather useful data. My scientific publications, technical reports, and thesis are available in the publications and writings section. There is a code samples section, where you can see my programming style and quality.
What follows in this section is a series of small articles which form my biography. Probably the most interesting are the ones which talk about more recent times, that is why they are written in reverse chronological order. To contact me you can send me an email.
Royal Bank of Scotland
To be added.
Why did I came to London?
It was fun to be a researcher, and I learnt many useful things, but I wanted a change. I wanted to learn about finances, investment, project management and business management. I was in a good position to do this, having recently studied a MSc. in parallel and distributed computing, with experience in complex systems from my job at the ITI. Those are skills which can be very valuable for banking businesses, which are known to process enormous quantities of data which is very difficult to process. I could trace a relationship my complex systems and chaos theory knowledge to market behaviour and business relationships.
I have good social skills, being able to create bonds with new people and talking in front of audiences I haven't met before. I have proved to be able to work on my own for long periods of time, creating and meeting my own deadlines, seeking for help when it is needed. I know also how to collaborate in a group, maintaining a good working mood. I have excellent problem solving skills and a good knowledge of good programming practices to produce efficient and maintainable code. I am motivated to work and learn.
The job I was looking for would be in the computing department of a big finance related firm, developing tools for the firm which would enable us to understand and process big quantities of data, based on distributed real time techniques. This way I would have access to the knowledge and data to make some complex systems research to create value for the long term. I would have some contact with market and business experts and some occasional duties which would require dealing with people more than with computers.
Developer at the ITI
Mn change of roles in the company was induced by a shortage in funding we got at the research group. While the next grant was being cooked by the government I got transferred to a development group which was in need of help. It had the mission to code a business processes graphical manager to give to the spanish small and medium businesses the technical help they need to compete in the global market. It felt good to be transferred there, actually, I learn there to code in a team, which is much better than to code solo. I was able to work with the insides of the Eclipse platform, which was both the IDE we used to code java and the application we were transforming to give to our customers.
MSc. in Parallel and Distributed Systems
I was working in a research institute inside the UPV campus, and my duties included maintaining and developing a massively distributed computing system. Moreover I had a small computing cluster I could use at my will and I was researching into inherently parallel systems. It was logical to order this knowledge into some postgraduate studies so I enrolled in the Master on Parallel and Distributed Computing Systems.
It was some kind of a bittersweet experience.
Sweet, because it was easy, I had the resources and the knowledge to learn fast and well, and without much more effort than being busy 60 hours a week.
Bitter, because I noticed how far from the mainstream my field of research is. Most parallel computing is made with old computing paradigms, and in languages like C or Fortran that make bad tools for massive decentralized computing systems like the ones I'm researching. Peer-to-Peer is hardly considered as important as it will be in a near future. No word was said about the importance of high-level computer languages to develop distributed systems.
With these studies I acquired skills I could later use to process large quantities of data, a view on the parallel technologies used in the industry and the knowledge that much remains to to do in this field of computing science.
Researcher at the ITI
The Instituto Tecnológico de Informática has about one hundred researchers distributed in about ten research groups. The complex adaptive systems group is one of the smallest ones and its researchers were from industrial or mathematical backgrounds. As I had studied computer science I was put in charge of building and maintaining the group cluster and computing services. This involved installing and configuring Linux on the six computers which would be the computing nodes, setting a common authentication and user disk space services with samba, nfs and ldap so the users could log in anywhere and see always the same disk space, which would physically reside in one of the servers. Finally all this data would be replicated daily to the backup server, which was able to maintain the services if the main server would fail, changing roles between backup server and main server.
I was also given the responsibility over the application used to distribute programs in the cluster. This is a state-of-the-art java application able to build networks of thousands of computers and distribute information effectively. Agents containing java applications can use the network to compute, travel and communicate. I got to understand this application without the help of the documentation, which didn't existed, the difficulty of this task was my main motivation to write the documentation myself, it is not fair for the application nor for the programmer to be so difficult to understand. I also corrected many bugs in the code and improved the communications protocol
I also learn how to code genetic programming algorithms. Genetic programming is a branch of complex systems that use the mechanics behind the natural evolution to solve mathematical problems. My best accomplishment was to be able to code some modules for a widely used library so it could interface with our distribution application and use large networks to solve experiments. It is possible now with this tool to harness the power of many workstations to solve problems, and research the dynamics of complex computing networks. This code is available in the website and in the ECJ project CVS.
Of course I had also the tasks of any researcher, that is, to get your results published so the money keeps flowing in. I researched into (and got published articles about) random topology network dynamics and problem solving with genetic programming. I also co-authored a book chapter about bankruptcy prediction using these techniques.
Complex Systems
This is a research field with a thousand names, and many of them sound great. The best to get attention in parties is to say that you are a researcher of Chaos Theory. You can also call it Non-linear Dynamical Systems, but that sounds boring. I first heard of all this while I was in the University, I read the Chaos book by James Gleick and got instantaneously enchanted by the science it described. I had always wanted to be a scientist (with white lab coat, please) and I discovered there the exact field I wanted, it had to be researched with computers and held the key to incredible mysteries.
All these buzzwords hide a research field which deals with systems with an almost infinite number of variables which interact between them in time, feedbacking the system. An evident complex system is the weather, with the butterfly effect and all that. The evolution of life is another, backed by genetics. Human societies, the mind, the stock market... complex systems are everywhere, and advances in this research field are showing an enormous potential.
I was lucky enough that my efforts to research into this field got me a career thesis topic in something as cool as using the behaviour of ant colonies to solve an industrial problem. And later this thesis got me a research job in the Complex Adaptative Systems group in the ITI, where I would code and maintain a massively distributed application that seemed to came out from sci-fi novel.
The University
I went to the Universidad Politécnica de Valencia to study Computer Science in the Facultad de Informática. The first thing I learnt there was that being smart was not enough when I failed all my exams in the first semester. Afterwards I would make an effort and I would finish having my average grades in the top 20%. So I could say that I learnt to learn in the University, plus a wide background covering almost every field related to computers and programming. Not that my knowledge is very profound in the majority, but I would know what to study if I need something in particular.
I have found particularly valuable having acquired a good proficiency as a Linux user and system administrator and also having assimilated a good understanding of Programming Engineering, the part in computer science that takes cares of developing good programming methods and techniques independently of the programming language used.
A special mention of those long seven years, and one of the reason for taking more time to finish my studies, are the two years I went to study abroad. I went as an Erasmus student to Genova, Italy, when I was on my fourth year. I learn there a new language and how to effectively communicate with people, how to make friends and colleagues. How to behave in a group, adding value to it.
It was also a really funny year, so I went two years later to a more exotic, and difficult, place. I was for ten months in Monterrey, Mexico, in the prestigious Instituto Tecnológico y de Estudios Superiores de Monterrey. I refined there my social skills and got introduced to the complex systems field, doing my career thesis on algorithms based on the behaviour of ant colonies. I used them to guess an optimal way to pack boxes into two-dimensional containers. That was my first publication, the happy end of my Computer Science degree, and the start of my scientific career.