Java/Scala Enterprise Software Architect and Project Manager. With an integral vision of the technical, business and human aspects of the tasks to perform. Long experience administering software development projects using agile methodologies. Ample and intensive experience with free and open source software. Committed to high professional and human standards.
Technical Consultant, Enterprise Software Architect, Mnemo Evolution & Integration Services, Spain – 2006-2013
My main responsibilities were the architectural definition of solutions, the research, evaluation and proposal of technological alternatives, the leadership of teams developing enterprise and research projects, using quality-assurance methodologies, appraised with maturity level 3 of CMMI-DEV v 1.2. Some worth mentioning are:
Member of the pioneer group to develop components for the bank using their then-new applications framework, called BlueSpring (a derivative of the Spring Framework, particularly fond of Spring Core, Spring Web Services and Spring Roo).
Coauthor of the proposal for technical designs for the analysis teams.
Founding member of the continuous integration and process automation initiative.
Project manager and technical leader of the project for the maintenance (both corrective and evolutive) of applications and services. As such, my team and I were responsible for the continuous operation of a number of projects, each with its own technical trends and peculiarities. Amongst them:
- The Sensors Network, dedicated to the early identification and warning of IT threats.
- The Repository of Fraud Cases, a value-added container of the issues which could mean financial losses due to criminal activities.
- CLOUD-CERT, a distributed system for the coordinated operation of a network of CERT installations, sharing information about incidents and responses. Also, the periodical Bulletin Service derived from the daily CERT operation (by subscription).
- EU-CLOUD-CERT, a variant of the CLOUD-CERT service, diversified to operate under the umbrella of an European project.
- The Web Scanner, a tool to perform diverse measurements on the Internet, searching for (pluggable) patterns, in order to help in the detection of diverse (possibly illegal) patterns.
- Conan, a free, security-oriented configuration analyzer for personal computers, oriented towards the general consumption at home premises.
- The overall Software Ecosystem, a network of coordinated software development oriented services, including continuous integration (Jenkins), artifact repositories (Nexus), configuration and construction control (Maven), Scrum support (IceScrum), automated testing (JUnit, Selenium, Cucumber), version control (Subversion).
During this project I introduced Scrum as a work methodology in my team. Due to the notorious success obtained, this was later propagated to other teams within the customer (for some of them I was the Scrum Master), and is now the official way to develop software.
Technical consultant and leader of the development team of a web portal, based on Liferay, which provides services to alumni and ex-alumni of a network of Universities. Although Liferay is Java-based, and the portlets are commonly bare Java implementations of JSR-286, an experiment was allowed for me to develop portlets using the Vaadin web framework.
Project manager of the team responsible for the development of a system for the general work control within the company. The workload of a software factory consists of a myriad of relatively small requirements, each of them usually ill-specified and with its own life-cycle. A general-purpose ITS was out of the question, due to the very particular parameters inherent to that kind of development.
I was in charge of a team, with the mission to develop a solution to that problem. We developed a Java-based application, built upon SEAM with JPA as persistence support.
This was the first time that I proposed the use of an agile methodology within the company, and the one I proposed was eXtreme Programming. It was not particularly warmly welcome, perhaps because it is very strict, but it worked all right.
Technical leader for the design of the general architecture of the PROCESA process engine.
Once the overall architecture was defined, I performed the evaluation and selection of some of the chosen technologies (JCR, Mule, JBPM, Spring).
Due to the large size of the project, several teams were created: one for each of the project’s general components. I was charged with leadership of the team which developed the core (engine) module.
In-situ acquisition of technology for this financial entity, in order to –later on– provide assessment to others within Mnemo.
At first, my mission was a hands-on training on the particular framework used by the entity (called Siglo XXI). The orientation was the design and development of user interfaces.
At last, I participated in the creation of an Integrated Development Environment based on Continuous Integration tools, like Nexus, Maven, Subversion, Hudson, and shell scripting, in order to ease the further development work for this customer.
Besides my participation in particular projects and customers, I have also trained other people, within and outside the company, about the Agile Way, GNU/Linux, shell scripting, C/Java/Perl programming, Continuous Integration tools and practices (Maven, Subversion, Jenkins…), as well as secure development good practices and blueprints.
IT Subdirector, National Institute of Migration, Mexico – 2005-2006
Much of the software development for the institute didn’t occur in its own premises, but was subject to public competitions. Thus, very specific and very strict specifications were needed. My job involved the creation of such specifications, the coordination of software development and maintenance teams, as well as the creation and review of technical designs. The involved technologies were Java, C, MySQL, Oracle DB. GNU/Linux and Windows.
Using the Crystal Clear methodology I participated in the reengineering process of the main migratory control system (SIOM), which was then deployed to all of entry and exit points of the country.
I was responsible too for the project „Viajero Seguro“ (Safe Traveller), which consisted on the application of Intelligent Cards to the optimization of the process of entering the Mexican territory, for frequent flyers fulfilling the security requirements.
Chief Technology Officer, Internet de Alta Calidad, Mexico – 1996-2005
My role was to provide a good assessment as to what technological alternatives were available at every moment, and for each client. Also, to keep the internal technical and management abilities sharp and up-to-date.
Some of the projects and clients worth mentioning are:
A software consulting and development company, with a slant towards financial entities. For this customer I worked in-situ towards the successful development and deployment of a solution for the AFORE offering of IXE bank.
An initiative to distribute value towards the producers and the consumers of corn in Mexico, I was in charge of designing and leading the development of a solution for the efficient life-cycle management of coupons, thus reducing the length of the production-consumption chain.
Banco del Bajío
Originally, we were responsible of the first exposure of the bank to their final customers, in Internet. First, non-transactional.
Later on, I participated in the design and development of a gateway to their banking solution, in order to provide banking services to its customers.
Finally, we helped develop a new IT infrastructure, based upon principles of services distribution (no single point of failure) and security (SE-Linux based servers).
My role was of technological evaluation, project planning, software development and technological transfer. Most of this company´s customers are within the banking sector.
Besides these customer-oriented projects, I coordinated (and participated directly therein) the development of a number of internal software development projects, although with a noticeable slant towards FOSS technologies.
During all this time I designed and participated in instruction initiatives, both for internal use and as a service for several customers, about diverse technologies (Java, J2EE, JSP, Struts, C, MySQL, GNU/Linux, agile development processes…).
Technical Advisor, Industrial de Servicios, Mexico – 1993-1994
Technical advise and consulting, software development, oriented towards the industrial processes control.
Instructor, National Autonomous University of Mexico (UNAM) – 1992-1993
Lectured inter semester courses about C language, as well as C++ and Java based object oriented programming.
Designer and Programmer, ATTIS, Mexico – 1992-1993
Designer and developer of telematic information systems.
Designer and Programmer, D-Ingeniería, Mexico – 1992
Designer and programmer of graphic user interfaces (GUIs). In Pascal.
Designer and Programmer, National Autonomous University of Mexico (UNAM) – 1990-1991
Designer, first programmer and supervisor of the Engineering Faculty´s remote-visualization project.
Analyst and Programmer, DICONSA, Mexico – 1989-1990
Analysis and implementation of programs for the processing of paper-based polls.
Analyst, Programmer and Systems Administrator, SECOFI, Mexico – 1988-1989
Analysis and implementation of programs for the processing of paper-based polls, as well as the administration of the Onyx-based local network.
Programmer, Atari, Mexico – 1990-1991
This was a very interesting job, due to the fact that it demanded a lot of low-level programming (6502 and MC68000 processors), and the knowledge of the hardware platforms on which the software would run.
Programmer, Programas Especializados, Mexico – 1986-1988
Here I made some simple programs, adapted and translated an accounting system, although my main responsibility was as an instructor for introducing small children to programming, mainly in the Logo language.
- Bachelor in Informatics and Computing, Mexico
Public Education Secretary, 2005
- Computation Engineering (unfinished), Mexico
National Autonomous University of Mexico, 1991-1997
- Programming Mobile Applications for Android Handheld Systems
Coursera/University of Maryland, College Park, 2013
- Principles of Reactive Programming (with distinction)
Coursera/Ecole Polytechnique Fédérale de Lausanne‘s online offer, 2013
- Functional Programming Principles in Scala (with distinction)
Coursera/Ecole Polytechnique Fédérale de Lausanne‘s online offer, 2013
- German Language
León, Spain — Escuela Oficial de Idiomas, since 2010 (currently at level intermediate 2)
- CMMI – AMMI
Spain — Aaron Formación y Consultoría, 2010
- CUDA: programming of Graphical Processing Units
Spain — Fundación Centro de Supercomputación de Castilla y León, 2009
- Red Hat Certified Engineer
Durham, NC, USA — Red Hat Inc., 1999
- eWave Commerce Developers Workshop
Sacramento, CA, USA — Unify Corporation, 2000
- Fractal Geometry (1993), Real-time Databases (1992), Seminary of Artificial Intelligence and Expert Systems (1991), Design and Programming for the MC68000 Microprocessor (1989)
Mexico — National Autonomous University of Mexico.
Until recently I was the leader of the team assigned by Mnemo Group to INTECO-Labs (Labs is the Research & Development branch of the Institute). This is a particularly challenging position because of the technological and human diversity, the precise and demanding requirements of the customer, the agility in methodologies and, above all, the fulfilled need of a fresh, motivating, example-driven leading role.
I have actively participated in the implementation of the CMMI (level 3) process in the Leon Institute of Technology (Spain), then a part of the Mnemo Group. An interesting trend of this work is the compatibility that was achieved between the requirements of CMMI and some of the agile practices I introduced.
Even though I am a Scrum advocate, I´m acquainted with other agile methodologies; eXtreme Programming, as well as Alistair Cockburn’s Crystal Clear. Using eXtreme Programming I successfully participated in the reengineering process for the AFORE (Retirement Funds Administration) of an important financial group in Mexico. It is noteworthy that such a system is extremely complex, and this extreme approach, notwithstanding the “traditional wisdom” that XP is not for very large projects, worked very fine. Using Crystal Clear I successfully participated in the reengineering of the SIOM (Integral Migratory Operation System), and in the migratory alerts system, for the National Migration Institute, in Mexico.
I consider myself a very seasoned user, developer, and evangelist of free and open source software:
- I have been a GNU/Linux user since 1993, year in which Miguel de Icaza (head of the GNOME project) introduced me to the new operating system.
- I have contributed software to the free software community: corrections to a network adapter driver, code to import Excel files into Gnumeric (a worksheet part of the GNOME project) and several other minor contributions.
I am one of the first Red Hat certified engineers in Mexico (1999).
I have administered servers running the Solaris, AIX, Windows NT and Windows 2000 operating systems, as well as all of the major GNU Linux distributions (or their derivatives), and is thus able to draft inter operation scenarios between different distributions, as well as migration from closed to open source solutions and vice versa.
Since the beginnings of 2005, I have been interested in the social software phenomena: I set up a web log (blog) of my own, in August, 2005. I also set up and participated in several wiki pages, using several wiki engines, including MediaWiki, the one behind the Wikipedia.
Successfully helped to define a search engine optimization strategy for the company he was working for at the moment (2005), targeted at Google.
I have demonstrated enough adaptability abilities to face large cultural and technological changes.
Good communication skills: writing and proofreading; bilingual (English –IELTS certification– and Spanish (native language). Currently learning German, with a proficiency level of B1, according to the unified European scale.
Committed to excellence. Not only in a technical perspective, but also –and this is of the utmost importance to me– in the human sphere.
Throughout my professional experience I have acquired a diverse command of a wide spectrum of technologies. Because of this, and due to my hands-on experience in system analysis, design and construction, I often come out with imaginative, out-of-the-box solutions to the problems.
Whereas the technical side of projects is the one I´m usually more acquainted with, I count with project administration experience as well. This allows for the ability of organizing, motivating and performing the follow-up of task-forces, particularly in the context of agile practices.