# Imad El Malki Jaddi > Desenvolupador de programari · Angular & Java ## Contacte - **Ubicació:** La Gornal, Barcelona - **Correu:** [imadelmalkij@gmail.com](mailto:imadelmalkij@gmail.com) - **Perfils:** [LinkedIn](https://www.linkedin.com/in/imadelmalki/) · [GitHub](https://github.com/ImadElMalki) ## Sobre mi Soc desenvolupador de programari especialitzat en Angular i Java. Des del 2023 treballo a VIEWNEXT, desenvolupant aplicacions web amb equips de Java i QA. Fora de la feina construeixo projectes propis de cap a fi, amb la seva base de dades, el seu desplegament i les seves decisions de producte; uns quants estan publicats i en ús. ## Experiència laboral ### [VIEWNEXT](https://www.viewnext.com/) · Subsidiària d'IBM **Angular Developer** · juliol del 2023 — Actualitat Desenvolupo aplicacions Angular per al sector públic amb APIs i backends Java/Spring Boot. - Contribueixo a CIRNM, un sistema municipal relacionat amb la gestió ambiental. - Desenvolupo i milloro SIVCA, integrat amb MiNT per gestionar, validar i monitorar les dades de qualitat de l'aire de Madrid. - Implemento components, pantalles i noves funcions, mantinc l'aplicació i integro APIs amb els equips Java i QA. ### [INETUM](https://www.inetum.com/es/es.html) **Desenvolupador web** · maig del 2022 — setembre del 2022 Desenvolupament d'aplicacions internes i web a Inetum Catalunya, amb eines low-code i tecnologies web. - Vaig desenvolupar aplicacions empresarials amb Microsoft Power Apps. - Vaig crear quadres de comandament i informes amb Microsoft Power BI. #### Abans de programar · 2015–2023 - **Mosso especialista** — [Toende](https://resetbytoende.com) · Fabricació · 2022–2023 - **Operari de producció i magatzem** — [Laineblock](https://www.laineblock.com) · Indústria · 2022 - **Operari de fàbrica** — [Kettal](https://www.kettal.com) · Mobiliari · 2021 - **Operari de degollament (champagel)** — [Pere Ventura](https://www.pereventura.com) · Cava · 2018–2020 - **Operari d'envasament** — [Pastisart](https://www.pastisart.com) · Alimentació · 2018 - **Operari d'envasament** — [Vacu Vin](https://www.vacuvin.com) · Països Baixos · Fabricació · 2017 - **Empleat de cuina** — [McDonald's](https://www.mcdonalds.nl) · Països Baixos · Hostaleria · 2017 - **Mosso de magatzem** — [Leen Menken](https://www.leenmenken.nl) · Països Baixos · Logística · 2016–2017 - **Operari de manteniment** — [Reverté Productos Minerales](https://reverteminerals.com) · Indústria · 2016 - **Operari agrícola** — [VD Holland](https://www.vdholland.nl) · Països Baixos · Agricultura · 2016 - **Operari agrícola** — [Viticultura Planas 1916](https://www.viversplanas.com) · Agricultura · 2015 - **Agent d'atenció al client** — [Iberdrola](https://www.iberdrola.es) · Energia · 2015 - **Altres habilitats** — Programes ofimàtics · Reparació d'equips · Carretó elevador ## Educació ### Institut Camí de Mar **Cicle Formatiu de Grau Superior en Desenvolupament d'Aplicacions Web (DAW)** setembre del 2021 — maig del 2023 ### Institut de l'Arboç · Institut Manuel de Cabanyes **Batxillerat en Ciències i Tecnologia** setembre del 2017 — juny del 2019 ## Certificacions - **[Angular: De cero a experto](https://cursos.devtalles.com/courses/angular)** · DevTalles · 34 h · 2024 - **[Astro: El framework para sitios web orientados al contenido](https://cursos.devtalles.com/courses/Astro)** · DevTalles · 26 h · 2025 - **[GIT+GitHub: Todo un sistema de control de versiones de cero](https://cursos.devtalles.com/courses/git-github-control-versiones)** · DevTalles · 12 h · 2026 - **[Claude Code: Guía completa para desarrolladores de software](https://cursos.devtalles.com/courses/claude-code-guia-completa)** · DevTalles · 18 h · 2026 - **[Model Context Protocol (MCP)](https://midu.dev/curso/intensivo-mcp)** · midu.dev · 2026 - **[GitHub Actions](https://midu.dev/curso/curso-de-github-actions)** · midu.dev · 2026 - **[Docker y DevOps](https://midu.dev/curso/curso-docker-devops)** · midu.dev · 2026 - **Spring Boot Starters** · Viewnext · 12 h · 2025 - **JPA (Java Persistence API)** · Viewnext · 12 h · 2025 - **Java 8: novetats i bones pràctiques** · Viewnext · 8 h · 2025 - **SQL avançat** · Viewnext · 8 h · 2025 - **JavaScript** · Viewnext · 8 h · 2025 - **Disseny responsive amb Bootstrap** · Viewnext · 12 h · 2025 - **Bones pràctiques de rendiment** · Viewnext · 8 h · 2025 - **Seguretat i privacitat per disseny (tècnic)** · Viewnext · 3 h · 2025 - **Crypt0 · Ciberseguretat** · IBM · 3 h · 2026 - **Test de nivell d'anglès · MECR B2** · goFLUENT · 2024 ## Idiomes - **Castellà:** Natiu - **Català:** Natiu - **Àrab:** Natiu - **Berber (amazic):** Natiu - **Anglès:** Intermedi alt (B2) ## Projectes ### Amazon Spending Tracker **Estat:** En línia 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, per no comptar dues vegades els correus d'una mateixa compra. - 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:** Codi privat Aplicació sobre el repte dels 100 Cims de la FEEC. Fa servir Angular per consultar els cims, una API REST amb Spring Boot i PostgreSQL, i scripts en Python per recopilar i preparar 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 amb Capacitor i una interfície en Svelte 5. La part nativa en Kotlin s'encarrega de les dades, la sincronització i els càlculs de ritmes, splits i desnivell. **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. - Ritmes, splits i desnivell calculats en Kotlin. - Sessió nativa amb Credential Manager i calendari de Google. - Widget d'inici, recordatoris i alarmes natives. ### Assistent Strava/Garmin **Estat:** Codi privat Worker de Cloudflare que rep els webhooks de Strava, compara l'activitat principal del dia amb el pla d'entrenament i hi afegeix el temps i les dades de cursa. Després genera amb IA el títol i el resum que publica 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:** Codi privat 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 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 als imports que falten al correu. - Sincronització amb reintents, checkpoints i represa. - Pressupost anual amb avís en acostar-se al límit. ### CaixaBank Spending Tracker **Estat:** Codi privat Extensió Chrome MV3 que calcula la despesa mensual llegint els avisos de CaixaBank a Gmail. Reconstrueix l'ordre real dels moviments encadenant saldos. **Tecnologies:** JavaScript · Chrome Extensions · Gmail API · OAuth · Playwright **Destacat:** - Ordre real dels moviments a partir de la cadena de saldos. - Deduplicació per identificador de missatge i per saldo. - Regles de categoria amb aprenentatge local i promoció a codi. - Sincronització incremental amb marge per als avisos tardans. ### Riolan Solutions **Estat:** En línia Lloc corporatiu d'una sola pàgina per a una empresa de lampisteria i reformes. Està fet amb WordPress i Elementor Pro i inclou els serveis, una galeria de treballs i un formulari de contacte. **Tecnologies:** WordPress · Elementor · PHP · HTML · CSS **Destacat:** - Identitat pròpia: paleta blava i morada, tipografies Poppins i Montserrat, i iconografia retallada a mida per als sis serveis. - Pàgina única amb capçalera fixa, navegació per àncores i seccions de nosaltres, serveis, treballs i contacte. - Galeria de 32 fotos d'obra optimitzades a WebP. - Bloc de contacte amb telèfon, urgències 24 h i horari, més formulari amb validació de camps. ### Aquest portafolis **Estat:** En línia Lloc estàtic en Astro sobre Cloudflare Pages, trilingüe i sense framework d'interfície. Un sol cv.json alimenta les pàgines, el PDF de cada idioma, el JSON-LD i els endpoints per a màquines; el dinàmic són Pages Functions. **Tecnologies:** Astro · TypeScript · Cloudflare Workers · D1 · Playwright · Vitest **Destacat:** - CSP per hashes i sense unsafe-inline, recalculada des de l'HTML a cada build. - Pressupostos d'HTML, DOM, CSS i JS que fan fallar el build; Lighthouse bloqueja si l'LCP passa de 2,5 s. - El PDF es genera i es comprova a cada build: un full A4 i text extraïble amb dos motors. - Límits d'ús atòmics a D1, provats contra una base real. **Enllaços:** - [Lloc web](https://imadelmalki.com) ## Habilitats - Angular - TypeScript - Java - Spring Boot - Astro - Svelte - Cloudflare Workers - PostgreSQL - Supabase - Docker ## Versions llegibles per màquines - [CV en JSON Resume](https://imadelmalki.com/ca/cv.json) - [CV en Markdown](https://imadelmalki.com/ca/cv.md)