مطور ++C

انضم إلينا للعمل في وظيفة مطوّر C++
الموقع: برلين، ألمانيا

هل تؤمن بالجمال عند التحدث عن البرمجة؟ هل تهتم كثيرًا بالخوارزميات الأنيقة؟ هل تجيد لغة C++‎؟ إذا كنت كذلك، فإننا نود لقاءك. إليك فيما يلي ما نقدمه لك بإيجاز:

  • مجموعة كبيرة من مهام التطوير شديدة الصعوبة بلغة C++
  • فريق عمل عالمي من أصحاب العقول اللامعة
  • بيئة عمل تساعد هذا الفريق على البقاء والتقدم
  • الوقت الكافي للتأكد من دقة كل تفاصيل الحل الذي تقدمه
  • تنظيم مسطح ومجال واسع لعرض أفكارك
  • لا توجد اجتماعات مقررة
  • ساعات عمل مواتية للأسرة، بدون مواعيد نهائية محددة، وبدون عمل إضافي
  • دعم الانتقال للإقامة بمكان آخر
  • راتب تنافسي منذ البداية مع زيادة ليصل إلى 120 ألف يورو سنويًا بعد مرور عام واحد
التقدم بطلب الآن عبر البريد الإلكتروني

نبذة عن الشركة

Thank you, think-cell, for sponsoring the Standard C++ Foundation and challenging our Microsoft compiler team with complex C++ code.

Herb Sutter, President of the Standard C++ Foundation

think-cell هي شركة برمجيات سريعة النمو يقع مقرها في برلين بألمانيا، وينصب تركيزها على تطوير منتجات الرسومات المتميزة. يعتمد ما يزيد عن 750,000 مستخدم في شتى بقاع العالم على برامجنا في أعمالهم اليومية لأنها تساعدهم في إنشاء العروض التقديمية الرسومية على نحو أكثر سهولة وسرعة ومتعة. ويضم عملاؤنا العديد من الشركات الاستشارية الشهيرة والمؤسسات الدولية الكبرى.

لسنا بحاجة إلى تقديم أي تنازلات فيما يتعلق بجودة التعليمات البرمجية وجمالها، لأن شركة think-cell تعد مؤسسة ربحية وليس لديها أي مستثمرين خارجيين. ونحن على استعداد بالمضي قدمًا في تطوير خوارزميات معقدة وتحسين واجهات المستخدم التي نقدمها، ونفخر بعملائنا الكثيرين الراضين عن مستوى الخدمة. وحقيقة أن الشركة يملكها ويديرها مجموعة من علماء الحاسب المحنّكين هي بالتأكيد السبب الرئيسي الذي ساهم في خلق بيئة عمل جذبت مطورين متميزين للعمل بالشركة وشجعتهم على البقاء بها.

نبذة عن البرامج

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

نقدم لكم فيما يلي بعض النقاط الرئيسية لما أنجزناه حتى الآن.

اللغة

  • لغة C++‎ هي أساس كل ما نقوم به. حتى بوابة العملاء الخاصة بنا مكتوبة أيضًا بلغة C++‎. وقد نستعين ببعض التعليمات البرمجية للربط مع برامج التجميع عند الضرورة، وتتم كتابة البرامج النصية الإنشائية بلغة Python، وبخلاف ذلك، تستخدم think-cell لغة C++‎ فقط.
  • نستخدم عادة ميزات ++C، مثل تعبيرات lambda ومراجع rvalue في قاعدة التعليمات البرمجية الخاصة بنا، ولقد انتقلنا إلى استخدام C++17 التي تدعمها المحولات البرمجية لدينا.
  • تموّل الشركة مجموعة العمل المعنية بلغات البرمجة التابعة للمعهد الألماني للتوحيد القياسي (DIN). وبعض الموظفين لدينا هم أعضاء في هذه الهيئة وأدلوا بأصواتهم في عملية التوحيد القياسي العالمي للمواصفة ISO/IEC C++‎.
  • ندعم مؤسسة Standard C++‎ لمساعدتها في تعزيز فهم واستخدام لغة C++‎ القياسية الحديثة في جميع المحولات البرمجية والأنظمة الأساسية.

المكتبة

  • نستخدم Boost في التعليمة البرمجية الخاصة بنا، مثل، Boost.Spirit للتحليل.
  • نمتلك مكتبة بمجموعتنا الخاصة، على نفس غرار مكتبة Boost.Range أو range-v3 لإيريك نيبلر، ولكن بها ميزات أخرى، كتوحيد المكررات الداخلية والخارجية على سبيل المثال. ولقد ألقينا محاضرة تدور حول هذا الموضوع، ومعظم التعليمات البرمجية متاحة للعامة.
  • انتهينا من إعداد مكتبة خاصة بنا مشتركة بين النظم الأساسية لدعم نظامي التشغيل Mac وWindows بقاعدة تعليمات برمجية واحدة.
  • نمتلك مكتبات بنظام عدّ المراجع واستمرار الكائنات بهدف حفظ شجرات الكائنات واستعادتها بالكامل.
  • تتوفر لدينا بنية تحتية شاملة للإبلاغ عن الأخطاء. تظل التأكيدات وفحوصات الأخطاء في التعليمة البرمجية للإصدار، وتقوم برامجنا تلقائيًا بإبلاغ الخادم عن الأخطاء. يحلل الخادم بعدئذٍ الخطأ ويصنّفه ثم يرسله إلى قاعدة بيانات يمكن للمطورين الوصول إليها. إذا كان أحد التحديثات يساعد في إصلاح الخطأ، يمكن للمستخدم تنزيل التحديث مباشرةً من صفحة ويب الاستجابة للأخطاء.

الخوارزميات

  • تأسست شركة think-cell على فكرة التوصل إلى خوارزمية تعمل على تخطيط الشرائح تلقائيًا، وما زلنا في رحلتنا نحو تحقيق هذه الرؤية الطموحة. ويمكنك الاطلاع على أحدث إصداراتنا قيد العمل!
  • طوّرت الشركة خوارزمية جديدة تقوم بوظيفة التسمية التلقائية بالسحابة النقطية التي تسمح بوضع التسميات بعيدًا عن النقاط الفعلية.
  • طوّرت الشركة خوارزمية جديدة تعمل على تسمية المخططات العمودية تلقائيًا.
  • نتعاون حاليًا مع جون فورست – مؤلف الحل الخطي CLP – للعمل على التسريع من التعليمة البرمجية البسيطة simplex مع أنواع المشكلات التي تواجهنا.
  • طوّرت الشركة العديد من بُنى البيانات العامة التي لا تندرج ضمن C++‎ أو Boost، مثل الأقسام.
  • لا يقتصر دور برامجنا على إنشاء مخططات فقط، ولكنها قادرة على قراءتها مرة أخرى من الورق. نعتمد على كل من OpenCV ومكتبة معالجة الصور Leptonica كأدوات للتعرف على المخططات.

الهندسة العكسية

  • نجري العديد من عمليات الهندسة العكسية باستخدام برنامج فك التجميع IDA من Hex-Rays حتى ننفذ المهام التي يصعب إنجازها عبر واجهة برمجة التطبيقات Microsoft Office API الموثقة.
  • ربما نكون قد كتبنا أفضل محرك خطف دوال حتى الآن. فمع بدء تشغيل برنامجنا في كل مرة، نقوم بتصحيح الملفات التنفيذية لـ Microsoft Office في الذاكرة. وبدلاً من الترميز المضمن الذي يتعامل معه إجراء التصحيح، نبحث عن قطع صغيرة من التعليمة البرمجية للتجميع حتى تصمد أمام التغييرات الصغيرة في ملفات التنفيذ.

نبذة عن هذه الوظيفة

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

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

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

تشجع شركة think-cell على تحقيق توازن صحي بين الحياة العملية والاجتماعية. فنحن لا نعمل في المساء أو خلال عطلات نهاية الأسبوع، كما نساعد عائلات موظفينا بتوفير مربية تابعة للشركة بدوام كامل. ويتمثل دور المربية في رعاية الأطفال بالمجان عندما يكونون مرضى، أو في حالة الرغبة في قضاء أمسية خارج البيت.

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

التقدم بطلب الآن عبر البريد الإلكتروني

المزيد من التفاصيل حول تطوير البرامج وتشغيلها

ما بيئة التطوير المتكامل (IDE) والمحولات البرمجية التي تستخدمونها؟

نستخدم Visual Studio مع المحول البرمجي MSVC على نظام التشغيل Windows وXcode مع Clang على نظام التشغيل Mac. وكما أوضحنا سابقًا، نقوم بالتجميع من نفس التعليمة البرمجية المصدر بالنسبة لكلا النظامين.

ما مجموعة الأدوات التي تستخدمونها مع واجهة المستخدم؟

نستخدم OpenGL على نظام التشغيل Mac وDirectX على نظام التشغيل Windows لعرض واجهة المستخدم الخاصة بنا أعلى محتويات نافذة PowerPoint وExcel.

ما الذي تستخدمونه لتتبع المشكلات؟

استخدمنا نظام Request Tracker (RT)‎ لسنوات عدة حتى الآن، لكننا نبحث عن بدائل في الوقت الحالي.

ما نظام التحكم في الإصدار الذي تستخدمونه؟

نعتمد على أحد أنظمة Subversion للتحكم في الإصدار لأن لدينا الكثير من الملفات الثنائية التي يجب علينا التعامل معها، بالإضافة إلى التعليمة البرمجية العادية. فهذا يمنح المطورين الحرية في اختيار عميل svn أو git، أيما شاءوا.

هل تجرون اختبارات على الوحدات؟

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

هل لديكم خادم إنشاء؟

يتوفر لدينا جهاز مخصص لتشغيل برنامج Jenkins حتى يتم إنشاء المشروع باستمرار، وفي حالة الإخفاق، يرسل هذا الجهاز بريدًا إلكترونيًا تلقائيًا للمطورين المسؤولين عن التعليمة البرمجية منذ آخر عملية إنشاء ناجحة.

هل تتبعون قواعد معينة في إنشاء التعليمات البرمجية؟

تلتزم الشركة بمجموعة مكتوبة من قواعد إنشاء التعليمات البرمجية مع وسائط قوية جدًا لكل واحدة منها. ولا نتردد في تحديث قواعدنا في إنشاء التعليمات البرمجية عندما نجد وسائط جديدة أو أفضل.

ماذا تعتقدون بشأن تحليل التعليمات البرمجية الثابت؟

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

ما رأيكم في Agile كأسلوب لتطوير البرامج؟

نحن على دراية بأساليب تطوير البرامج الحديثة المتمحورة حول حركة Agile والتي تستخدم كل ما هو مفيد لمشروعنا دون اعتراضه. وتشمل هذه الأساليب عمليات استعراض النظراء، ودرجة عالية من التنظيم الذاتي والمساءلة، واختبارات قابلية الاستخدام العشوائية، والاختبارات ذات الطابع الأكثر رسمية بالاستعانة بمستخدمين حقيقيين، والاستعداد للأخذ في الاعتبار المتطلبات أو النتائج الجديدة في أي مرحلة من عملية التطوير، والتحديثات الدورية التلقائية، وحلقة الملاحظات الضيقة مع المستخدمين استنادًا إلى ملاحظات المستخدمين النشطين والتقارير التلقائية من البرامج، واستخدام أفضل الأدوات التي يمكن شراؤها، مثل وحدات التخزين RAID بمحركات أقراص ذات حالة صلبة وكميات هائلة من الذاكرة العشوائية المؤقتة RAM لكل مطور، وقضاء بعض الوقت للتأكد من تلقي كل تفصيلة من عملية التنفيذ للاهتمام الكافي الذي تستحقه، وعدم تمضية الوقت في كتابة تعليمة برمجية غير ضرورية.

هل هذا يبدو جيدًا بالنسبة لك؟

إذا كنت الشخص المنشود الذي نتطلع إليه في فريق العمل، فالرجاء إرسال طلبك الإلكتروني للتقدم للوظيفة.

التقدم بطلب الآن عبر البريد الإلكتروني

هل تريد معرفة المزيد؟

إذا كانت لديك أي أسئلة حول العمل في think-cell أو فرص العمل المتاحة أو فعاليات التوظيف، فيُرجى التواصل مع الزميلة ماريسا فريز.

hr@think-cell.com
+49 30 666473-10

ماريسا فريز، ممثلة إدارة الموارد البشرية في think-cell

تستخدم think-cell ملفات تعريف الارتباط لتحسين وظيفة هذا الموقع وأدائه وأمانه. موافقتك ضرورية إذا كنت تريد استخدام الوظيفة الكاملة لهذا الموقع. يمكن العثور على المزيد من المعلومات حول استخدام ملفات تعريف الارتباط من قِبل think-cell وموافقتك وحقوق الخصوصية الخاصة بك في نهج الخصوصية الخاص بنا.