<?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-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/courses</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/offers</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/about</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/faq</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/contact</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/privacy</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/terms</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/refund-policy</loc>
<lastmod>2026-04-29T11:22:33.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/category/devops-%D8%A8%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A</loc>
<lastmod>2026-04-24T03:19:21.134Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/category/how-to-make-it</loc>
<lastmod>2026-04-25T08:34:07.716Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/category/optimizing-%D8%A8%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A</loc>
<lastmod>2026-04-24T16:23:01.072Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/category/%D8%A3%D8%AD%D8%AF%D8%AB-%D8%A3%D8%AE%D8%A8%D8%A7%D8%B1-%D8%A7%D9%84%D8%AA%D9%83%D9%86%D9%88%D9%84%D9%88%D8%AC%D9%8A%D8%A7</loc>
<lastmod>2026-04-18T12:30:40.092Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/category/%D8%A7%D9%84%D8%A3%D9%88%D8%AA%D9%88%D9%85%D9%8A%D8%B4%D9%86</loc>
<lastmod>2026-04-20T00:15:59.231Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/category/%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A</loc>
<lastmod>2026-04-19T00:10:22.713Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/category/%D8%A7%D9%84%D8%B0%D9%83%D8%A7%D8%A1-%D8%A7%D9%84%D8%A7%D8%B5%D8%B7%D9%86%D8%A7%D8%B9%D9%8A</loc>
<lastmod>2026-04-21T03:09:22.099Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/reverse-proxy-للمبتدئ-ليه-nginx-قدام-تطبيقك-بيغير-كل-حاجة-2</loc>
<lastmod>2026-04-29T09:29:17.206Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/brin-index-في-postgresql-index-بـ-12mb-بدل-24gb-لجدول-800-مليون-صف-2</loc>
<lastmod>2026-04-29T07:26:55.359Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/react-virtualization-ارسم-قائمة-10000-صف-بدون-ما-الواجهة-تتجمد-2</loc>
<lastmod>2026-04-29T06:31:09.310Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/branch-prediction-للمحترف-ليه-ترتيب-array-بيخلي-كودك-أسرع-6-مرات-2</loc>
<lastmod>2026-04-29T09:29:58.355Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/bloom-filters-بالعربي-ازاي-تتحقق-من-مليار-عنصر-بـ-11-ميجابايت-بس-2</loc>
<lastmod>2026-04-29T03:09:49.058Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/evals-لتطبيقات-ai-ازاي-تختبر-llm-بتاعك-من-غير-ما-تخمن-2</loc>
<lastmod>2026-04-29T02:13:42.832Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/files-api-في-claude-ارفع-pdf-كامل-وخليه-يجاوب-بدون-ما-تبني-rag-2</loc>
<lastmod>2026-04-29T01:19:49.200Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/reranking-في-rag-ليه-نتائج-بحثك-متلخبطة-حتى-مع-embeddings-ممتازة-2</loc>
<lastmod>2026-04-29T00:27:46.028Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/consistent-hashing-بالعربي-ليه-إضافة-سيرفر-واحد-بتفقدك-89-من-الكاش-2</loc>
<lastmod>2026-04-28T22:18:09.856Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/اعمل-webhook-receiver-آمن-بـ-nodejs-تحقق-من-hmac-signature-ورد-في-50ms-2</loc>
<lastmod>2026-04-28T21:30:05.883Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/agent-loops-ليه-وكيل-ai-بياكل-47-في-12-دقيقة-قبل-ما-يقف-2</loc>
<lastmod>2026-04-28T20:27:40.512Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/ابن-realtime-notifications-في-nextjs-15-بـ-sse-بدون-websockets-2</loc>
<lastmod>2026-04-28T19:19:58.491Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/اعمل-status-page-لخدماتك-بـ-gatus-وdocker-بدون-اشتراكات-شهرية-2</loc>
<lastmod>2026-04-28T18:37:12.249Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/abortcontroller-في-javascript-ليه-searchbar-بتاعك-بيرسل-47-طلب-لكل-كلمة-3</loc>
<lastmod>2026-04-28T15:15:55.467Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/race-conditions-في-البرمجة-ليه-نفس-الكود-بينجح-في-التيست-ويفشل-في-الإنتاج-2</loc>
<lastmod>2026-04-28T18:37:58.493Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/kubernetes-probes-ليه-الـ-pod-بيتعمله-restart-كل-دقيقتين-بدون-سبب-2</loc>
<lastmod>2026-04-28T12:24:41.289Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/nginx-limitreq-امنع-api-من-الانهيار-وقت-موجة-5000-طلبثانية-2</loc>
<lastmod>2026-04-28T11:17:56.835Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/pgbouncer-transaction-pooling-ليه-postgresql-بيرفض-الاتصال-رقم-101-2</loc>
<lastmod>2026-04-28T10:19:39.942Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/closures-في-javascript-للمبتدئ-ليه-متغيرات-الدالة-بتفضل-حية-بعد-ما-تنتهي-2</loc>
<lastmod>2026-04-28T08:37:35.946Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/big-o-للمبتدئ-ليه-كودك-بيبطأ-لما-البيانات-تكبر-2</loc>
<lastmod>2026-04-28T07:21:20.703Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
</urlset>
