Esteban Manchado Velázquez

Personal Information




Manchado Velázquez

E-mail Address







Date of Birth



Multifaceted software engineer with over 15 years of professional experience. I can work as a developer, quality assurance engineer or something in between, always adapting to the needs of the team. I focus on scripting languages, especially JavaScript and Python, and I am very fond of functional programming, especially Clojure and ClojureScript. I also know other programming languages.

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, ready-to-use packages and reusable libraries. I have years of experience designing and writing web applications but have also built some cross-platform GUI-based applications (using Qt, WxWidgets and Tk). I am also very experienced 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.

Work Experience

Xeneta (May 2016 - present)


Senior Software Developer.


Worked on both frontend (ES6, React, Redux) and backend (Python, Flask, PostgreSQL). One of the main maintainers of an external API for customers. Helped define rules for better APIs. Basic usage of fabric and Docker.

Fronter AS (Apr 2014 - Apr 2016)


Developer in the Analytics team, member of the API and QA guilds.


Helped build, improve and ultimately rewrite a notification system based on Apache Kafka, with pieces written in Python, JavaScript and PHP.

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.

Won the Hackathon in 2014 with a shared board application implemented in Clojure and JavaScript.

Gave several RoboHydra talks, and Clojure talks and workshops.

Opera Software ASA (Jan 2007 - Jul 2013)


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).

Fotón Sistemas Inteligentes (Jul 2002 - Dec 2006)


Analysis, design and implementation of custom applications, mostly web-based.

Server administration, software packaging, internal tools development.

Technologies Used

Web development: Perl CGIs, Perl + Mason, Ruby on Rails, PHP, JavaScript.

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.

COINPRE (Nov 2001 - Jul 2002)


Design and implementation of a tax system (RecaNET).

Technologies Used

PHP, JavaScript, PostgreSQL, Perl.


Deployment and Evangelisation of a Source Configuration Management System and a Bug Tracking System.

Refactoring and redesign of some important parts of the application, started a tiny JavaScript-based widget system.

OptymaNet (Jul 2001 - Oct 2001)


Web developer for "Camelot", an application for a law firm.

Technologies Used

Firebird database server, and the Mason web component system and JavaScript for the application.


Use of Perl+Mason for the application coding, a very modern web component system at the time.

Development of a context-sensitive help system.

Subdirección de Comunicaciones ULPGC (Oct 2000 - Oct 2001)


System administrator support.

Technologies Used

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).

Education and Training

University Degree

Degree Name

Licenciado en Informática


Facultad de Informática de la ULPGC

Number of Years



1 Oct 1995 - 10 Oct 2000

Main Subjects

Programming, Software Engineering

Master Thesis

"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.

APM Introductory certificate

Received the Association for Project Management's Introductory Certificate in Project Management.



Mother Tongue


Other Languages (Legend)
Language Listening Reading Spoken Interaction Spoken Production Writing
English C1Proficient C1Proficient C1Proficient C2Proficient C2Proficient
Norwegian B1Independent B1Independent A2Basic A2Basic B1Independent

Computer Skills

Operating Systems

Linux (advanced user level, medium administration).

Windows (medium user level, basic administration).

Programming Languages

JavaScript (including ES6), Python, Elm, Clojure/ClojureScript, Python, Perl, Ruby, PHP, UNIX scripting languages. Basic notions of Elixir, Scala, and several others.

Other Skills

Social Skills

Good communication skills (especially written).

Experience giving talks and workshops.

Organizational Skills

I have worked in different volunteer organizations (Debian, Gulic and Amnesty International).

Former employee representative at Opera Software (2010-2011).

Talks, Courses and Writings


Elm talk
An introductory Elm talk. It presents some of the basic but interesting ideas in the language, and had a short demo showing how to make a meaningful change to a "real" application (NARROWS).
Full day testing workshop
An introductory-to-mid-level workshop to teach testing, including basic testing concepts, guidelines for writing better tests, intro to TDD, and basic RoboHydra use.
Introduction to Clojure
An introductory workshop to teach Clojure, organized several times (material).
Introduction to RoboHydra, 4/12/2013
An introductory talk showing the ideas behind RoboHydra and its basic capabilities (material), along with two different demos (testing a browser extension and testing an Android application that use an API).
Test-Driven Development Workshop, 15/10/2013
An intro workshop to TDD (material), explaining what it is, what advantages it can bring to the programmer, and when to apply it. After the initial explanation, the attendees practised TDD themselves by solving a simple problem (in this case, a Yahtzee score calculator).
Test-Driven Development Introduction, 23/08/2012
"Test-Driven Development: How I Learned to Stop Worrying and Love the Tests". A short introduction to TDD, explaining what it is, what advantages it can bring to the programmer, and when to apply it.
Google Test Automation Conference, 28/10/2010
"Lessons learned from testability failures" (slides). Stories about testability problems and challenges at Opera, together with solutions and advice to improve the testability of projects.
iCities, 25/04/2009
"Made In Canarias, Tecnólogos Canarios en centros mundiales de referencia". Round table about people from the Canary Islands working in big projects abroad.
Debian packaging course, 11/2008
4-day entry level course on Debian packaging.
LanzaOS, 24/11/2006
"TWiki: plataforma de colaboración empresarial" ("TWiki: enterprise collaboration platform"). Entry level talk about TWiki and use of Wikis in enterprise environments. It covered several uses of TWiki for collaboration purposes, Wiki culture and deployment tips.
ULPGC, November 2006 (6-23)
"Ruby on Rails, desarrollo web sobre ruedas" ("Smooth web development with Ruby on Rails"). Entry level 40-hour crash course on Ruby and Ruby on Rails. I gave five days, 15 hours total: the Ruby language introduction (four days) and the introduction to automated testing, covering Rails unit and functional testing, and browser functional testing with Selenium (one day).
Fotón S.I., 20/10/2006
Introduction to automated testing with Ruby and Rails. Introductory talk/demo on Ruby automated testing, covering Ruby unit testing, Rails unit and functional testing, and browser functional testing with Selenium.
I Encuentro de S.L., 18/09/2006
"Disección de una aplicación Rails" ("Dissecting a Rails application"). Introductory talk/demo about modifying real, complete Rails applications, at the I Encuentro de Software Libre de la ULL.
I Encuentro de S.L., 18/09/2006
"Un vistazo a Rails: La plataforma de desarrollo web de los samurais" ("A look at Rails: the web development framework for samurais"). Introductory talk/demo about Rails, at the I Encuentro de Software Libre de la ULL.
ULL, 19/05/2006
"Ruby on Rails: una revolución en el desarrollo web" ("Ruby on Rails: a revolution in web development"). Introductory talk/demo about Ruby and Rails, at the University of La Laguna.
Jabber, 5/5/2006
Una introducción a Darcs ("Introduction to Darcs"), via Jabber. The linked document was prepared from the conversation log by the attendees.
ULPGC/OSL, March 2006 (15 - 24)
Ruby on Rails crash course for the "Oficina del Software Libre" ("Free Software Office") of the Universidad de Las Palmas de Gran Canaria.
La Caja, November 2005 (22 - 24)
Intermediate level Rails seminar for La Caja de Canarias, one of the most important local banks in the Canaries.
LanzaOS, 14/10/2005
"Demostración de Ruby on Rails" ("Ruby on Rails demo")
LanzaOS, 13/10/2005
"Formatos abiertos y programas libres" ("Open formats and Free Software"). Talk about open formats and their importance, software patents, and the role Free Software plays in the spreading of open and better formats.
FiCIT 12/8/2005
"Ruby: un lenguaje dinámico moderno" ("Ruby: a modern dynamic language") for the "Fiesta Canaria de la Informática y Telemática" ("Canarian Computer and Telecommunications Party"). A 3-hour tour de force through most Ruby features.
ULPGC/GCC, JJTT 12/5/2005
Ruby on Rails demo for the "Jornadas Técnicas de Internet" ("Internet technical days"), organized by Gran Canaria Campus, a student organization in the University of Las Palmas de Gran Canaria
ULPGC/GCC, JJTT 6/5/2004
"La charla más divertida sobre patentes de programación" ("The funniest software patents talk"). Talk about the dangers of software patents, presented in a funny way.
FiCIT, 22/8/2003
"TWiki: trabajo en grupo, libre" ("TWiki: free teamwork"). Introductory and intermediate talk, showing both Wiki culture and history, and a little TWiki-specific programming.
laspalmasparty, 21/12/2002
"Jabber: mensajería instantánea y más" ("Jabber: instant messaging and more"). A mostly user-level introduction to Jabber, with a couple of references to its uses for developers (besides instant messaging per se).
FiCIT, 4/8/2002
"La comunidad de los programas libres" ("The Free Software Community"). An introduction to Free Software, both from the software point of view and from the human point of view.
ULPGC/GCC, JJTT, 15/5/2002
"Debian: un proyecto organizado por internet" ("Debian: an Internet-based project"). Introduction to the Debian organization, with some final notes about software patents.
Hispalinux IV, 16/10/2001
"PICA: Una solución inteligente para administrar sistemas". Talk explaining PICA, a system administration program.
Hispalinux III, 12/10/2000
"Libertad para el RTF" ("Freedom for RTF"). Talk explaining my final degree work, an RTF parser written in C++, using design patterns; and RTHC, an RTF to HTML converter, built with that library and "l10n"able via gettext.
ULPGC/GCC, sometime in 2000
Basic HTML crash course given for the Gran Canaria Campus student organization.


Technical article book
"El camino a un mejor programador" (Spanish only), published Nov 2012 under a Creative Commons license. Also available on Leanpub. It's a collection of technical articles, mostly on software quality and automated tests, written with two colleagues. I wrote three of the articles, about functional languages, common testing problems and about the meaning of software quality.
Essay about technology
"Reflexiones sobre la tecnología", from Nov 2002
Shell programming tutorial
"Manual de programación en shell", from Nov 1998
Linux survival guide
"Curso básico de supervivencia en Linux", from Nov 1998
VI tutorial
"Otro tutorial de VI más" ("Yet Another Vi Tutorial"), from Dec 1998

Spare Time

Pet Projects


RoboHydra testing tool written in JavaScript, using Node.js. It's a web server that makes it easy to write mock servers to test HTTP-based clients, do exploratory testing, prototyping, etc. Initially developed for an Opera project, later open sourced as it's completely generic. The code is available on GitHub and its tests are written in Buster.


Simple personal wiki system written in JavaScript, using Node.js and the express web development framework. Written to learn about "serious" Node development, plus I couldn't find any personal wiki written in JavaScript I liked. The tests are written using Test’em so they run on the browser and not Node.js. The code is available on GitHub.


Online storytelling system written in Elm and JavaScript, using Node.js and the express web development framework for the backend.

Map discoverer
Simple JavaScript (ES6) application to "uncover" an image (normally, some kind of map) bit by bit. I used it mostly to learn basic ES6, basic Canvas usage and some CSS tricks. See map-discoverer on GitHub.
Music Explorer
A small experiment in JavaScript (ES6) to learn and explore music theory, with the aid of a piano that shows scales and chords visually on the keys. I used it mostly to learn a bit more music theory, a bit more ES6, and React. See music-explorer on GitHub.
Photo Memories
Simple Clojure application that connects to the Flickr or the Trovebox API and fetches old pictures to send them via e-mail every week ("in a week like this, x years ago, you were doing this"). It uses a RoboHydra-based mock of the Flickr/Trovebox API server for the tests. See clj-flickr-memories on GitHub.
Simple Sudoku solver written in Clojure/ClojureScript. The idea is not solving the sudoku fast, but solving it using the same techniques a human would use, and show the steps. Most of the functionality is written so that it can be used on the server side or the client side, and on top of it there's a static web UI written in ClojureScript and using React/Om.
Old Opera extensions
I have written several Opera 12 extensions, basically for fun and as a learning experience. The only relevant one is Meme panel (GitHub), not so much because of what it is (a simple client for the MemeGenerator API), but because it uses RoboHydra for the tests.
Two-Thousand Forty Eight

Simple clone of 2048 written in ClojureScript. The main point was to learn React/Om, so many elements are missing (like the score).

Debian Work


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.