تطوير ميزات جديدة لنظام iOS تمكن المستخدمين من الاتصال وتكوين والتحكم في أحدث الأجهزة المصنعة من قبل العميل (أجهزة الاستشعار والمحركات والأجهزة المتصلة بالشبكة). التعاون مع فرق متعددة التخصصات: مهندسي البرامج الثابتة/المضمنة، مهندسي السحابة/واجهات برمجة التطبيقات، مصممي تجربة المستخدم/واجهة المستخدم، فريق ضمان الجودة/اختبارات الأتمتة. صيانة وتوسيع بنية تطبيق iOS: الوحداتflows، طبقات الاتصال، واجهة المستخدم، إدارة الحالة. ضمان جودة الكود، قابلية الاختبار، الأداء، قابلية الصيانة، وتميز تجربة المستخدم. مساعدة في دمج أجهزة جديدة: اكتشاف الجهاز (بلوتوث/واي فاي)، الإقران، تحديث البرامج الثابتة، مزامنة السحابة. تشخيص وحل المشاكل (الاتصال، بلوتوث/واي فاي، الشبكة المتقطعة، الذاكرة والأداء). المشاركة في مراجعة الكود، مناقشات التصميم، تحسينات البنية، وتوجيه أعضاء الفريق المبتدئين. دعم دورة حياة التطبيق الكاملة: تعريف الميزة، التطوير، الاختبار الداخلي، إصدار متجر التطبيقات، ملاحظات المستخدم، الصيانة. الدعوة لأفضل الممارسات (اختبارات الوحدة، اختبارات واجهة المستخدم، التكامل المستمر، التصميم المعياري، التحكم في الإصدارات).
- تطوير ميزات جديدة لنظام iOS تمكن المستخدمين من الاتصال وتكوين والتحكم في أحدث الأجهزة المصنعة من قبل العميل (أجهزة الاستشعار والمحركات والأجهزة المتصلة بالشبكة).
- التعاون مع فرق متعددة التخصصات: مهندسي البرامج الثابتة/المضمنة، مهندسي السحابة/واجهات برمجة التطبيقات، مصممي تجربة المستخدم/واجهة المستخدم، فريق ضمان الجودة/اختبارات الأتمتة.
- صيانة وتوسيع بنية تطبيق iOS: الوحداتflows، طبقات الاتصال، واجهة المستخدم، إدارة الحالة.
- ضمان جودة الكود، قابلية الاختبار، الأداء، قابلية الصيانة، وتميز تجربة المستخدم.
- مساعدة في دمج أجهزة جديدة: اكتشاف الجهاز (بلوتوث/واي فاي)، الإقران، تحديث البرامج الثابتة، مزامنة السحابة.
- تشخيص وحل المشاكل (الاتصال، بلوتوث/واي فاي، الشبكة المتقطعة، الذاكرة والأداء).
- المشاركة في مراجعة الكود، مناقشات التصميم، تحسينات البنية، وتوجيه أعضاء الفريق المبتدئين.
- دعم دورة حياة التطبيق الكاملة: تعريف الميزة، التطوير، الاختبار الداخلي، إصدار متجر التطبيقات، ملاحظات المستخدم، الصيانة.
- الدعوة لأفضل الممارسات (اختبارات الوحدة، اختبارات واجهة المستخدم، التكامل المستمر، التصميم المعياري، التحكم في الإصدارات).
الملف الشخصي المرغوب للمرشح
يجب أن يكون لديك خبرة قوية (5 سنوات أو أكثر) في تطوير تطبيقات iOS الأصلية باستخدام Swift، بما في ذلك فهم عميق لـ iOS SDK وUIKit/SwiftUI. خبرة في دمج الأجهزة المتصلة (مثل بلوتوث LE، وحدات الواي فاي، إنترنت الأشياء، تدفقات الإقران) أو على الأقل وعي قوي بعمليات الاتصال. سجل حافل في بناء تطبيقات ذات جودة إنتاجية: بنية معيارية، كود نظيف، قابلية صيانة، قابلية اختبار. الإلمام بالبرمجة غير المتزامنة (مثل Combine، RxSwift، async/await) وإدارة تدفقات الأحداث. الإلمام بواجهات برمجة التطبيقات RESTful أو خدمات السحابة، تسلسل/فك تسلسل JSON، التعامل مع فشل الشبكة، التخزين المؤقت، السلوك دون اتصال. معرفة بأنماط البنية المعيارية (MVVM، المنسقون، الهندسة النظيفة). معرفة ببروتوكول MQTT. خبرة مع التحكم في الإصدارات (Git)، خطوط أنابيب CI/CD، اختبارات الوحدة (XCTest/XCUITest) ويفضل اختبارات واجهة المستخدم/الأتمتة. فهم جيد لإدارة الذاكرة، تعدد المسارات، تحسين الأداء، وخبرة في حل مشاكل الاتصال الشائعة للأجهزة المتنقلة. القدرة على العمل بشكل تعاوني في فريق رشيق/سكrum، التواصل بفعالية مع أصحاب المصلحة غير التقنيين وفرق هندسة الأجهزة. إجادة اللغة الإنجليزية والقدرة على فهم تبعيات المنتج/البرامج الثابتة بسرعة.
يفضل أن يكون لديك خبرة مع SwiftUI أو ترحيل كود UIKit القديم إلى SwiftUI. خبرة مع RxSwift أو أطر عمل تفاعلية أخرى، أو الإلمام بـ Combine. خبرة مع منصات إنترنت الأشياء/أنظمة الأجهزة المتصلة (اكتشاف الجهاز، الإعداد، التحديثات عبر الهواء، القياسات عن بعد). الإلمام ببروتوكولات بلوتوث LE (BLE)، إعداد الواي فاي، أمان الشبكة، و/أو التفاعل مع البرامج الثابتة/المضمنة. خبرة باستخدام أطر حقن التبعية، التجزئة (عدة وحدات في تطبيق)، واستخدام Swift Package Manager أو CocoaPods. الإلمام باختبارات واجهة المستخدم الآلية (XCUITest) وأدوات الأداء/البروفايل (Instruments). خبرة في مجال الأجهزة الاستهلاكية أو المنزل الذكي، على سبيل المثال، الأجهزة، أجهزة الاستشعار، الروبوتات. الإلمام بإطارات تحليلات/قياسات عن بعد، إشارات الميزات، التكوين عن بعد، وتقارير الأعطال. خبرة العمل في فرق موزعة جغرافياً أو تطبيقات متعددة المناطق.
Develop new iOS features that enable users to connect, configure and control latest devices manufactured by client (sensors, motors, networked appliances). Collaborate with cross-functional teams: firmware/embedded engineers, cloud/API engineers, UX/UI designers, QA/test automation. Maintain and extend the iOS app's architecture: modules, flows, connectivity layers, UI, state-management. Ensure code quality, testability, performance, maintainability and UX excellence. Help onboard new hardware integrations: device discovery (Bluetooth/WiFi), pairing, firmware update flow, cloud sync. Diagnose, debug and resolve issues (connectivity, Bluetooth/WiFi, intermittent network, memory/performance). Participate in code reviews, design discussions, architecture improvements and mentor more junior team members. Support the full mobile app lifecycle: feature definition, development, internal test, App Store release, user feedback, maintenance. Advocate best practices (unit testing, UI testing, continuous integration, modular design, version control).
- Develop new iOS features that enable users to connect, configure and control latest devices manufactured by client (sensors, motors, networked appliances).
- Collaborate with cross-functional teams: firmware/embedded engineers, cloud/API engineers, UX/UI designers, QA/test automation.
- Maintain and extend the iOS app's architecture: modules, flows, connectivity layers, UI, state-management.
- Ensure code quality, testability, performance, maintainability and UX excellence.
- Help onboard new hardware integrations: device discovery (Bluetooth/WiFi), pairing, firmware update flow, cloud sync.
- Diagnose, debug and resolve issues (connectivity, Bluetooth/WiFi, intermittent network, memory/performance).
- Participate in code reviews, design discussions, architecture improvements and mentor more junior team members.
- Support the full mobile app lifecycle: feature definition, development, internal test, App Store release, user feedback, maintenance.
- Advocate best practices (unit testing, UI testing, continuous integration, modular design, version control).
Desired Candidate Profile
Must have Strong experience (5+ years) developing native iOS apps using Swift, including a solid understanding of iOS SDK, UIKit/SwiftUI. Experience integrating and working with hardware-connected devices (e.g., Bluetooth LE, WiFi modules, IoT, pairing workflows) or, at a minimum, strong awareness of connectivity flows. Proven track record building production-quality apps: modular architecture, clean code, maintainability, testability. Familiar with asynchronous programming (e.g., Combine, RxSwift, async/await) and managing event streams / asynchronous flows. Familiar with RESTful APIs or cloud services, JSON serialisation/deserialisation, handling network failures, caching, offline behaviour. Knowledge of modular architecture patterns (MVVM, Coordinators, Clean Architecture). Knowledge of the MQTT protocol Experience with version control (Git), CI/CD pipelines, unit tests (XCTest/XCUITest) and preferably UI/automation tests. Good understanding of memory management, threading, performance optimisation, and experience resolving common mobile/mobile-device connectivity issues. Ability to work collaboratively in an agile/scrum team, communicate effectively with non-technical stakeholders and device-engineering teams. Fluent in English and able to pick up product/firmware dependencies quickly.
Nice to have Experience with SwiftUI and/or migrating legacy UIKit code to SwiftUI. Experience with RxSwift or other reactive frameworks, or familiarity with Combine. Experience with IoT platforms / connected-device ecosystems (device discovery, provisioning, over-the-air updates, telemetry). Familiarity with Bluetooth LE (BLE) protocols, WiFi provisioning, network security, and/or embedded/firmware interaction. Experience using dependency-injection frameworks, modularisation (multiple modules in an app), and using Swift Package Manager or CocoaPods. Familiarity with automated UI testing (XCUITest) and performance/profiling tools (Instruments). Experience in consumer hardware or smart home domain for example, appliances, sensors, robotics. Familiarity with analytics/telemetry frameworks, feature-flagging, remote config, and crash-reporting. Experience working in geographically distributed teams or multi-region apps.