I am a strong believer in test automation and in adapting to the environment and circumstances. My main focus as a developer and quality assurance engineer is on code quality through automated tests, development tools (possibly developed in-house, like RoboHydra), documentation, workshops, and reusable libraries. I mostly have experience with web applications but have also built some cross-platform GUI-based applications. I also have experience in customisation and maintenance of Free Software: I was a Debian Developer between 2002-2011; was one of the lead developers for mEDUXa, a Linux distribution for Canarian schools; and have maintained a number of free software projects throughout the years.
Senior Quality Engineer
Worked on Continuous Kernel Integration, a small team dedicated to providing continuous integration for the Linux kernel.
Helped with the documentation effort mostly with overview documentation of systems and processes, and with day-to-day development guidelines.
Helped maintain different tools (like KPET), wrote small tools to automated common tasks.
Helped develop and maintain the code for the Data Warehouse, a Django web application to collect all test results and provide statistics and graphs.
Senior Software Developer
Worked on both frontend (ES6, React, Redux) and backend (Python, Flask, PostgreSQL).
Main maintainer of an external API for customers and helped define rules for better APIs.
Made an almost complete rewrite of the permission system.
Gave numerous talks, about Git, functional programming, the (overhauled) permission system, and other topics.
Basic usage of fabric and Docker.
Developer in the Analytics team, member of the API and QA guilds.
Rewrote the notification server in Node.js for maintainability reasons, used Ansible and Jenkins to improve its deployment, and added statistics, graphs, and alerts, using Zabbix and Kibana, to gain an overview of the system health.
Worked in the mobile team, designing and implementing APIs to be consumed by the mobile applications.
Helped getting several teams started with RoboHydra and API testing.
Gave several RoboHydra talks, and Clojure talks and workshops.
Quality Assurance Engineer, Project Manager and Developer. Lead QA for several projects, including Opera Link and My Opera. Project Manager for Opera Link, Dev Opera and My Opera. Developer for Opera Sync (new version of Opera Link) and other projects.
Software packaging, development of internal tools, automated testing, testing infrastructure and coordination, specs, guidelines and documentation.
Built a testing environment and automated testsuite for the Opera Link server and for My Opera.
Built several mock servers to improve the reliability of some functional tests, and to dramatically improve the testing of the Opera Link clients. This work was the seed for the ideas in RoboHydra.
Helped design, document and test the Opera Link API. Wrote two articles (now offline) about the Link API on Dev Opera.
Wrote several automation tools (a database migration tool called Migraine, among others) and improved processes in different projects.
Setup and maintenance of a Continuous Integration Server.
Gave many talks and workshops on tools, processes and software automated testing. Organised several lightning talk sessions.
Built a Debian package repository with packaging guidelines and documentation, along with many Debian packages for both internal and external software. Part of this work was designing, implementing and releasing Arepa (Apt REPository Assistant).
Analysis, design and implementation of custom applications, mostly web-based.
Server administration, software packaging, internal tools development.
System administration: Debian package development, Debian package repositories, Jabber servers, chroot-based “virtual machines”, Cygwin, VMWare, UML and Xen.
Cross-Platform GUIs: Perl/Tk, Perl/wxWidgets, Python/Qt, Windows Intaller Compilers.
Databases: MySQL, PostgreSQL.
Design and development of a next-generation web widget system (DJWidgets, in Perl, and RemixWidgets, later, in Ruby).
One of the main developers of the Meduxa project (a Linux distribution for the Canary Islands government), based on Ubuntu and KDE. Lead developer of the automatic update system.
Development of a small call center based on a Jabber daemon system, written in Python, with a Qt interface.
Development of several internal code generation tools.
Testing evangelist, test development with Perl, Ruby and Python.
Development of an extensible build/configuration/install system for web applications, involving reusable, complex Makefiles.
TWiki patches (including PhotonSkin and PhotonSearch).
One of the advocates of having a public SVN repository for the Free Software produced inside the company.
Several talks and seminars.
Design and implementation of a tax system (RecaNET).
Deployment and Evangelisation of a Source Configuration Management System and a Bug Tracking System.
Web developer for “Camelot”, an application for a law firm.
Use of Perl+Mason for the application coding, a very modern web component system at the time.
Development of a context-sensitive help system.
System administrator support.
Perl, DNS, DHCP, Mail servers, System Monitoring Tools.
Development of a system administration program called PICA.
Published article (now offline) about PICA on the SysAdmin magazine (now defunct).
Licenciado en Informática
Facultad de Informática de la ULPGC
1 Oct 1995 - 10 Oct 2000
Programming, Software Engineering
“RTHC: Un conversor de RTF a HTML” (“RTHC: An RTF to HTML converter”) was given the highest degree (“Matrícula de Honor”, A+).
Design and implementation of a generic RTF parsing library in C++, using Design Patterns and UML for the design and the STL for the implementation.
Design and implementation of an RTF to HTML converter utility, using the above library for parsing, and gettext for i18n. The conversion utility was translated into several languages.
Study and documentation of the RTF format.
Study of the Free Software Community history, resources and way of work.
Packaging of the above software for RPM- and Debian-based systems.
A talk describing all of this was presented at Hispalinux III.
Attended “Introduction to Rhetorics”, a two-day intensive course on Rhetorics.
Received the Association for Project Management's Introductory Certificate in Project Management.
|Language||Listening||Reading||Spoken Interaction||Spoken Production||Writing|
Linux (advanced user level, medium administration).
Windows (medium user level, basic administration).
Good communication skills (especially written).
Experience giving talks and workshops.
I have worked in different volunteer organizations (Debian, Gulic and Amnesty International).
Former employee representative at Opera Software (2010-2011).
Debian Developer from April 2002 to November 2011.
Development of two proposals for a testing framework for dpkg, one using DejaGNU, and the other using Perl's Test::Unit (both integrating C unit tests, using the check library, and functional tests).
Part of the Debian/Ruby library packaging team. Lead developer for the generic Makefile used to compile Debian packages for Ruby libraries and programs.
Maintaining dhelp, a documentation integration program. Rewrote one of the main utilities in Ruby (was C), fixing bugs and adding enhancements like a templating system and making it fully l10nable with gettext.
Part of the Spanish translation team.
Functional languages, automated tests and Quality Assurance.
Communities; Wikis, collaboration and documentation; Free Software; software packaging.
Rhythm, progressive rock/metal, jazz and music in general.
Amateur drummer and songwriter; have written some songs and played in some bands; basic notions of other percussion instruments, guitar and bass.
Expression with a mix of pictures and text.
Use of comics in the workplace (explore usecases, project vision, impact of design decisions on users, etc). See for example the use case comics I made for RoboHydra.