مناف حوراني
صورة شخصية لمناف حوراني

مهندس برمجيات متكامل · إسطنبول

أبني النظام كاملاً، لا طبقةً واحدة منه.

واجهات برمجية، وتطبيقات ويب، ولوحات تحكّم، وتطبيقات جوّال، ومعالِجات مهامّ خلفية، ومسارات معالجة وسائط، والبنية التحتية التي تُشغّلها — تُصمَّم وتُبنى كنظامٍ واحد، لا كقطعٍ جُمّعت معاً.

ستّ سنوات من هذا العمل. معظمها في التجارة الإلكترونية، لأنّ العمل كان هناك — لكنّ هذه التقنيات لا يعنيها إلى أين تُوجَّه. متجر إلكتروني، أو أداة داخلية، أو نظام حجوزات، أو مسار معالجة فيديو: الطبقات نفسها، والمسائل نفسها، والمهندس نفسه.

متاح لوظائف هندسة برمجيات متكاملة — عن بُعد أو من إسطنبول

6سنوات في بيئة الإنتاج
9تطبيقات منشورة
4مجالات مغطّاة
3لغات، بدعم الاتجاهين

التقنيات المستخدمة

  • TypeScript
  • NestJS
  • Flutter
  • PostgreSQL
  • Docker
  • Next.js
  • Prisma
  • Redis
  • FFmpeg
  • Kubernetes
  • React
  • BullMQ
  • Dart
  • Sharp
  • Traefik
  • Zod

النطاق

كلّ ما يمكن بناؤه بهذه التقنيات.

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

  • تطبيقات ومنتجات الويب

    متاجر، ومواقع تعريفية، وبوّابات، وتطبيقات متعدّدة المستأجرين. مكوّنات تعمل على الخادم، وبثّ تدريجي للصفحة، وتعريب حقيقي بدعم الاتجاهين، ومؤشّرات الأداء الأساسية تُعامَل كشرطٍ لا كتقرير.

    مُنجَز

    • Megastore storefront
    • Golden Minds
    • imPhone
  • الواجهات البرمجية والأنظمة الخلفية

    واجهات REST بعقود مُحكمة الأنواع، ومصادقة تفصل الهويّات تشفيرياً بدل عمود دور، وطوابير، ومهامّ مجدولة، وويب-هوكس، وتكاملات مع أطراف خارجية تُعلن فشلها بوضوح.

    مُنجَز

    • Megastore API
    • OUKITEL shared API
    • Orjeen
  • تطبيقات الجوّال

    تطبيقات Flutter على iOS وأندرويد، منشورة على متجر Play — عمل دون اتصال، وإشعارات، وروابط عميقة، وحزم دفع، والواجهة البرمجية خلفها كتبها الشخص نفسه.

    مُنجَز

    • 4 Flutter apps
    • Play Store
    • iOS + Android
  • الأدوات الداخلية ولوحات التحكّم

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

    مُنجَز

    • Admin dashboards
    • TeleTab
    • Warehouse system
  • مسارات الوسائط والبيانات

    معالجة الصور والفيديو، وتحويل HLS، وتوليد المصغّرات، وإزالة الخلفيات، وتخزين كائني برفعٍ موقّع مسبقاً، وبحث مبنيّ على Postgres قبل اللجوء إلى عنقود بحث مستقلّ.

    مُنجَز

    • HLS pipeline
    • Sharp / FFmpeg
    • rembg
  • البنية التحتية والنشر

    حاويات، ووكلاء عكسيّون، وشهادات TLS، وتكامل مستمرّ، ومستودعات موحّدة، وأسرار، ونسخ احتياطي، ومراقبة — مستضافة ذاتياً على خادم افتراضي أو على عنقود Kubernetes بنيتُه بنفسي وأستطيع شرحه سطراً سطراً.

    مُنجَز

    • Docker / Traefik
    • Turborepo
    • Kubernetes (kubeadm)

أعمال مختارة

أربعة أنظمة تستحقّ الشرح.

كلّ نظام من هذه صمّمتُه وكتبتُه بنفسي من طرف إلى طرف. وحيث يكون المستودع خاصاً، وصفتُ التصميم بدل عرض الشيفرة — فالمنطق هو الجزء الذي ينتقل معك على أيّ حال.

001 / Megastore

2026

Megastore

منصّة تجارة إلكترونية ثلاثية اللغة ومتعدّدة العملات: خمسة تطبيقات خلف طبقة واحدة من العقود المشتركة، إضافةً إلى تطبيق Flutter.

تطبيقات في المستودع الموحّد
5تطبيقات في المستودع الموحّد
حزم مشتركة
6حزم مشتركة
لغات، العربية أولاً
3لغات، العربية أولاً
عملات
5عملات
بنية منصّة Megastoreتصل المتصفّحات وتطبيق Flutter إلى متجر Next.js ولوحة التحكّم، وكلاهما يستدعي واجهة NestJS واحدة. والواجهة البرمجية هي الخدمة الوحيدة التي تلمس PostgreSQL. كما تقرأ وتكتب في Redis للتخزين المؤقّت وتحديد المعدّل، وتضع المهامّ في طوابير BullMQ لعملية عامل منفصلة، وتخزّن الوسائط المعالَجة في MinIO، وتستدعي خدمة Python داخلية لإزالة الخلفيات. أمّا العامل فيتولّى تحويل الصور والفيديو وتجميع الإحصاءات المجدولة والإشعارات.CLIENTSAPPSSERVICESDATAenqueueBrowserwebFlutter appiOS · AndroidStorefrontNext.js 16DashboardNext.js 16NestJS APIsole DB ownerWorkerBullMQPostgreSQLPrisma 7Rediscache · queue · ratesMinIOprocessed mediamedia-pyFastAPI · rembg
تصل المتصفّحات وتطبيق Flutter إلى متجر Next.js ولوحة التحكّم، وكلاهما يستدعي واجهة NestJS واحدة. والواجهة البرمجية هي الخدمة الوحيدة التي تلمس PostgreSQL. كما تقرأ وتكتب في Redis للتخزين المؤقّت وتحديد المعدّل، وتضع المهامّ في طوابير BullMQ لعملية عامل منفصلة، وتخزّن الوسائط المعالَجة في MinIO، وتستدعي خدمة Python داخلية لإزالة الخلفيات. أمّا العامل فيتولّى تحويل الصور والفيديو وتجميع الإحصاءات المجدولة والإشعارات.
  • عميل
  • خدمة
  • مخزن بيانات
  • خارجي

002 / منظومة OUKITEL للأعمال

2025 — 2026

منظومة OUKITEL للأعمال

أربعة تطبيقات Flutter وعميل ويب يتشاركون واجهة NestJS خلفية واحدة، تغطّي مبيعات الشركات واستقبال الصيانة والمرتجعات.

تطبيقات Flutter
4تطبيقات Flutter
واجهة برمجية موحّدة
1واجهة برمجية موحّدة
منشور
Play Storeمنشور

الهاتف

FlutterDartFirebase

الخلفية

NestJSPrismaPostgreSQLRedisBullMQSwagger

التخزين

AWS S3Presigned URLsMinIO

الواجهة

Next.jsTypeScript

003 / Netlastik

2024 — 2025

Netlastik

تطبيق تجارة إطارات بين الشركات للموزّعين، منشور على App Store وGoogle Play.

منشور على
iOS + Androidمنشور على
متجرا تطبيقات، كلاهما منشور
2متجرا تطبيقات، كلاهما منشور
وحدة وظيفية
17وحدة وظيفية

الهاتف

FlutterDartBloc / Cubitgo_routerget_itdio

البيانات

dartzequatableshared_preferences

الواجهة

flutter_screenutilflutter_svgcached_network_imageinfinite_scroll_paginationpinputwebview_flutter

004 / أورجين

2021 — 2024

أورجين

تطبيق تجارة إلكترونية متعدّد المنصّات لمتجر سعودي، مع دمج كامل لبوّابتَي دفع بالتقسيط وبالبطاقة.

بوّابتا دفع
2بوّابتا دفع
منشور على
iOS + Androidمنشور على
السوق
KSAالسوق

الهاتف

FlutterMVVMCubitFCMFirebase Analytics

المدفوعات

TabbyUrway

الموقع

GeolocationGeocoding

الخلفية

NestJSNode.jsWooCommerce REST

أعمال أخرى

أصغر حجماً، لكنها حقيقية. أدرجتها من دون دراسة حالة كي تحتفظ الأعمال الأربعة أعلاه بثقلها.

  • Kartçek

    2025

    تطبيق تحصيل ديون لمندوبي الميدان — البنية نفسها المستخدمة في Netlastik بربع حجمها، وهو ما جعل بناءه سريعاً. منشور على Google Play.

    FlutterBloc / Cubitgo_routerget_itdioGoogle Play
  • TeleTab

    2025 — 2026

    منتج Next.js متكامل لعلامة TELETAB — Prisma فوق PostgreSQL، وbetter-auth، وتخزين كائنات بـ MinIO، وبريد معاملات بـ React Email، وجداول تعمل من الخادم.

    Next.jsPrismabetter-authMinIOReact Email
  • Golden Minds

    2025 — 2026

    موقع تسويقي ثلاثي اللغة بطبقة حركة مدروسة. بُني ليُحمَّل بسرعة على اتصالات الهاتف ويُقرأ بشكل صحيح بالعربية.

    Next.jsnext-intlMotion
  • Turkish Recycle

    2026

    مستودع أحادي بـ Turborepo يجمع موقعاً عامّاً ولوحة تشغيل فوق مكتبة مكوّنات وحزمة قاعدة بيانات مشتركتين، مع حاويات للبيئة التجريبية.

    TurborepoNext.jsPrismaDocker
  • IM Phone

    2025

    موقع تسويقي بتسلسلات حركة عبر GSAP وأساس تقني لتحسين محرّكات البحث — خريطة موقع مولَّدة، وبيانات وصفية منظّمة، وميزانية أداء تبدأ من الهاتف.

    Next.jsGSAPnext-sitemap

منهجيّتي

الأجزاء التي يصعب رؤيتها في لقطة شاشة.

يستطيع أيّ أحد أن يسرد التقنيات. أمّا هذه فعادات تظهر فعلاً في الأنظمة أعلاه.

  1. 01

    قرّر كتابةً، ثمّ ابنِ

    بنية Megastore موجودة كوثيقة مواصفات بقرارات مرقّمة — يحمل كلّ قرار مبرّره والبدائل التي رفضتها وسبب رفضها. كتابة ذلك أوّلاً هي ما يجعل القرار قابلاً للمراجعة لاحقاً، وهي سبب بقاء التنفيذ مطابقاً للتصميم بعد أشهر.

  2. 02

    ضَع الحدود حيث يكلّف تجاوزها شيئاً

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

  3. 03

    صمّم الثابت، لا التنظيف

    تُعالَج الوسائط قبل تخزينها، فلا يمكن أن توجد ملفّات يتيمة. ورموز Bearer بدل الكوكيز، فلا يكون CSRF شيئاً يُدافَع عنه. أفضل معالجة لصنفٍ من الأخطاء هي تصميم لا يمكن أن يقع فيه.

  4. 04

    أضِف بنية تحتية حين تستحقّ مكانها

    بحث Postgres النصّي قبل Meilisearch. وDocker Compose قبل منظّم حاويات. فكلّ حاوية شيء يجب تشغيله ونسخه احتياطياً وتأمينه — لذا عليها أن تدفع ثمن نفسها أوّلاً.

الخبرة

ستّ سنوات، عبر المنظومة كاملةً.

  1. 2024الآن

    Istanbul, Türkiye

    مهندس Full-Stack

    مستقلّ / بعقود

    تصميم وبناء منصّة Megastore للتجارة الإلكترونية، ومنظومة تطبيقات OUKITEL للأعمال، ومنتج TeleTab — البنية المعمارية والواجهات البرمجية وواجهات الويب وعملاء Flutter وبنية الحاويات التي تعمل تحتها.

    NestJSNext.jsFlutterPostgreSQLRedisDocker
  2. 02/202406/2024

    Istanbul, Türkiye

    مطوّر Full-Stack

    OXO Teknoloji

    بناء أدوات لوسائل التواصل الاجتماعي: خدمات تفاعل آلية تعمل مقابل واجهات المنصّات، على خلفية Node.js مع واجهة أمامية بـ React.

    Node.jsNestJSReactPuppeteer
  3. 03/202102/2024

    Istanbul, Türkiye

    مطوّر Full-Stack

    أورجين / Perllamoda

    بناء وصيانة متجر إلكتروني يخدم السوق السعودية. تسليم تطبيق أورجين متعدّد المنصّات مع بوّابتَي الدفع Tabby وUrway، وبناء نظام إدارة مستودعات متكامل مع واجهة WooCommerce REST.

    FlutterIonicNestJSNode.jsWooCommerceMongoDB
  4. 07/202003/2021

    Istanbul, Türkiye

    مطوّر واجهات أمامية

    Midad Tek

    تطوير الواجهات الأمامية ضمن الفريق الذي أطلق تطبيق «زكاتي» لأندرويد وiOS، إضافة إلى أعمال ويب لعميل خيري.

    ReactWordPressMobile
  5. 20172021

    التعليم

    بكالوريوس هندسة الحاسوب

    جامعة إسطنبول أيدن

القدرات

ما أستخدمه، ولماذا.

مرتّبة بحسب ما أنجزته فعلاً، لا بحسب عدد الدروس التي شاهدتها.

اللغات
4
  • TypeScript
  • JavaScript
  • Dart
  • SQL
الخلفية والواجهات البرمجية
9
  • NestJS
  • Node.js
  • Express
  • Prisma
  • Zod
  • BullMQ
  • REST
  • JWT / JWKS
  • OAuth 2.0
الواجهة الأمامية
8
  • Next.js
  • React
  • Server Components
  • Tailwind CSS
  • shadcn/ui
  • Base UI
  • next-intl
  • Motion
الهاتف
6
  • Flutter
  • Bloc / Cubit
  • go_router
  • get_it
  • Firebase
  • Ionic
البيانات
4
  • PostgreSQL
  • Redis
  • MongoDB
  • Prisma migrations
البنية التحتية
9
  • Docker
  • Docker Compose
  • Turborepo
  • pnpm
  • MinIO / S3
  • Traefik
  • Cloudflare
  • Infisical
  • VPS (Ubuntu)
تنسيق الحاويات
7
  • Kubernetes (kubeadm)
  • HA control plane / HAProxy
  • Flannel CNI
  • MetalLB
  • NGINX Ingress
  • cert-manager
  • Helm
معالجة الوسائط
5
  • Sharp
  • FFmpeg
  • HLS
  • WebP pipelines
  • SVG sanitisation

نبذة

كيف وصلتُ إلى هنا.

درستُ هندسة الحاسوب في جامعة إسطنبول أيدن، وبدأتُ العمل قبل أن أُنهي الدراسة — بالواجهات الأمامية أوّلاً، سنة 2020، ضمن فريق صغير في إسطنبول يُطلق تطبيق جوّال وأعمال ويب للعملاء.

لم تكفِني الواجهة الأمامية طويلاً. تحرّكتُ نحو عمق المنظومة لأنّ المسائل المثيرة كانت تتبيّن دائماً على الجانب الآخر من الواجهة البرمجية: كيف تُسوَّى دفعة حين يغلق العميل التطبيق في منتصف إعادة التوجيه، ولماذا ينهار مرشّح السعر لحظة تسعير المنتجات بعملات مختلفة، وماذا يحدث لملفٍّ مرفوع يدّعي أنّه JPEG وليس كذلك. وبحلول 2021 كنتُ أبني منتجات كاملة — نظام مستودعات، وتطبيق متجر متعدّد المنصّات ببوّابتَي دفع، والواجهة الخلفية التي تخدمهما.

ما أفعله اليوم هو أن أتسلّم نشاطاً تجارياً يحتاج نظاماً حقيقياً فأبنيه بكامله: نموذج البيانات، والواجهة البرمجية، والمتجر، وأدوات الإدارة التي يستخدمها الموظّفون يومياً، وتطبيق الجوّال، والبنية التحتية التي يعمل عليها. والعمل منفرداً على هذا السطح كلّه جعلني حذراً بطريقة محدّدة — أصمّم بحيث تكون الأخطاء مستحيلة بنيوياً لا مكتشَفة لاحقاً، لأنّه لا يوجد مهندس ثانٍ يلتقطها.

أعمل بالعربية والتركية والإنجليزية، وأبني البرمجيات على المنوال نفسه. فكون العربية تُكتب من اليمين إلى اليسار قيدٌ معماريّ يمتدّ إلى التوجيه والتخطيط ومخطّط قاعدة البيانات، لا مهمّة ترجمة في النهاية. وكوني أطلقتُ ذلك عدّة مرّات هو الجزء الأصعب اكتساباً بسرعة في خبرتي.

تواصل

لنتحدّث.

أبحث عن فرص في هندسة البرمجيات المتكاملة، عن بُعد أو في إسطنبول، وأقبل أعمالاً تعاقدية منتقاة. وأسرع طريقة للوصول إليّ هي البريد الإلكتروني.