IEM

Ir a…

Imad El Malki Jaddi

Desarrollador de software · Angular, Java y proyectos propios

[ES]La Gornal · Barcelona, Cataluña
Imad El Malki Jaddi

Sobre mí

Trabajo como desarrollador de software con Angular y Java. También creo mis propias aplicaciones para resolver necesidades reales, como planificar carreras o entender mejor mis gastos. Me gusta construir con calma, probar bien las cosas y dejar un código fácil de mantener.

Leer sobre mí

Experiencia laboral

  1. VIEWNEXTSubsidiaria de IBM

    Angular Developer

    Actualidad

    Desarrollo aplicaciones Angular para el sector público con APIs y backends Java/Spring Boot.

    Detalles
    • Contribuyo a CIRNM, un sistema municipal relacionado con la gestión ambiental.
    • Desarrollo y mejoro SIVCA, integrado con MiNT para gestionar, validar y monitorizar los datos de calidad del aire de Madrid.
    • Implemento componentes, pantallas y nuevas funciones, mantengo la aplicación e integro APIs con los equipos Java y QA.
  2. INETUM

    Desarrollador web

    Desarrollo de aplicaciones internas y web en Inetum Catalunya, con herramientas low-code y tecnologías web.

    Detalles
    • Desarrollé aplicaciones empresariales con Microsoft Power Apps.
    • Creé cuadros de mando e informes con Microsoft Power BI.
Antes de programar · 2015–2023
  • Mozo especialistaToende · Fabricación · 2022–2023
  • Operario de producción y almacénLaineblock · Industria · 2022
  • Operario de fábricaKettal · Mobiliario · 2021
  • Operario de degüelle (champagel)Pere Ventura · Cava · 2018–2020
  • Operario de envasadoPastisart · Alimentación · 2018
  • Operario de envasadoVacu Vin · Países Bajos · Fabricación · 2017
  • Empleado de cocinaMcDonald's · Países Bajos · Hostelería · 2017
  • Mozo de almacénLeen Menken · Países Bajos · Logística · 2016–2017
  • Operario de mantenimientoReverté Productos Minerales · Industria · 2016
  • Operario agrícolaVD Holland · Países Bajos · Agricultura · 2016
  • Operario agrícolaViticultura Planas 1916 · Agricultura · 2015
  • Agente de atención al clienteIberdrola · Energía · 2015

Otras habilidades · Programas ofimáticos · Reparación de equipos · Carretilla elevadora

Proyectos

  • Amazon Spending Tracker

    Publicado

    Reconstruye tus compras desde los correos de Amazon, evita pedidos duplicados y calcula el gasto anual.

    amazonspendingtracker.com

    Amazon Spending Tracker

    Publicado
    • Gasto anual y desglose por mes
    • La misma vista en tema claro
    • Últimos pedidos, con reembolsos y suscripciones aparte
    • Revisión manual de los importes que el correo no deja leer
    • Conexión con Gmail, con permiso de solo lectura

    Extensión Chrome MV3 que calcula y desglosa el gasto anual en Amazon desde las confirmaciones de Gmail, con OAuth de solo lectura, deduplicación y almacenamiento local.

    • Deduplicación por número de pedido, para no contar dos veces los correos de una misma compra.
    • Sincronización incremental cada hora y escaneo completo semanal.
    • Exportación a .xlsx generada sin dependencias.
    • Interfaz en español e inglés; los datos no salen del navegador.
  • 100 Cims

    Proyecto personal

    Reúne las cimas del reto 100 Cims en un catálogo con fichas, fotografías y datos preparados automáticamente.

    100 Cims

    Proyecto personal
    • Las 522 cimas del reto, con desplazamiento infinito
    • Modo tabla, con filtro y columnas ordenables
    • Detalle de una cima, con rutas y cómo llegar

    Aplicación sobre el reto de los 100 Cims de la FEEC. Usa Angular para consultar las cimas, una API REST con Spring Boot y PostgreSQL, y scripts en Python para recopilar y preparar los datos y las imágenes.

    • API REST con Maven y PostgreSQL 17 en contenedor.
    • Proceso en Python que recopila los datos de las cimas y los carga en la base de datos.
    • Descarga y optimización de las imágenes a WebP.
    • Restauración del conjunto de datos desde CSV.
    • Angular
    • TypeScript
    • Java
    • Spring Boot
    • PostgreSQL
    • Python
    • Docker
  • Race Hub

    En desarrollo

    Organiza tus carreras, calcula ritmos, splits y desnivel, y sincroniza recordatorios con Google Calendar.

    Race Hub

    En desarrollo
    • Carreras planificadas, ordenadas por cuenta atrás
    • Resumen de la carrera y cronograma del día
    • Parciales y ritmo calculados en el motor nativo
    • Descanso y desplazamiento, calculados hacia atrás desde la salida
    • Tema, diez acentos de color, idioma y unidades
    • La misma pantalla con otro acento seleccionado

    App Android con Capacitor y una interfaz en Svelte 5. La parte nativa en Kotlin se encarga de los datos, la sincronización y los cálculos de ritmos, splits y desnivel.

    • Room como única fuente de datos y WorkManager como único motor de sincronización con Supabase.
    • Ritmos, splits y desnivel calculados en Kotlin.
    • Sesión nativa con Credential Manager y calendario de Google.
    • Widget de inicio, recordatorios y alarmas nativas.
    • Capacitor
    • Svelte
    • TypeScript
    • Kotlin
    • Room
    • WorkManager
    • Supabase
  • Asistente Strava/Garmin

    Proyecto personal

    Procesa actividades de Strava y Garmin, las cruza con el plan y el clima, y publica un título y un resumen generados con IA.

    Asistente Strava/Garmin

    Proyecto personal
    • Portada pública, deliberadamente sin datos
    • Panel de carga y forma, con la tendencia de cada métrica
    • Rendimiento: preparación, predicciones y mejores marcas
    • Evolución de la carga aguda y crónica
    • Calendario de entrenamientos: lo planificado frente a lo realizado
    • Operaciones: cola, errores, registro y webhooks

    Worker de Cloudflare que recibe los webhooks de Strava, compara la actividad principal del día con el plan de entrenamiento y añade el clima y los datos de carrera. Después genera con IA el título y el resumen que publica en Strava.

    • Colas con reintentos y cola de mensajes fallidos, más cron horario y purga diaria.
    • Tokens de Strava cifrados con AES-GCM antes de guardarse en D1.
    • Panel de administración en React servido por el propio Worker.
    • Importación de archivos FIT de Garmin y streams de actividad guardados en R2.
    • Cloudflare Workers
    • D1
    • Queues
    • R2
    • React
    • TypeScript
    • Hono
    • Vitest
  • Race Spending Tracker

    Proyecto personal

    Detecta inscripciones de nueve plataformas en tus correos y PDFs, recupera sus importes y controla el presupuesto anual.

    Race Spending Tracker

    Proyecto personal
    • Próximas carreras, con lo que costó cada inscripción
    • Historial de las carreras ya disputadas
    • Gasto del año frente al presupuesto y euros por kilómetro
    • Cola de revisión para los correos ambiguos
    • Ajustes: alcance del escaneo, presupuesto y copias

    Extensión Chrome MV3 que calcula el gasto anual en inscripciones a carreras desde las confirmaciones de Gmail, con OAuth de solo lectura y almacenamiento local.

    • Adaptadores para nueve plataformas de inscripción.
    • Extracción acotada de texto de PDF para los importes que faltan en el correo.
    • Sincronización con reintentos, checkpoints y reanudación.
    • Presupuesto anual con aviso al acercarse al límite.
    • JavaScript
    • Chrome Extensions
    • Gmail API
    • OAuth
    • Playwright
  • CaixaBank Spending Tracker

    Proyecto personal

    Ordena y clasifica los movimientos a partir de los avisos del banco para mostrar tu gasto mensual con precisión.

    CaixaBank Spending Tracker

    Proyecto personal
    • Resumen del mes contra el presupuesto
    • Corregir la categoría de un movimiento y recordarla
    • Ajustes: alcance de la lectura y presupuesto mensual
    • Pantalla inicial, antes de conectar el correo

    Extensión Chrome MV3 que calcula el gasto mensual leyendo los avisos de CaixaBank en Gmail. Reconstruye el orden real de los movimientos encadenando saldos.

    • Orden real de los movimientos a partir de la cadena de saldos.
    • Deduplicación por identificador de mensaje y por saldo.
    • Reglas de categoría con aprendizaje local y promoción a código.
    • Sincronización incremental con margen para los avisos tardíos.
    • JavaScript
    • Chrome Extensions
    • Gmail API
    • OAuth
    • Playwright
  • Riolan Solutions

    Publicado

    Presenta los servicios, trabajos y vías de contacto de una empresa de lampistería y reformas en una sola web.

    Riolan Solutions

    Publicado
    • Portada, con las cinco especialidades de la empresa
    • Presentación de la empresa en tres compromisos
    • Los seis servicios, con la iconografía hecha a medida
    • Galería de obra, con 32 trabajos de la empresa
    • Contacto y pie, con el teléfono siempre a la vista

    Sitio corporativo de una sola página para una empresa de lampistería y reformas. Está hecho con WordPress y Elementor Pro e incluye sus servicios, una galería de trabajos y un formulario de contacto.

    • Identidad propia: paleta azul y morada, tipografías Poppins y Montserrat, e iconografía recortada a medida para los seis servicios.
    • Página única con cabecera fija, navegación por anclas y secciones de nosotros, servicios, trabajos y contacto.
    • Galería de 32 fotos de obra optimizadas a WebP.
    • Bloque de contacto con teléfono, urgencias 24 h y horario, más formulario con validación de campos.
    • WordPress
    • Elementor
    • PHP
    • HTML
    • CSS

Educación

  • Institut Camí de Mar

    Ciclo Formativo de Grado Superior en Desarrollo de Aplicaciones Web (DAW)

  • Institut de l'Arboç · Institut Manuel de Cabanyes

    Bachillerato en Ciencias y Tecnología

Certificaciones

17 certificados · 164 h · 5 emisores

Ver 13 más

Idiomas

  • EspañolNativo
  • CatalánNativo
  • ÁrabeNativo
  • Bereber (amazig)Nativo
  • InglésIntermedio altoB2

Habilidades

  • Angular
  • TypeScript
  • JavaScript
  • Java
  • Spring Boot
  • Power Apps
  • Power BI
  • HTML
  • CSS
  • React
  • Svelte
  • Kotlin
  • Cloudflare Workers
  • Astro
  • PostgreSQL
  • MySQL
  • Supabase
  • Docker
  • Git
  • GitHub

Hablemos

¿Tienes una vacante o un proyecto en mente? Escríbeme y hablamos.

imadelmalkij@gmail.comWhatsApp

Descargar el CV en PDF
Descargar .md

Imad El Malki Jaddi

Desarrollador de software · Angular, Java y proyectos propios

Contacto

Sobre mí

Trabajo como desarrollador de software con Angular y Java. También creo mis propias aplicaciones para resolver necesidades reales, como planificar carreras o entender mejor mis gastos. Me gusta construir con calma, probar bien las cosas y dejar un código fácil de mantener.

Experiencia laboral

VIEWNEXT · Subsidiaria de IBM

Angular Developer · julio de 2023 — Actualidad

Desarrollo aplicaciones Angular para el sector público con APIs y backends Java/Spring Boot.

  • Contribuyo a CIRNM, un sistema municipal relacionado con la gestión ambiental.
  • Desarrollo y mejoro SIVCA, integrado con MiNT para gestionar, validar y monitorizar los datos de calidad del aire de Madrid.
  • Implemento componentes, pantallas y nuevas funciones, mantengo la aplicación e integro APIs con los equipos Java y QA.

INETUM

Desarrollador web · mayo de 2022 — septiembre de 2022

Desarrollo de aplicaciones internas y web en Inetum Catalunya, con herramientas low-code y tecnologías web.

  • Desarrollé aplicaciones empresariales con Microsoft Power Apps.
  • Creé cuadros de mando e informes con Microsoft Power BI.
Antes de programar · 2015–2023
  • Mozo especialistaToende · Fabricación · 2022–2023
  • Operario de producción y almacénLaineblock · Industria · 2022
  • Operario de fábricaKettal · Mobiliario · 2021
  • Operario de degüelle (champagel)Pere Ventura · Cava · 2018–2020
  • Operario de envasadoPastisart · Alimentación · 2018
  • Operario de envasadoVacu Vin · Países Bajos · Fabricación · 2017
  • Empleado de cocinaMcDonald's · Países Bajos · Hostelería · 2017
  • Mozo de almacénLeen Menken · Países Bajos · Logística · 2016–2017
  • Operario de mantenimientoReverté Productos Minerales · Industria · 2016
  • Operario agrícolaVD Holland · Países Bajos · Agricultura · 2016
  • Operario agrícolaViticultura Planas 1916 · Agricultura · 2015
  • Agente de atención al clienteIberdrola · Energía · 2015
  • Otras habilidades — Programas ofimáticos · Reparación de equipos · Carretilla elevadora

Educación

Institut Camí de Mar

Ciclo Formativo de Grado Superior en Desarrollo de Aplicaciones Web (DAW)

septiembre de 2021 — mayo de 2023

Institut de l'Arboç · Institut Manuel de Cabanyes

Bachillerato en Ciencias y Tecnología

septiembre de 2017 — junio de 2019

Certificaciones

Idiomas

  • Español: Nativo
  • Catalán: Nativo
  • Árabe: Nativo
  • Bereber (amazig): Nativo
  • Inglés: Intermedio alto (B2)

Proyectos

Amazon Spending Tracker

Estado: Publicado

Extensión Chrome MV3 que calcula y desglosa el gasto anual en Amazon desde las confirmaciones de Gmail, con OAuth de solo lectura, deduplicación y almacenamiento local.

Tecnologías: JavaScript · Chrome Extensions · Gmail API · OAuth

Destacado:

  • Deduplicación por número de pedido, para no contar dos veces los correos de una misma compra.
  • Sincronización incremental cada hora y escaneo completo semanal.
  • Exportación a .xlsx generada sin dependencias.
  • Interfaz en español e inglés; los datos no salen del navegador.

Enlaces:

100 Cims

Estado: Proyecto personal

Aplicación sobre el reto de los 100 Cims de la FEEC. Usa Angular para consultar las cimas, una API REST con Spring Boot y PostgreSQL, y scripts en Python para recopilar y preparar los datos y las imágenes.

Tecnologías: Angular · TypeScript · Java · Spring Boot · PostgreSQL · Python · Docker

Destacado:

  • API REST con Maven y PostgreSQL 17 en contenedor.
  • Proceso en Python que recopila los datos de las cimas y los carga en la base de datos.
  • Descarga y optimización de las imágenes a WebP.
  • Restauración del conjunto de datos desde CSV.

Race Hub

Estado: En desarrollo

App Android con Capacitor y una interfaz en Svelte 5. La parte nativa en Kotlin se encarga de los datos, la sincronización y los cálculos de ritmos, splits y desnivel.

Tecnologías: Capacitor · Svelte · TypeScript · Kotlin · Room · WorkManager · Supabase

Destacado:

  • Room como única fuente de datos y WorkManager como único motor de sincronización con Supabase.
  • Ritmos, splits y desnivel calculados en Kotlin.
  • Sesión nativa con Credential Manager y calendario de Google.
  • Widget de inicio, recordatorios y alarmas nativas.

Asistente Strava/Garmin

Estado: Proyecto personal

Worker de Cloudflare que recibe los webhooks de Strava, compara la actividad principal del día con el plan de entrenamiento y añade el clima y los datos de carrera. Después genera con IA el título y el resumen que publica en Strava.

Tecnologías: Cloudflare Workers · D1 · Queues · R2 · React · TypeScript · Hono · Vitest

Destacado:

  • Colas con reintentos y cola de mensajes fallidos, más cron horario y purga diaria.
  • Tokens de Strava cifrados con AES-GCM antes de guardarse en D1.
  • Panel de administración en React servido por el propio Worker.
  • Importación de archivos FIT de Garmin y streams de actividad guardados en R2.

Race Spending Tracker

Estado: Proyecto personal

Extensión Chrome MV3 que calcula el gasto anual en inscripciones a carreras desde las confirmaciones de Gmail, con OAuth de solo lectura y almacenamiento local.

Tecnologías: JavaScript · Chrome Extensions · Gmail API · OAuth · Playwright

Destacado:

  • Adaptadores para nueve plataformas de inscripción.
  • Extracción acotada de texto de PDF para los importes que faltan en el correo.
  • Sincronización con reintentos, checkpoints y reanudación.
  • Presupuesto anual con aviso al acercarse al límite.

CaixaBank Spending Tracker

Estado: Proyecto personal

Extensión Chrome MV3 que calcula el gasto mensual leyendo los avisos de CaixaBank en Gmail. Reconstruye el orden real de los movimientos encadenando saldos.

Tecnologías: JavaScript · Chrome Extensions · Gmail API · OAuth · Playwright

Destacado:

  • Orden real de los movimientos a partir de la cadena de saldos.
  • Deduplicación por identificador de mensaje y por saldo.
  • Reglas de categoría con aprendizaje local y promoción a código.
  • Sincronización incremental con margen para los avisos tardíos.

Riolan Solutions

Estado: Publicado

Sitio corporativo de una sola página para una empresa de lampistería y reformas. Está hecho con WordPress y Elementor Pro e incluye sus servicios, una galería de trabajos y un formulario de contacto.

Tecnologías: WordPress · Elementor · PHP · HTML · CSS

Destacado:

  • Identidad propia: paleta azul y morada, tipografías Poppins y Montserrat, e iconografía recortada a medida para los seis servicios.
  • Página única con cabecera fija, navegación por anclas y secciones de nosotros, servicios, trabajos y contacto.
  • Galería de 32 fotos de obra optimizadas a WebP.
  • Bloque de contacto con teléfono, urgencias 24 h y horario, más formulario con validación de campos.

Habilidades

  • Angular
  • TypeScript
  • JavaScript
  • Java
  • Spring Boot
  • Power Apps
  • Power BI
  • HTML
  • CSS
  • React
  • Svelte
  • Kotlin
  • Cloudflare Workers
  • Astro
  • PostgreSQL
  • MySQL
  • Supabase
  • Docker
  • Git
  • GitHub