# Imad El Malki Jaddi

> Desenvolupador de programari | Angular, Java i productes full-stack

## Contacte

- **Ubicació:** La Gornal, Catalunya
- **Correu:** [imadelmalkij@gmail.com](mailto:imadelmalkij@gmail.com)
- **LinkedIn:** [imad-el-malki-jaddi-a0585a284](https://www.linkedin.com/in/imad-el-malki-jaddi-a0585a284/)
- **GitHub:** [ImadElMalki](https://github.com/ImadElMalki)

## Sobre mi

Desenvolupador de programari amb experiència professional en Angular i col·laboració amb backends Java/Spring Boot. En projectes propis construeixo productes d'extrem a extrem amb TypeScript, Kotlin, React, Svelte i serveis al núvol. M'interessa transformar problemes reals —inclosos el running i la productivitat personal— en aplicacions útils, mantenibles i ben provades.

## Experiència laboral

### [VIEWNEXT](https://www.viewnext.com/)

**Angular Developer** · febrer del 2024 — Actualitat

Desenvolupament i evolució d'aplicacions web per al sector públic amb Angular, integrades amb APIs i backends Java/Spring Boot.

- Participació en CIRNM, sistema municipal relacionat amb la gestió ambiental.
- Desenvolupament i evolució de SIVCA, sistema municipal integrat amb MiNT per gestionar, validar i monitorar dades de qualitat de l'aire de Madrid.
- Implementació de components, pantalles i noves funcionalitats, manteniment evolutiu i integració amb APIs en col·laboració amb equips backend Java i QA.

### [INETUM](https://www.inetum.com/es)

**Desenvolupador web en pràctiques** · maig del 2022 — maig del 2023

Desenvolupament web i de solucions empresarials low-code durant el període de pràctiques.

- Desenvolupament d'aplicacions empresarials amb Microsoft Power Apps.
- Creació de quadres de comandament i informes amb Microsoft Power BI.
- Desenvolupament web amb JavaScript, Laravel, HTML, CSS, jQuery i Bootstrap.

## Educació

### Institut Camí de Mar

**Cicle Formatiu de Grau Superior en Desenvolupament d'Aplicacions Web (DAW)**

setembre del 2021 — maig del 2023

## Idiomes

- **Castellà:** Natiu
- **Català:** Natiu
- **Àrab:** Natiu
- **Berber (amazic):** Natiu
- **Anglès:** Intermedi

## Projectes

### Amazon Spending Tracker

**Estat:** Publicat

Extensió Chrome MV3 que calcula i desglossa la despesa anual a Amazon a partir de les confirmacions de Gmail, amb OAuth de només lectura, deduplicació i emmagatzematge local.

**Tecnologies:** JavaScript · Chrome Extensions · Gmail API · OAuth

**Destacat:**
- Deduplicació per número de comanda, perquè els diversos correus d'una mateixa compra no se sumin dues vegades.
- Sincronització incremental cada hora i escaneig complet setmanal.
- Exportació a .xlsx generada sense dependències.
- Interfície en castellà i anglès; les dades no surten del navegador.

**Enllaços:**
- [Lloc web](https://amazonspendingtracker.com)
- [Chrome Web Store](https://chromewebstore.google.com/detail/amazon-spending-tracker/amejpfnehhohiffphbimdnilhjkpgfpb)

### 100 Cims

**Estat:** Projecte personal

Aplicació full-stack sobre el repte dels 100 cims de la FEEC: Angular per consultar els cims, API REST en Spring Boot amb PostgreSQL sobre Docker, i scripts en Python que recopilen, insereixen i optimitzen les dades i les imatges.

**Tecnologies:** Angular · TypeScript · Java · Spring Boot · PostgreSQL · Python · Docker

**Destacat:**
- API REST amb Maven i PostgreSQL 17 en contenidor.
- Procés en Python que recopila les dades dels cims i les carrega a la base de dades.
- Descàrrega i optimització de les imatges a WebP.
- Restauració del conjunt de dades des de CSV.

### Race Hub

**Estat:** En desenvolupament

App Android construïda amb Capacitor: la interfície és Svelte 5 en un WebView i un motor natiu en Kotlin posseeix les dades, la sincronització, la xarxa i el càlcul. Planifica curses, calcula ritmes i splits, consulta el temps i les rutes i sincronitza el calendari entre dispositius.

**Tecnologies:** Capacitor · Svelte · TypeScript · Kotlin · Room · WorkManager · Supabase

**Destacat:**
- Room com a única font de dades i WorkManager com a únic motor de sincronització amb Supabase.
- Prediccions de ritme, splits i desnivell calculats en Kotlin.
- Inici de sessió natiu amb Credential Manager i calendari mitjançant l'API d'autorització de Google.
- Widget de pantalla d'inici, recordatoris i alarmes natives.

### Plataforma Strava/Garmin

**Estat:** Projecte personal

Worker de Cloudflare que escolta els webhooks de Strava, classifica l'activitat principal del dia contra un pla d'entrenament, l'enriqueix amb el temps i dades de cursa, i genera amb IA el títol i l'entradeta que republica a Strava.

**Tecnologies:** Cloudflare Workers · D1 · Queues · R2 · React · TypeScript · Hono · Vitest

**Destacat:**
- Cues amb reintents i cua de missatges fallits, més cron horari i purga diària.
- Tokens de Strava xifrats amb AES-GCM abans de desar-los a D1.
- Tauler d'administració en React servit pel mateix Worker.
- Importació d'arxius FIT de Garmin i streams d'activitat desats a R2.

### Race Spending Tracker

**Estat:** Projecte personal

Extensió Chrome MV3 que calcula la despesa anual en inscripcions a curses a partir de les confirmacions de Gmail, amb OAuth de només lectura, classificació conservadora per plataforma i emmagatzematge local.

**Tecnologies:** JavaScript · Chrome Extensions · Gmail API · OAuth · Playwright

**Destacat:**
- Adaptadors per a nou plataformes d'inscripció.
- Extracció acotada de text de PDF per recuperar els imports que falten al correu.
- Sincronització amb reintents, checkpoints i represa després d'una aturada.
- Pressupost per any amb avís en acostar-se al límit.

### CaixaBank Spending Tracker

**Estat:** Projecte personal

Extensió Chrome MV3 que calcula la despesa mensual llegint els avisos de CaixaBank a Gmail. Reconstrueix l'ordre real dels moviments encadenant saldos, en comptes de refiar-se de l'hora d'arribada del correu.

**Tecnologies:** JavaScript · Chrome Extensions · Gmail API · OAuth · Playwright

**Destacat:**
- Ordre real dels moviments reconstruït a partir de la cadena de saldos.
- Deduplicació per identificador de missatge i per saldo, per no perdre dues compres iguals el mateix dia.
- Regles de categoria amb aprenentatge local i promoció a codi.
- Sincronització incremental amb marge per als avisos que arriben amb retard.

## Habilitats

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