ABAbdellah Bouhaddi
السيرة الذاتية ↓
→ جميع الأعمال المختارة
في بيئة الإنتاجمنتج الشركة · MATMAK، دبي، الإمارات · يونيو 2024 ← الآن

cat ./work/matmak.md

توسيع منصة SaaS قائمة على ‎.NET في بيئة الإنتاج عبر جميع طبقاتها.

تقدّم منصة MATMAK لمركّبي أفلام PPF وأفلام النوافذ قوالب مركبات مقصوصة مسبقًا والبرمجيات اللازمة لإدارة أعمال القصّ لديهم. أعمل مع الفريق الهندسي على منتج ASP.NET Core القائم، من واجهات العملاء والإدارة إلى الفوترة وأداء البيانات، وأشغّل البنية التحتية التي يعتمد عليها.

الدور
مطوّر Full Stack
الفترة
يونيو 2024 ← الآن
السياق
منتج قائم · فريق
التقنيات الأساسية
C# · ASP.NET Core · EF Core
~40%أسرع في عمليات القراءة والكتابة المتأثرة في قاعدة البيانات
Stripeالاشتراكات والفوترة وwebhooks
من البداية إلى النهايةتولّي الخوادم وAWS وCI/CD والمراقبة

السياق

كانت MATMAK تعمل في بيئة الإنتاج عند انضمامي، ويعتمد عليها عملاء حقيقيون كل يوم. المهمة ليست إعادة كتابة، بل توسيع تطبيق راسخ بأمان: إضافة قدرات جديدة، وتحديث ما يراه العملاء، والحفاظ على سرعة المنصة واستقرارها.

يجمع المنتج بين حسابات المستخدمين والاشتراكات والفوترة والتسعير والأرصدة وكتالوج كبير من قوالب المركبات وعمليات القصّ وموقع موجّه للعملاء ولوحة إدارة خلفية.

منتج فريق. أساهم في منصة قائمة إلى جانب الفريق الهندسي. وما يرد أدناه هو نصيبي من العمل، وليس ادّعاءً بأنني بنيتُ MATMAK وحدي.

ما أبنيه

  • أوسّع واجهات REST API في ASP.NET Core وRazor Pages والخدمات ومسارات العمل التجارية.
  • أعمل على المصادقة والاشتراكات والفوترة والتسعير والأرصدة وعمليات القصّ.
  • أعدتُ تصميم الصفحات الموجّهة للعملاء وواجهة الإدارة لتصبح واجهة حديثة ومتجاوبة متصلة بالخدمات القائمة.
  • دمجتُ مدفوعات Stripe لمرة واحدة والاشتراكات المتكررة والفوترة وتحديثات حالة الدفع عبر webhooks.
  • أعمل مباشرة مع الإدارة والفريق على المتطلبات والأولويات والإصدارات.

كيف يترابط النظام

الحل عبارة عن شيفرة ‎.NET معيارية متعددة المشاريع. وهذا هو الجزء الذي أعمل عليه في كل طبقة:

الطبقةما أقوم بهالأدوات
الواجهاتصفحات العملاء ولوحة الإدارة الخلفية، أُعيد تصميمها لتقديم تجربة حديثة ومتجاوبة.Razor Pages · HTML · CSS · JS
التطبيقواجهات API وخدمات ومسارات عمل للحسابات والاشتراكات والفوترة والتسعير والأرصدة والقصّ.C# · ASP.NET Core · Web API
المدفوعاتالمدفوعات لمرة واحدة والمتكررة، والفواتير، وتحديثات الحالة عبر webhooks.Stripe
البياناتتصميم المخططات وضبط الاستعلامات وقواعد بيانات الإنتاج والنسخ الاحتياطية.SQL · EF Core · LINQ
التشغيلالخوادم وعمليات النشر والبيئة التجريبية والمراقبة والتنبيهات.Linux · AWS · Nginx · GitHub Actions · Grafana

تنقسم الشيفرة إلى مشاريع API وClient وAdmin وModels وServices، ما يُبقي كل جانب منفصلًا وقابلًا لإعادة الاستخدام.

تسريع طبقة البيانات

كانت بعض مسارات القراءة والكتابة أبطأ مما ينبغي. فأعدتُ تصميم أجزاء من مخطط قاعدة البيانات لإزالة الجداول الزائدة وعمليات الربط المكلفة، وضبطتُ استعلامات Entity Framework Core التي تصل إليها.

النتيجة: أسرع بنحو 40% في عمليات القراءة والكتابة المتأثرة.

تشغيله في بيئة الإنتاج

يتجاوز دوري شيفرة التطبيق. فأنا أتحمّل المسؤولية الكاملة عن البنية التحتية للشركة: الحسابات السحابية والخوادم وقواعد بيانات الإنتاج والنطاقات وDNS والبريد الإلكتروني وخدمات الدفع.

  • أجهّز خوادم Linux السحابية وخوادم VPS وأحصّنها: وصول SSH والجدران النارية والوكيل العكسي Nginx وTLS وبيئات تشغيل التطبيقات.
  • أدير AWS EC2 وقواعد بيانات الإنتاج والنسخ الاحتياطية الآلية وبيئة تجريبية منفصلة.
  • أؤتمت عمليات البناء والنشر باستخدام GitHub Actions.
  • بنيتُ منظومة مراقبة بـ Prometheus وGrafana وLoki وPromtail، مع لوحات معلومات وتنبيهات تشمل الخوادم وواجهات API وNginx وسجلات التطبيقات.

استُبعدت العناوين الداخلية وبيانات العملاء وإعدادات الأمان من هذه الصفحة عمدًا.

ما يبيّنه هذا العمل

هكذا أعمل داخل منتج راسخ: أفهم القيود، وأوسّع مسارات العمل الحيوية للأعمال دون كسرها، وأربط تغييرات الواجهة بالواجهة الخلفية، وأبقى مسؤولًا حتى النشر والمراقبة.

دراسة الحالة التاليةHEXIS Training Centre: منصة تدريب متعددة اللغاتاقرأها ←

ping abdellah

هل توظّف لعمل كهذا؟

أردّ خلال يوم واحد. ويسعدني أن أشرح لك كيف سأتعامل مع منتجك أو تقنياتك أو بنيتك التحتية.