العالم 2 · المخزون

المهارات

أكثر من 10 سنوات في تطوير الويب والهاتف، من الواجهات الخلفية بـ PHP/Symfony إلى البنية التحتية DevOps: هذه هي الأدوات التي أستخدمها يومياً في بيئة الإنتاج.

تطوير الخلفية

7 عناصر
PHP
Symfony
Laravel
Node.js
Python
MySQL
Redis

تطوير الواجهة

6 عناصر
ReactJS
VueJS
Ionic Capacitor
HTML5/CSS3
JavaScript/TypeScript
Tailwind CSS

تطوير الموبايل

5 عناصر
Android (Java/Kotlin)
PhoneGap/Cordova
Ionic
React Native
Flutter

ديف اوبس

6 عناصر
Docker
Jenkins
GitHub Actions
AWS
Linux (Debian/Ubuntu)
Nginx/Apache

الاختبار

5 عناصر
Codeception
PHPUnit
Jest
Cypress
Selenium

أخرى

6 عناصر
Apache Kafka
FCM/APNS
GraphQL
REST APIs
WebSockets
Git/GitHub

> مهارات مستخدمة في بيئة الإنتاج

تجمع هذه الصفحة التقنيات التي أستخدمها فعلًا في عملي، لا قائمة من الكلمات المفتاحية. تخصصي الأساسي هو تطوير الواجهات الخلفية بلغة PHP مع Symfony: عملت على إصدارات تمتد من Symfony 2.8 إلى 6.4 في Keytchens، ثم مع API Platform وDocker بصفتي Lead Dev PHP في CCM Benchmark. وتكمّل Laravel وNode.js وPython هذا الأساس حسب احتياجات المشاريع.

وفي جانب البيانات، تُعدّ MySQL وRedis أدواتي اليومية، وGraphQL جزء من الواجهات البرمجية التي صمّمتها في Keytchens وفي Manymore. واليوم، بصفتي مدير مشاريع أنظمة المعلومات في ORPI، أعمل أساسًا على ربط العديد من أدوات العمل عبر واجهات REST وموصّلات مثل Zapier.

> من الواجهة الأمامية إلى تطبيقات الجوال

في الواجهة الأمامية، أعمل أساسًا مع ReactJS وVueJS بلغة TypeScript، ومع Tailwind CSS لبناء الواجهات. وهذا الموقع مثال على ذلك: فهو مبني بـ Nuxt، ومولَّد مسبقًا، ومترجم إلى ثلاث لغات.

ويُعدّ تطوير تطبيقات الجوال جزءًا من تكويني في هندسة البرمجيات. استخدمت أساليب أصلية (Android بلغة Java أو Kotlin) وأخرى هجينة (Cordova وIonic وCapacitor وReact Native وFlutter)، إضافة إلى الإشعارات الفورية عبر FCM وAPNS.

> DevOps والجودة والاختبارات

أهتم أيضًا بما يأتي بعد كتابة الشيفرة: خوادم Linux من نوع Debian وUbuntu، وNginx وApache، وحاويات Docker، وخطوط Jenkins وGitHub Actions، وخدمات AWS. وفي Keytchens، شمل ذلك إدارة الخوادم، والبريد عبر Postfix، ومراقبة الأخطاء عبر Sentry.

ولضمان الجودة، أكتب اختبارات الوحدات بـ PHPUnit، والاختبارات الوظيفية واختبارات القبول بـ Codeception، واختبارات الواجهة بـ Jest أو Cypress أو Selenium. وتُستخدم Apache Kafka وWebSockets للتبادلات غير المتزامنة وفي الزمن الحقيقي. وتتناول مقالات المدونة عددًا من هذه المواضيع بأمثلة إعداد عملية.