Protect your app under high load with RabbitMQ
Why queues protect Node.js APIs from traffic spikes by moving slow work out of the request lifecycle—and when that added complexity is justified.
Backend architecture · Production AI · Morocco
I design production RAG pipelines, distributed systems, and large-scale data architecture—then build the interfaces that make them useful.

What I do
Scalable APIs, event-driven systems, queues, caching, and data pipelines built for real operational load.
Production RAG, document intelligence, search, and LLM workflows that turn complex data into useful products.
Responsive React, Next.js, and Angular interfaces—delivered end to end with quality, performance, and polish.
Specialist expertise
Focused capabilities backed by production work and measurable results.
Node.js backend architecture, event-driven systems, caching, queues, APIs, and database performance from senior full-stack engineer Younes Essaadani.
02Production RAG, LangGraph, Azure OpenAI, document intelligence, AI Search, and human-review workflows built by Younes Essaadani.
03Node.js consulting for scalable APIs, Redis caching, RabbitMQ workflows, database optimization, and production reliability.
04Azure document-processing architecture using Functions, Queue Storage, Blob Storage, SQL, AI Search, and human review.
Selected work
Case studies from SaaS, AI, and operational platforms.
Experience
2026 — Now
Senior Software Engineer Consultant
Azure archive architecture for 16M documents across five countries.
2025 — 2026
Front-End Engineer
Modernized enterprise insurance workflows from Angular 10 to 18.
2025
Full-Stack Engineer / Technical Lead
Led a 14-person team building an AI relationship-matching platform.
2023 — 2024
Backend Engineer
Scaled e-commerce infrastructure serving more than 70K sellers.
2022 — 2023
Junior Full-Stack Engineer
Modernized a CRM used by 90–120 staff and roughly 2,000 clients.
Writing
Why queues protect Node.js APIs from traffic spikes by moving slow work out of the request lifecycle—and when that added complexity is justified.
A practical guide to timers, async calls, event listeners, and large state objects that silently keep React components alive after unmounting.
How coding against contracts instead of concrete implementations creates systems that are easier to extend, test, and maintain.
A payment-processing example showing how the Strategy pattern encapsulates interchangeable behavior in a Laravel application.
Using service classes to separate business logic, reduce controller complexity, and make Laravel applications easier to reuse and test.
A focused Laravel technique for attaching useful custom metadata when the default pagination response is not enough.
A hands-on introduction to caching frequently requested data with Redis, Express, Node.js, and Docker to reduce database work and response time.
Working toolkit