Santiago Capel Torres

Career Profile

I have worked for many years as senior developer, database administrator and systems administrator. I have maintained myself apart from most of the trends but the ones that made me enjoy working as a computer engineer. When I had to update my knowledge, I did it. But I am still and I will allways be a happy coder of good languages.

Main achievements

Programming

Computer Aided Programming

I've developed an extensible C++ library to generate code for the whole life of the project for different languages and environments:

  • Models and Forms for C++/Qt database applications
  • Laravel models, controllers, tests and factories.
  • Laravel RESTfull API models and controllers
  • Yii2 models, controllers and views
  • Yii2 restFull API models and controllers
  • Building of whole MVC applications in both Yii2 and Laravel.
  • Strong knowledge and use of the OOP features of PHP: extension, interfaces and traits.
  • Use of reflection to autodocument APIs
  • Advanced use of Yii2 and Laravel: new database drivers, modules and extensions, external libraries.
  • Contribution to the wp-cli project (PR pending)
  • Contribution to Yii2 (PR pending)
  • Building of whole MVC applications with Qt and Boost.
  • Library to autogenerate code for any language/framework.
  • Reports engine with a smart OO design.
  • Advanced use: templates, closures, etc.
  • Knowledge of the language features of JavaScript.
  • Development of MVC applications with advanced use of the Bootstrap CSS framework.
  • Learning ReactJS.

Database development and administration

  • Implemented lacking DDL statements of Sqlite3 (ALTER TABLE ... CHANGE COLUMN, etc.) as an extension of Yii2
  • Laravel database connector to query old MySQL 4 server, written in PHP and C++,
  • C++ library to build database applications from native MySQL, Sqlite3 and PostgreSQL database drivers,
  • Lots of importers/exporters from/to CSV, Excel, msyqldump, XML, Seeders from/to MySQL, dBase and Sqlite3.
  • automysqldump
  • Script to backup entire sites dumping their databases automatically
  • Use of SELECT EXPLAIN to optimize long queries


Working experience

Senior Developer

2014 - 2018
Hola mundo. Murcia, Spain

As a developer, my day-to-day tasks consisted of building the basic blocks of MVC appliations:

  • Analysis and implementation of requirements,
  • Database design and migrations, both with MySQL and Sqlite3,
  • Autogeneration of models and controllers, both with Yii and Laravel,
  • Creation of modules and extensions common to all applications,
  • Building our own tools for deploying,
  • Creation of tests trying to get close to test-driven development.

As a database administrator, my day-to-day tasks consisted of:

  • Taking care of database backups and integrity,
  • Building adaptors between different RDBMS to keep our client's legacy systems up and running,
  • Developing a number of import/export processes,
  • Optimizing database performance.

As a Linux systems administrator, my day-to-day tasks consisted of:

  • Taking care of system backups using dar,
  • Administering our servers on Strato, Bluehost and Ionos with some Plesk and a lot of ssh,
  • Setting up applications on our servers for our own productivity, like redmine, github, apache, …

Senior Developer

2009 - 2010
Gnoxys, Madrid

Developed applications using Ruby on Rails.

Junior Developer

2004 - 2006

Developed internal apps in PHP. At that time, PHP frameworks were at their early stages, so I developed one from scratch very similar to Smarty.

Built a number of reports from different data sources: dBase files, MS Access databases and machine generated data from calling center machines.

Main Developer

1999 - 2001

I took control of the whole previously outsourced management and academic software written in MS Visual Basic and gradually ported it to Java.

Projects

Although most of my career I have worked for companies that did not share their code, I have struggled to have some projects on the public domain:

CAPEL (not public) - A system to generate whole apps for Laravel and Yii2 developed with C++.
yii2-sqlite3-full-support - An inmplementation of the lacking DDL features of sqlite3 for Yii2.
yii2-churros - A skel for Yii2 applications in order to build them como churros (an Spanish expression to denote an automated and fast way of building something)
GestiONG - A C++ application for the management of NGO's.
GongLib - A C++ multi-purpose library using std, boost, mysql, sqlite, postgresql, Qt and built with GNU Autotools.
RTK::reports - A report generation engine with an outstanding Object Oriented design than can build reports to several destinations from several sources.


Skills & Proficiency

C++, C and the like

PHP

Yii2

Laravel

Qt & Kdevelop

Javascript & jQuery

Angular & EmberJS

HTML5 & CSS & Bootstrap

You can see the latest version of this document in http://santilin.noviolento.es/cv