<?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-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/courses</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/offers</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/about</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/faq</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/contact</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/privacy</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/terms</loc>
<lastmod>2026-05-14T23:26:19.687Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/refund-policy</loc>
<lastmod>2026-05-14T23:26:19.687Z</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/debounce-و-throttle-للمتوسط-من-10-طلبات-api-لطلب-واحد-بسطرين-2</loc>
<lastmod>2026-05-14T20:37:16.111Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/event-loop-في-javascript-للمتوسط-ليه-settimeout0-مش-بيتنفذ-فورا-2</loc>
<lastmod>2026-05-14T15:15:55.347Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/recursion-للمبتدئ-ليه-الدالة-بتنادي-نفسها-وإمتى-تتجنبها-2</loc>
<lastmod>2026-05-14T10:24:16.237Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/terraform-state-للمبتدئ-ليه-فريقك-بيكرر-السيرفرات-والحل-في-6-أسطر-2</loc>
<lastmod>2026-05-14T05:15:17.858Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/pgbouncer-transaction-pooling-للمتوسط-من-8400-connection-errorدقيقة-إلى-صفر-3</loc>
<lastmod>2026-05-14T00:12:35.640Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/typescript-discriminated-unions-للمتوسط-امنع-87-من-type-errors-في-الـ-state-machines-بـ-tag-واحد-3</loc>
<lastmod>2026-05-13T20:11:42.034Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/اعمل-backup-أوتوماتيكي-لـ-postgresql-على-backblaze-b2-للمبتدئ-في-50-سطر-bash-3</loc>
<lastmod>2026-05-13T15:18:14.124Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/connection-pooling-في-postgresql-للمحترف-ليه-pool100-بيبطأ-خدمتك-أكتر-من-pool20-2</loc>
<lastmod>2026-05-13T10:11:04.003Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/passkeys-و-webauthn-للمتوسط-ابني-login-آمن-بدون-passwords-في-90-سطر-nodejs-2</loc>
<lastmod>2026-05-13T05:21:08.768Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/redis-pipelining-للمتوسط-من-12k-لـ-290k-setثانية-بسطر-4</loc>
<lastmod>2026-05-13T00:16:32.909Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/stale-while-revalidate-للمتوسط-api-response-في-4ms-بدل-380ms-بسطر-cache-control-3</loc>
<lastmod>2026-05-12T20:12:08.093Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/listennotify-في-postgresql-للمتوسط-استبدل-polling-بـ-real-time-events-في-30-سطر-2</loc>
<lastmod>2026-05-12T15:14:54.813Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/bloom-filters-للمبتدئ-افحص-وجود-50-مليون-username-بـ-60-ميجا-ram-بدل-4-جيجا-4</loc>
<lastmod>2026-05-12T10:13:14.348Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/decorators-في-python-للمتوسط-غلف-14-دالة-بـ-retry-و-cache-بسطر-واحد-3</loc>
<lastmod>2026-05-12T05:19:41.267Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/أتمتة-migration-safety-للمحترف-امنع-downtime-من-alter-table-قبل-ما-يلمس-الإنتاج-2</loc>
<lastmod>2026-05-12T00:12:44.225Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/python-slots-للمحترف-وفر-61-من-الذاكرة-في-10-مليون-object-3</loc>
<lastmod>2026-05-11T15:08:12.103Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/اعمل-token-bucket-rate-limiter-بـ-redis-lua-في-70-سطر-nodejs-3</loc>
<lastmod>2026-05-11T15:40:17.450Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/اعمل-audit-log-في-postgresql-للمتوسط-تتبع-كل-تعديل-على-بياناتك-في-50-سطر-sql-بدون-مكتبة-2</loc>
<lastmod>2026-05-11T10:45:15.141Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/mixture-of-experts-للمتوسط-ليه-deepseek-v3-بـ-671b-parameter-بيشتغل-بتكلفة-37b-2</loc>
<lastmod>2026-05-11T10:42:14.023Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/ai-agents-للمتوسط-ازاي-تبني-وكيل-بيخلص-14-خطوة-بدون-حلقة-لا-نهائية-2</loc>
<lastmod>2026-05-11T10:38:46.851Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
</urlset>
