ES
EN

Sobre mí

Nací y resido en Tenerife y desde niño, sentí curiosidad por entender cómo funcionaban las cosas, desmontando todo lo que caía en mis manos. Hoy, tengo la suerte de dedicarme a lo que siempre soñé. Amo mi profesión, tanto que se entrelaza con mi hobby y me cuesta trazar una línea divisoria, y cada domingo, cuando no me importa que llegue el lunes, me siento muy agradecido, afortunado y feliz.

Estudié Ingeniería Informática y me especialicé en Ingeniería de Computadores. Durante mi formación, exploré el fascinante mundo de los sistemas empotrados, la robótica y los ensambladores, descubriendo cómo la magia del software cobra vida desde la electrónica hasta el sistema operativo, algo que siempre quise comprender.

Sin embargo, terminé mis estudios con escasos conocimientos sobre el desarrollo web. Quería cambiar eso, tanto por curiosidad como por la necesidad de adaptarme a las tendencias del sector. Comencé a explorar esta rama de forma autodidacta y finalmente decidí dar el salto y matricularme en el Máster Universitario en Ingeniería Informática - Desarrollo Full-Stack . Hoy, me alegro enormemente de esa decisión, pues descubrí una nueva pasión en el desarrollo Full-Stack. ¿Qué es eso?

Habilidades y competencias

Habilidades principales

Java EE (Spring, Quarkus) NodeJS (Express, Moleculer, Nest) VueJS Angular Javascript (Typescript) Docker Ionic Python (Flask, Django) SQL Templates (JSP, Freemarker, Thymeleaf) REST Git Scrum

Puedo desenvolverme solo

C / C++ / C# MongoDB React Microservicios CSS3 (SaSS) Unity Ruby Qt .NET Android (Java) Swing Bash SOAP Jekyll ETL (Talend, Pentaho) PHP Linux Arduino

Tengo algunas nociones

iOS (Objective-C) Swift Ansible Lenguaje ensamblador Posicionamiento SEO TensorFlow WebGL Computación paralela (MPI)

Experiencia

Ingeniero de software - Desarrollador Full Stack

2020 - Actualidad
Avantic Estudio de Ingenieros

Diseño y desarrollo de software y aplicaciones móviles, tanto para organismos públicos como clientes privados.

  • SUSTRATO (Sistema Unificado para la Tramitación Pública): Aplicación web dividida en varios módulos que da soporte a las labores de tramitación electrónica dentro de la Autoridad Portuaria de Santa Cruz de Tenerife.
  • Java (Spring), Oracle SQL, JSP, Javascript, jQuery, Bootstrap, Docker, Git, Jira, OpenProject
  • PLAE (Plataforma de Administración Electrónica): Sistema integral de administración electrónica sobre el que se apoya SUSTRATO, compuesto por múltiples subsistemas y aplicaciones críticas (registro de entrada, sede electrónica, portafirmas, gestor de expedientes, entre otras). PLAE es un proyecto heredado de elevada complejidad con problemas técnicos y funcionales significativos. El reto ha sido reescribir y sustituir progresivamente sus componentes sin interrumpir en ningún momento el servicio.

    Entre los múltiples casos de éxito conseguidos en PLAE, destaca el desarrollo de un repositorio documental para reemplazar Alfresco. Se diseñó e implementó un sistema propio desde cero, seguido de un migrador de datos a gran escala usando técnicas de paralelización. La transición se realizó sin interrupciones y de manera totalmente transparente para los usuarios, cumpliendo con plazos estrictos y eliminando por completo las incidencias recurrentes del sistema anterior.

    Además, PLAE me ha brindado experiencia en la integración con diversos sistemas de organismos públicos, tales como DEHú o GEISER, entre otros.

  • Java (Spring, Quarkus, EJBs), Swing, Oracle SQL, JSP, Javascript, jQuery, Angular, Vue, Bootstrap, Docker
  • FredOlsen App: aplicación de Fred Olsen para Android e iOS.
  • Volcano-TPV: desarrollo de aplicación para un puesto de venta desatendido para realizar la compra de billetes y experiencias en el teleférico del Teide.
  • NodeJS, Ionic, Java, Bootstrap, Docker

Desarrollador Full Stack

2019 - 2020
MetroTenerife (Metropolitano de Tenerife, S.A.)

Compaginé mis estudios de Máster con una beca de inserción laboral en MetroTenerife. Mis principales actividades en la empresa fueron:

  • Proyecto SIMOVE: (Sistema de Monitorización de Velocidad de Embarcado). De forma concisa, SIMOVE es al tranvía lo que la caja negra a un avión, aunque además de registrar datos el sistema puede intervenir para frenar el vehículo bajo determinadas condiciones. Colaboré en el desarrollo del back-office de la aplicación, implementando nuevas funcionalidades o corrigiendo u optimizando otras ya existentes.
  • C/C++, Java (Spring), Oracle SQL, Javascript, Bootstrap
  • Proyecto Chronos: creación de una aplicación web desde cero para sustituir diversas aplicaciones obsoletas y unificar el trabajo de todos los departamentos de la empresa, así como obtener indicadores de interés para la gerencia. El proyecto consistió en una fase de ETL para estudiar e integrar las diferentes fuentes de datos, actividad que realicé bajo la supervisión de mi tutor debido a la gran complejidad y criticidad de los mismos, y una fase de desarrollo back-end y front-end que realicé con mayor autonomía.
  • Java (Spring Boot), MariaDB, Javascript, Bootstrap, SQL Server, Talend
  • Desarrollo de formularios .NET para la intranet de la empresa, usados cada día por todas las oficinas y sus clientes.
  • .NET, Visual Basic

Becario de TI

2018 - 2019
Oficina de Software Libre de la Universidad de La Laguna

Compaginé mi último año de estudios del grado con una beca de colaboración en la Oficina de Software Libre. Mis tareas principales consistían en:

  • Desarrollo de una web, plugins y temas personalizados en Wordpress desde cero.
  • Atender y prestar servicio técnico u orientación a cualquier persona que se dirijiese a la oficina siempre que la consulta estuviese relacionada con Linux y software libre.
  • Velar por el correcto funcionamiento de las aulas de informática y solucionar incidencias técnicas en equipos individuales, servidores y equipos de red.
  • Tutorizar un curso online sobre Linux al resto de becarios, atendiendo sus dudas, así como impartir algunas charlas técnicas y divulgativas.
  • Colaborar en la organización de eventos y congresos, como el PyDay Tenerife o el Congreso de Estudiantes de Ingeniería Informática
Wordpress, PHP, Javascript, Bootstrap, Linux, Bash, Python

Cursos / Certificaciones

Me encanta aprender y seguir mejorando constantemente. Siempre busco adquirir nuevas habilidades y conocimientos incluso en áreas que no me entusiasman tanto si considero que estas son clave para crecer profesionalmente y hacer mejor mi trabajo.

  • Professional Scrum Master (PSM I)
  • Scrum.org
    Certificación oficial nº 1188670
  • Desarrollo y programación de Aplicaciones Android
  • Instituto Europeo de Estudios Empresariales
    125 horas (5 ECTS)
  • HTML5 de principiante a experto
  • Universidad de La Laguna
    20 horas (2 ECTS)
  • Programación web con Javascript
  • Universidad de La Laguna
    20 horas (2 ECTS)
  • CSS3 de principiante a experto
  • Universidad de La Laguna
    20 horas (2 ECTS)
  • La administración electrónica
  • Universidad Nebrija
    150 horas (6 ECTS)
  • Gestión de la innovación (N1)
  • Universidad de La Laguna
    3 ECTS
    Ver más (cursos de carácter no oficial)

    Mis Proyectos

    Estos son algunos de mis proyectos, tanto académicos como personales, que he desarrollado por aprendizaje, curiosidad o simplemente por diversión.

    Portafirmas digital - Portafirmas digital integrado con Autofirm@.
    Ceres - Monitorización de temperatura, humedad, humedad del suelo y agua empleada para huertos caseros, con control automático del riego y visualización web.
    Control de fichaje - Aplicación para gestionar el fichaje de los empleados.
    IOMapper - Generador de clases en Java a partir de un diagrama de relación hecho en Draw.io, una pequeña herramienta que me ayuda a agilizar el comienzo de mis desarrollos.
    Cloud-detector - Sistema de detección de intrusos mediante machine learning basado en computación en la nube.
    Eat-Tac-Toe - Tres en raya multijugador con chat que da una vuelta de tuerca a las reglas para complicar la estrategia de juego.
    kut1t - Acortador de enlaces. Un proyecto sencillo pero muy interesante, ya que siempre me había preguntado cómo funcionan.
    Lemon - Una pequeña librería MVVM de programación declarativa inspirada en Vue o React. No pretende ser una librería de uso en producción, siendo simplemente el resultado de curiosear y jugar con la tecnología.
    Proyecto de fin de máster - Aplicación para monitorización y tratamiento de pacientes con síndrome de intestino irritable (calificado con Sobresaliente 10).
    Proyecto de fin de carrera - Sistema de asistencia a la conducción mediante el procesamiento de imágenes procedentes de una dash cam utilizando redes neuronales y técnicas de visión por computador (calificado con Sobresaliente 9,9).

    Un poco más sobre mí

    ¿En qué áreas concretas estoy más interesado últimamente y por qué?

    Con el tiempo, mi interés por la ingeniería del software ha ido creciendo. Aquella asignatura universitaria sobre patrones de diseño y arquitectura, que en su momento parecía teórica y abstracta, cobró todo el sentido cuando empecé a enfrentarme a desafíos reales en el mundo laboral. Tuve la suerte de conocer pronto a grandes expertos, donde pude ver de primera mano cómo un software bien diseñado crece y se adapta a nuevos requisitos con facilidad, sin generar efectos inesperados.

    Los desarrolladores tenemos algunos términos, como acoplamiento o código spaghetti (creo que este último es bastante gráfico), pero la idea central es simple; el software debe ser robusto y adaptarse a los cambios con facilidad, sin sorpresas ni efectos colaterales.

    Con el tiempo, he comprendido que hay una gran diferencia entre escribir código y construir software. Cualquier persona con curiosidad puede aprender a programar en poco tiempo, pero diseñar aplicaciones de gran tamaño que resulten escalables y mantenibles requiere experiencia, y una visión global del sistema. Es algo que encuentro apasionante y que espero aprender poco a poco a lo largo de mi carrera profesional.

    Algunas de mis citas favoritas

    - A menudo se piensa en un programador como alguien que pasa largas jornadas solo y que no interactúa con otras personas. Cuando se desarrolla un software en equipo, la programación es en realidad una actividad social. Las tres C del desarrollo de software son comunicación, comunicación y comunicación. Rara vez un proyecto fracasa por cuestiones puramente técnicas. - The pragmatic programmer.

    - Hay dos formas de realizar el diseño de una aplicación; la primera es el hacerlo tan sencillo que sea obvio que no tiene deficiencias y la segunda es el hacerlo tan complicado que no queden deficiencias obvias. - C.A.R. Hoare.

    - Que el código funcione y lo haga sin errores no es suficiente. El código debe ser robusto, elegante y fácilemente mantenible. Escribir código limpio es lo que te convierte en un desarrollador profesional. No existe ninguna excusa que justifique hacer menos que lo mejor que sepas. - Clean Code.

    - Debes buscar el progreso y el crecimiento. Trabaja siempre fuera de tu zona de comfort y cuando comiences a estar cómodo, avanza y busca nuevos retos. A menudo la gente confunde diez años de experiencia con un año de experiencia repetido diez veces. - Anónimo.

    - La optimización prematura es la raíz de todos los males. - Donald Knuth.

    - No tengo talentos especiales. Solo soy apasionadamente curioso. - Albert Einstein.