Imad El Malki Jaddi
Software developer | Angular, Java and full-stack products
La Gornal, Catalonia
About me
Software developer with professional experience in Angular and close collaboration with Java/Spring Boot backends. In my own projects I build products end to end with TypeScript, Kotlin, React, Svelte and cloud services. I enjoy turning real problems —running and personal productivity among them— into useful, maintainable, well-tested applications.
Work experience
- Present, Present
INETUM
Web developer intern
Education
Institut Camí de Mar
Advanced Vocational Training Diploma in Web Application Development (DAW)
Languages
- SpanishNative
- CatalanNative
- ArabicNative
- Berber (Amazigh)Native
- EnglishIntermediate
Projects
Amazon Spending Tracker
PublishedChrome MV3 extension that calculates and breaks down yearly Amazon spending from Gmail confirmations, with read-only OAuth, deduplication and local storage.
100 Cims
Personal projectFull-stack application around the FEEC 100 peaks challenge: Angular to browse the peaks, a Spring Boot REST API with PostgreSQL on Docker, and Python scripts that collect, load and optimise the data and images.
Race Hub
In developmentAndroid app built with Capacitor: the interface is Svelte 5 in a WebView while a native Kotlin engine owns data, sync, networking and computation. It plans races, calculates paces and splits, checks weather and routes, and syncs the calendar across devices.
Strava/Garmin Platform
Personal projectCloudflare Worker that listens to Strava webhooks, classifies the main activity of the day against a training plan, enriches it with weather and race data, and generates with AI the title and summary it publishes back to Strava.
Race Spending Tracker
Personal projectChrome MV3 extension that calculates yearly race-registration spending from Gmail confirmations, with read-only OAuth, conservative per-platform classification and local storage.
CaixaBank Spending Tracker
Personal projectChrome MV3 extension that calculates monthly spending by reading CaixaBank alerts in Gmail. It reconstructs the real order of transactions by chaining balances instead of trusting the email arrival time.
Skills
- Angular
- TypeScript
- JavaScript
- Java
- Spring Boot
- Power Apps
- Power BI
- HTML
- CSS
- React
- Svelte
- Kotlin
- Cloudflare Workers
- Astro
- PostgreSQL
- MySQL
- Supabase
- Docker
- Git
- GitHub
Imad El Malki Jaddi
Software developer | Angular, Java and full-stack products
Contact
- Location: La Gornal, Catalonia
- Email: imadelmalkij@gmail.com
- LinkedIn: imad-el-malki-jaddi-a0585a284
- GitHub: ImadElMalki
About me
Software developer with professional experience in Angular and close collaboration with Java/Spring Boot backends. In my own projects I build products end to end with TypeScript, Kotlin, React, Svelte and cloud services. I enjoy turning real problems —running and personal productivity among them— into useful, maintainable, well-tested applications.
Work experience
VIEWNEXT
Angular Developer · February 2024 — Present
Development and evolution of web applications for the public sector with Angular, integrated with APIs and Java/Spring Boot backends.
- Contributed to CIRNM, a municipal system for environmental management.
- Built and evolved SIVCA, a municipal system integrated with MiNT to manage, validate and monitor air quality data for Madrid.
- Implemented components, screens and new features, handled evolutionary maintenance and API integration together with Java backend and QA teams.
INETUM
Web developer intern · May 2022 — May 2023
Web development and low-code enterprise solutions during the internship.
- Built enterprise applications with Microsoft Power Apps.
- Created dashboards and reports with Microsoft Power BI.
- Web development with JavaScript, Laravel, HTML, CSS, jQuery and Bootstrap.
Education
Institut Camí de Mar
Advanced Vocational Training Diploma in Web Application Development (DAW)
September 2021 — May 2023
Languages
- Spanish: Native
- Catalan: Native
- Arabic: Native
- Berber (Amazigh): Native
- English: Intermediate
Projects
Amazon Spending Tracker
Status: Published
Chrome MV3 extension that calculates and breaks down yearly Amazon spending from Gmail confirmations, with read-only OAuth, deduplication and local storage.
Technologies: JavaScript · Chrome Extensions · Gmail API · OAuth
Highlights:
- Deduplication by order number, so the several emails of one purchase are not counted twice.
- Hourly incremental sync plus a weekly full scan.
- .xlsx export generated with no dependencies.
- Spanish and English interface; data never leaves the browser.
Links:
100 Cims
Status: Personal project
Full-stack application around the FEEC 100 peaks challenge: Angular to browse the peaks, a Spring Boot REST API with PostgreSQL on Docker, and Python scripts that collect, load and optimise the data and images.
Technologies: Angular · TypeScript · Java · Spring Boot · PostgreSQL · Python · Docker
Highlights:
- REST API with Maven and PostgreSQL 17 in a container.
- Python pipeline that collects the peak data and loads it into the database.
- Image download and optimisation to WebP.
- Dataset restore from CSV.
Race Hub
Status: In development
Android app built with Capacitor: the interface is Svelte 5 in a WebView while a native Kotlin engine owns data, sync, networking and computation. It plans races, calculates paces and splits, checks weather and routes, and syncs the calendar across devices.
Technologies: Capacitor · Svelte · TypeScript · Kotlin · Room · WorkManager · Supabase
Highlights:
- Room as the single source of data and WorkManager as the sole sync engine against Supabase.
- Pace predictions, splits and elevation gain computed in Kotlin.
- Native sign-in with Credential Manager and calendar access through the Google Authorization API.
- Home-screen widget, reminders and native alarms.
Strava/Garmin Platform
Status: Personal project
Cloudflare Worker that listens to Strava webhooks, classifies the main activity of the day against a training plan, enriches it with weather and race data, and generates with AI the title and summary it publishes back to Strava.
Technologies: Cloudflare Workers · D1 · Queues · R2 · React · TypeScript · Hono · Vitest
Highlights:
- Queues with retries and a dead-letter queue, plus an hourly cron and a daily purge.
- Strava tokens encrypted with AES-GCM before being stored in D1.
- React admin dashboard served by the Worker itself.
- Garmin FIT file import and activity streams stored in R2.
Race Spending Tracker
Status: Personal project
Chrome MV3 extension that calculates yearly race-registration spending from Gmail confirmations, with read-only OAuth, conservative per-platform classification and local storage.
Technologies: JavaScript · Chrome Extensions · Gmail API · OAuth · Playwright
Highlights:
- Adapters for nine race-registration platforms.
- Bounded PDF text extraction to recover amounts missing from the email body.
- Sync with retries, checkpoints and resume after an interruption.
- Per-year budget with a warning as the limit approaches.
CaixaBank Spending Tracker
Status: Personal project
Chrome MV3 extension that calculates monthly spending by reading CaixaBank alerts in Gmail. It reconstructs the real order of transactions by chaining balances instead of trusting the email arrival time.
Technologies: JavaScript · Chrome Extensions · Gmail API · OAuth · Playwright
Highlights:
- Real transaction order reconstructed from the chain of balances.
- Deduplication by message id and by balance, so two identical purchases on the same day are not lost.
- Category rules with local learning and promotion into code.
- Incremental sync with a margin for alerts that arrive late.
Skills
- Angular
- TypeScript
- JavaScript
- Java
- Spring Boot
- Power Apps
- Power BI
- HTML
- CSS
- React
- Svelte
- Kotlin
- Cloudflare Workers
- Astro
- PostgreSQL
- MySQL
- Supabase
- Docker
- Git
- GitHub