Francisco Javier Palacios PérezFco. Javier Palacios Pérez
Desarrollador de software

Francisco Javier Palacios Pérez

Últimas publicaciones del blog

Iteración y refinamiento: el diálogo con la IA
Aprende a refinar respuestas de IA sin perder el objetivo: cuándo iterar, cuándo empezar de cero y cómo mantener conversaciones largas bajo control.
Scope y namespaces en Python: dónde viven tus variables
Entiende scope local, global, funciones anidadas, global, nonlocal y por qué Python a veces parece esconder tus variables por deporte.
Por qué necesitamos bases de datos
Antes de escribir tu primera query, entiende qué problema resuelve una base de datos: persistencia, relaciones, concurrencia, consultas y garantías reales.
Presentación del curso SQL: de cero a DBA
¿Tu ORM genera una query lenta y tú solo puedes mirarla con fe? Este curso gratuito te lleva de cero a SQL, PostgreSQL y criterio de DBA.

Sobre mí

¡Hola! Todo el mundo me conoce como Javi y soy un amante de la tecnología. Desde que era un niño me apasionan los ordenadores y, en general, cualquier aparato tecnológico. Desde que empecé a programar siendo bien pequeño supe que quería seguir haciéndolo durante el resto de mi vida; si además puedo convertir mi mayor afición en mi oficio será un sueño cumplido.

En mis proyectos personales he aplicado la mayor parte de prácticas que se recomiendan en Extreme Programming Explained, de Kent Beck; también los conocimientos adquiridos leyendo Clean Code, de Robert C. Martin y Refactoring de Martin Fowler y Kent Beck. Comparto totalmente la idea de escribir un código del que puedas sentirte orgulloso.

Me considero una persona autodidacta, y junto con lo que me ha aportado mi formación académica, me siento preparado para trabajar en equipo usando tecnologías actuales haciendo hincapié en el uso de buenas prácticas. Mi principal característica es la pasión por lo que hago y muchas ganas de aprender cada día algo nuevo.

Experiencia

Dic 2024 - Presente
Automatización y Plataformas
Madrid (remoto)
Automatización de procesos operativos con StackStorm y Dolphin (Python, Bash). Integración con PagerDuty API y MQTT para respuesta reactiva ante incidencias. Testing unitario riguroso, documentación exhaustiva y definición de estándares en producción.
Automatización de procesos operativos y de plataforma mediante los motores StackStorm y Dolphin, con el objetivo de transformar tareas manuales y repetitivas en flujos orquestados, auditables y fácilmente escalables. Diseño y desarrollo de automatismos principalmente en Python (tipado) y Bash Scripting, poniendo el foco en la fiabilidad, la trazabilidad y la reducción de tiempos de respuesta ante incidencias.

Integración profunda con la API de PagerDuty para orquestar webhooks, obtener estadísticas y métricas operativas y alimentar paneles y flujos de alerta que permitan tomar decisiones en tiempo casi real. Creación de automatismos basados en eventos mediante la suscripción a topics de servidores MQTT, de forma que determinados cambios en la infraestructura disparan acciones correctivas o preventivas sin intervención humana.

Documentación detallada de procesos y flujos de automatización, definiendo estándares, buenas prácticas y convenciones para que otros equipos puedan entender, reutilizar y extender el trabajo realizado. Implementación de baterías de tests unitarios en scripts complejos, críticos y de alto impacto, siguiendo una filosofía muy cercana a TDD siempre que es posible: cuanto más automatizado y probado, mejor duerme todo el mundo.

Trabajo diario en estrecha colaboración con equipos de desarrollo y de sistemas, buscando que la automatización no sea solo "hacer scripts", sino una forma de alinear cómo se diseñan los procesos, cómo se monitorizan y cómo se reaccionan las incidencias. El objetivo: menos tareas manuales, menos errores humanos y más tiempo para que los equipos dediquen su energía a aportar valor y no a apagar fuegos.

Principales lenguajes de programación: Python (tipado) y Bash Scripting.
Principales herramientas y plataformas: StackStorm, Dolphin, PagerDuty (API), MQTT, Linux.
Pilares del trabajo: automatización, observabilidad, testing y documentación.
Abr 2024 - Dic 2024
Full Stack Developer
Vigo (remoto)
Backends en Typescript (Nest.js) y Python (FastAPI) con REST/OpenAPI. MongoDB y ElasticSearch para alto tráfico. Desarrollo en PHP (Laravel 11) y React. Creación de productores y consumidores de Kafka para conectar 11 microservicios.
Mantenimiento y creación de backends para API tanto en Typescript (Nest.js) como en Python (FastAPI) siguiendo la arquitectura REST y la especificación OpenAPI; todo ello documentado con Swagger para un correcto entendimiento del API por parte de todos aquellos que la puedan consumir. Como base de datos: MongoDB para almacenar información y ElasticSearch para una consulta más rápida con cache para proyectos con un alto número de peticiones a la base de datos.

Mantenimiento y desarrollo de nuevas funcionalidades en una aplicación escrita en PHP (Laravel 11), realizando tareas tanto de backend como de frontend, haciendo además peticiones a APIs externas mediante Guzzle.

Mantenimiento y desarrollo de nuevas funcionalidades en una aplicación escrita en JavaScript (React).

Hito destacado: creación de productores y consumidores de Apache Kafka (Azure Event Hubs) para conectar mediante eventos 11 microservicios, usando para ello node-rdkafka en Typescript (Nest.js) y fastavro en Python (FastAPI). Creadas también suites de tests (unit/e2e) de todos los servicios.

Principales lenguajes de programación: Python (tipado), JavaScript/Typescript y PHP.
Herramientas de testing utilizadas: Pytest (Python), Jest (JavaScript/Typescript) y PHPUnit (PHP).
Mar 2020 - Ene 2024
SRE / DevOps
Valencia (remoto)
Herramientas de automatización (Python, Bash) y orquestación (Concourse, GitHub Actions). Dockerización de proyectos y estandarización de código con testing exhaustivo. Visualizador de logs centralizado (Promtail, Loki, Grafana). Gestión de máquinas Linux con SaltStack y Terraform.
Facilitar sinergias y trabajo entre equipos de desarrollo y de sistemas mediante la automatización, pruebas (TDD y BDD) y dockerización de proyectos para que todo el mundo trabaje de forma eficiente y minimizando la aparición de errores. Estandarizaciones de código para asegurar la calidad y homogeneidad del mismo. Testing, testing y más testing; la clave de todo. Mentorización a recién llegados, supervisando PRs, enseñando la filosofía de la empresa y haciendo de guía tanto durante el proceso de onboarding como posteriormente.

Visualizador centralizado de logs de todas las máquinas de la empresa, mediante el uso de los servicios Promtail, Loki y Grafana, a través del cual no sólo se podían monitorizar los servicios de las máquinas sin entrar a la propia máquina en sí sino también crear paneles y alertas que puedan avisar mediante un canal de comunicación si se detecta que algo no funciona bien.

Herramienta creada en Django con django_rest_framework (api), celery (gestión de colas) y gui (JS, HTML y CSS) para automatizar y agilizar el proceso de creación de máquinas para clientes.

Principales lenguajes de programación: Python (tipado), Bash Scripting y JavaScript/Typescript.
Principales herramientas de sistemas utilizadas: Terraform (HCL) y SaltStack (yaml, jinja).
Principales herramientas de orquestación: Concourse y GitHub Actions.

Configuración y gestión de servicios en entornos Linux (CentOS y Ubuntu)
Mar 2019 - Feb 2020
Full Stack Developer
Paterna
Desarrollador web full-stack (MEAN Stack)
Desarrollador web full-stack (MEAN Stack)
Ene 2010 - Jun 2010
Web Developer
Murcia (remoto)
Diseñador gráfico y desarrollador web. Mantenimiento y administración de un VPS
Diseñador gráfico y desarrollador web. Mantenimiento y administración de un VPS
CP San Luis
Sep 2008 - Jun 2009
Profesor
Buñol
Profesor de informática para niños de todos los cursos de primaria
Profesor de informática para niños de todos los cursos de primaria
Jepsi
Ago 2004 - Ene 2007
Ops
Castellón (remoto)
Atención al cliente, resolución de problemas técnicos e instalación de software en entornos Linux
Atención al cliente, resolución de problemas técnicos e instalación de software en entornos Linux

Educación

2017 - 2019
Cheste
Técnico superior, Desarrollo de aplicaciones multiplataforma (EQF 5)
Técnico superior, Desarrollo de aplicaciones multiplataforma (EQF 5)

Trabajos como freelance

josemariatena.es
Página estática de presentación con formulario de contacto
profesionaldelapsicologia.es
Página web de presentación del gabinete psicológico y sus servicios
numismaticallamas.es
Tienda online de venta de monedas, billetes y medallas

Proyectos personales

sargantanacode.es
Aplicación web para enseñar a programar
Actualmente todo el contenido de esa web ha sido migrado a fjp.es
Página web personal y blog
Es además una aplicación de código abierto; código disponible en GitHub

Voluntariado

VOST Euskadi
Feb 2018 - Oct 2018
Aplicaciones backend y frontend para gestión de emergencias

Charlas / talleres

HTML5: el lenguaje de la web
14 Dic 2018
Cheste
Taller en La hora del código
Taller en La hora del código