<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://lms.ahmedhaies.com</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/courses</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/offers</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/about</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/faq</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/contact</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/privacy</loc>
<lastmod>2026-04-19T21:08:29.917Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/cursor-pagination-بالعربي-ليه-offset-بيبطأ-مع-كل-صفحة-جديدة</loc>
<lastmod>2026-04-19T18:12:05.133Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/lru-cache-بالعربي-نفذها-من-الصفر-في-40-سطر-بـ-o1</loc>
<lastmod>2026-04-19T18:08:51.624Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/hash-collisions-ليه-الـ-hashmap-بيتحول-من-o1-لـ-on-فجأة</loc>
<lastmod>2026-04-19T18:04:24.136Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/python-context-managers-بالعربي-خلي-with-تقفل-الملفات-والاتصالات-بدالك</loc>
<lastmod>2026-04-19T17:25:33.553Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/nodejs-streams-اقرا-ملف-10gb-وذاكرتك-512mb-بس</loc>
<lastmod>2026-04-19T17:08:07.126Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/trie-بالعربي-autocomplete-على-مليون-كلمة-بـ-ol-بدل-on</loc>
<lastmod>2026-04-19T17:07:00.856Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/go-channels-بالعربي-تواصل-بين-goroutines-من-غير-mutex-ولا-race-conditions</loc>
<lastmod>2026-04-19T17:00:46.355Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/bloom-filters-بالعربي-اعرف-لو-العنصر-موجود-في-مليون-سجل-بـ-1mb-بس</loc>
<lastmod>2026-04-19T16:42:52.953Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/typescript-discriminated-unions-امنع-bugs-الـ-runtime-بخانة-tag</loc>
<lastmod>2026-04-19T17:06:01.720Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/python-matchcase-امتى-يستحق-إنه-يستبدل-ifelif-في-كودك</loc>
<lastmod>2026-04-19T16:44:18.878Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/event-loop-في-javascript-ليه-settimeoutfn-0-بيشتغل-بعد-promise</loc>
<lastmod>2026-04-19T11:20:33.484Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/web-workers-في-javascript-شغل-حسابات-ثقيلة-بدون-ما-تجمد-الـ-ui</loc>
<lastmod>2026-04-19T16:44:18.878Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/javascript-proxy-اعمل-reactive-state-بـ-20-سطر-بدل-vue</loc>
<lastmod>2026-04-19T16:42:52.953Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/abortcontroller-إلغاء-طلبات-fetch-قبل-ما-تأكل-ذاكرة-المتصفح</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/big-o-notation-بالعربي-إزاي-تعرف-إن-الكود-هيقع-قبل-ما-يدخل-production</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/sql-window-functions-احسب-ranking-و-running-total-في-query-واحدة</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/sql-window-functions-احسب-running-total-وranking-بدون-self-join</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/typescript-generics-دالة-واحدة-لكل-الأنواع-من-غير-any</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/python-decorators-أضف-logging-و-caching-بدون-تعديل-الدالة</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/debounce-و-throttle-في-javascript-الفرق-اللي-بيوفرلك-90-من-طلبات-الـ-api</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
</urlset>
