Esta página presenta un resumen de los principales proyectos profesionales en los que he participado, principalmente como desarrollador, bien solo o en colaboración con otros compañeros, normalmente en pequeños equipos. Esta revisión es fundamentalmente gráfica, con algunos comentarios de los proyectos al respecto, intentando asegurar al máximo posible la privacidad y propiedad de los productos desarrollados.
This page presents a summary of the main professional projects in which I’ve been involved, mainly as a developer, alone or in collaboration with other colleagues, normally in small teams. This review is basically graphical, with some comments about the projects, trying to protect as much as possible the provacy and property of the developed products.
DEVOPS TOOLS (2016-2017)
Due to my initiation with the DevOps world and release management while working for different bank firms as GFT employee (see my CV for further information), I developed a set of internal tools to ease, speed up and enable certain tasks as part of different DevOps processes. Most of these tools were simple scripts developed in different languages (python and shell mainly) and were used internally in concrete activities, but others were more complex developments which ended up in the creation of powerful long-term useful tools. These are the most significant developed by me during this period:
TeamCity API REST client
TeamCity has been one of the most used CI server during my DevOps activities. It offers the possibility to invoke its different features via a set of REST web services. Many of the tasks involving TeamCity were recurrent and tedious. They can be programmed, scheduled and speeded up using this client.
The client is a standalone Java application. It implements different TeamCity features. It can be run from a command line or within scripts, other job configurations, etc. it is implemented using Java 8 and Jersey. It makes use of XML to parse the data between the client and the REST API. To process the XML it applies JDOM.
Usage: java -jar tc-client.jar <username:password> <operation> [<parameters> | -f:<inputfile>]
Oracle validator maven plugin
Maven is one of the most extended build tools, used intensively within the projects where I’ve been involved. In order to use its features on the software projects and considering its spread all over the different development environments, a set of plugins has been developed to enhance its characteristics. These plugins focus on deifferent tasks that are part of several SDLC processes, like validations, data retrieval, report generation, etc. These taks are ideal to be automated or enabled to be used by different stakeholders and from different environments. Therefore, the use of Maven plugins allow them to be easily run and well distributed.
One of the most sofisticated developed plugins is used to validate the content of the Oracle artifact, which is the software component that is in charge of applying the database changes on an Oracle relational database. This plugin applies certain predefined rules to the Oracle content (sql and pl/sql scripts plus xml configuration files) in order to check its compliance with the defined quality gate rules, based on mandatory requirements and best practices.
The plugin is developed in Java 8. It makes use of different design patterns like Factory, Command, Facade and apply Java regular expressions and Ant-like path patterns to improve the way in which the plugin works. A XML file is used to configured the set of rules to be applied. It can be used as a Maven plugin or as a standalone application.
<!– Validation rules –>
<!– For DDLs and DMLs, check that first line is equal to included pattern (avoid blank spaces and other chars before) –>
line=”1″ id=”checkContent” fileExt=”sql” msgType=”error”
errMsg=”First line must be ‘–liquibase formatted sql’” contentPattern=”^–liquibase formatted sql( )*$”>
<!– Include paths –>
<inPatternPO config-class=”com.db.volcker.sdlc.oracle.domain.PatternPO” id=”1″/>
<inPatternPO config-class=”com.db.volcker.sdlc.oracle.domain.PatternPO” id=”3″/>
MOMS (2014 – 2015)
This project was develped while being employed at Indra. The project is part of a major mangement, rating, invoicing and control system for toll highways explicitly developed for different routes in Mexico. MOMS is the monitoring and alarm system component. Its main tasks are remote monitoring, alarm management, scheduled monitoring, equipment management, GIS view, search and report tooling, etc. It is composed of different web and enterprise applications, implemented in Java and related technologies.
|Data visualization, graphical user interfaces, web, charting, data-grids.|
|Geospatial information, data visualization, im|
OCRs (2011 – 2015)
These are several projects and related works also developed while being hired in Indra. The projects are part of major software products also involved in toll highway management systems. The OCRs are the components that read the vehicle license plates from images, process the readings through different selection algorithms and pick the best options in order to assing a plate to those vehicles without electronic tag. This is especially used in freeflow highways. The main tasks here were to make use of different OCR engines, develop algorithms, deploy and install OCR software, tune OCR algorithms, generate result reports, etc.
|Motores de OCR, software nativo, interfaces nativas, librerias de SO, procesamiento asíncrono.|
JRC-IE projects (2005 – 2009)
While working for the JRC within the European Commission I was involved in the development of several IT projects. Most of them were dynamic or enterprise web applications connected to relational databases. Those applications were used within different scientific projects related to material engineering, nuclear safety, clean energies (hydrogen). These apps were used by the scientific community and project stakeholders to store, access, deliver and process scientific data and most of them were of public domain for the scientific community.
Some of these applications are Mat-DB (material engineering) , DoMa (Document management), SENUF (nuclear safety), HIAD (hydrogen accident database), Find-an-expert (nuclear knowledge), etc.
|Enterprise application, data visualization, data entry, scientific data, rich user interface.|
|Web/Enterprise applications, dynamic applications, charts, data visualization, scientific data, calculations.|
|Management applications, international applications, web enabled.|