وصف الوظيفة
الأدوار والمسؤوليات
تدير شركتنا أحد أكبر عنقود Elasticsearch في فرنسا، حيث تدفع محرك بحث عالي الأداء مُطبق على أحد أكثر قواعد البيانات براءات الاختراع العالمية شمولاً في السوق. ضمن فريق "البيانات كخدمة" (DaaS)، نحن اللب البرمجي والهيكلي لهذه المنصة. نصمّم هياكل البيانات (التهيئات)، نطوّر خطوط إدخال هائلة، نكتب إضافات مخصصة لـ Elasticsearch، ونُدير خلفية الاستعلام والتخزين المؤقت. فريق DaaS مسؤول عن أداء التطبيق، وتحسين الفهرسة، وملاءمة النتائج. كجزء من تطوير أعمالنا في تونس، نبحث عن مهندس Elasticsearch خبير وواجهة خلفية Java ليصبح خبيراً فنياً في فريقنا المحلي ويتعاون بشكل وثيق مع الفرق في فرنسا.
مهامك:
تحت إشراف فريق DaaS، ستغطي مسئولياتك كامل دورة البيانات وأداء Elasticsearch، من التطوير حتى التحقيق في الإنتاج:
1. تصميم Elasticsearch و الأداء:
تصميم وتحسين وتطوير نمذجة البيانات (التهيئات، المحولات، المحللات، أنواع البيانات) لضمان سرعات بحث عالية على ملايين من المستندات الكبيرة.
تطوير امتدادات وإضافات محددة بلغة Java متكاملة مباشرة مع Elasticsearch لتلبية احتياجات عمل معقدة لمعالجة البراءات.
المشاركة النشطة في التحضير، الاختبار، والتحقق من الإصدارات الكبرى والصغرى من تجمع ES.
2. تطوير الواجهة الخلفية وخطوط الأنابيب (Java):
تطوير وصيانة خلفية إدارة الاستعلام لـ Elasticsearch وأنظمة التخزين المؤقت ذات الأداء العالي.
تصميم وتحسين برامج تحميل البيانات (إدخال بيانات هائل/دفعات) وتدفقات تحديث الفهرسة في الوقت الفعلي.
3. المراقبة، التحسين والدعم الإنتاجي:
تحليل أداء العنقود (معدلات البحث والفهرسة، التأخيرات، استخدام JVM، جمع القمامة، Heap) من أجل تحسين استباقي.
كن نقطة الاتصال التقنية لِبحوث حوادث الإنتاج (بالإشتراك مع فريق الأنظمة): الاستعلامات البطيئة، العقد غير المستقرة، إلخ.
ضمان التخطيط للقدرات من منظور التطبيق (تحديد أحجام الشرائح، القطع، العقد).
المرشح المثالي
- المهارات التقنية (مهارات صلبة):
- خبرة Elasticsearch: لديك فهم عميق لبنية Elasticsearch الداخلية (Lucene، التقسيم، الشرائح، دورة حياة الفهرس، التجميعات المتقدمة). تعرف كيف تحلل وتُحسّن الاستعلامات المعقدة (Query DSL). لديك إلمام بفهرسة وبحث المستندات نصية.
- تطوير Java: إتقان كامل لـ Java (Core، التزامن، الأداء) لتطوير الواجهة الخلفية، خطوط الأنابيب، ويفضل إضافات ES.
- الأداء والأنظمة الأساسية: معرفة ممتازة بـ JVM (الضبط، تحليل سجلات GC، تفريغ الخيوط، تفريغات الكومة).
- تطوير Python: معرفة بلغة Python ومكتبات معالجة البيانات (pandas).
- النظام البيئي للبيانات & CI/CD: معرفة جيدة بأدوات البناء والتعبئة الحاويات (Maven، Git، Docker).
- الصفات البشرية والمهارات الاجتماعية (Soft Skills):
- الاستقلالية والدقة: القدرة على اقتراح التحسينات وتحمل المواضيع من البداية للنهاية في سياق ما.
- الذهـن التحليلي والاستقصائي: تستمتع بالتعمق في السجلات والقياسات لحل مشاكل الأداء المعقدة (استكشاف المشاكل).
- التواصل: مستوى ممتاز في الفرنسية (كتابة وتحدثاً) للتفاعل اليومي مع الفريق الذي مقره فرنسا.
Job Description
Roles & Responsibilities
Our company manages one of the largest Elasticsearch clusters in France, powering a high-performance search engine applied to one of the most exhaustive global patent databases on the market. Within the "Data as a Service" (DaaS) team, we are the software and architectural core of this platform. We design data structures (mappings), develop massive ingestion pipelines, write custom plugins for Elasticsearch, and manage the query and caching backend. The DaaS team is responsible for application performance, index optimization, and result relevance. As part of our business development in Tunisia, we are looking for an Expert Elasticsearch and Backend Java Engineer to become a technical expert in our local team and collaborate closely with the teams in France.
Your Missions:
Reporting to the DaaS team, your responsibilities will cover the entire data lifecycle and Elasticsearch performance, from development to production investigation:
1. Elasticsearch Design & Performance:
Design, optimize, and evolve data modeling (mappings, tokenizers, analyzers, data types) to ensure fast searches on millions of large documents.
Develop specific extensions and plugins in Java directly integrated with Elasticsearch to meet complex business needs for patent processing.
Actively participate in the preparation, testing, and validation of major and minor versions of the ES cluster.
2. Backend Development & Pipelines (Java):
Develop and maintain the Elasticsearch query management backend and high-performance caching systems.
Design and optimize data loading programs (massive / batch data ingestion) and real-time index update flows.
3. Monitoring, Optimization & Production Support:
Analyze cluster performance (Search & Indexing throughput, latencies, JVM usage, Garbage Collection, Heap) for proactive optimization.
Be the technical point of contact for production incident investigations (in collaboration with the Systems team): slow queries, unstable nodes, etc.
Ensure capacity planning from an application perspective (sizing of shards, segments, nodes).
Desired Candidate Profile
- Technical Skills (Hard Skills):
- Elasticsearch Expertise: You have a mastery of Elasticsearch's internal architecture (Lucene, sharding, segments, index lifecycle, advanced aggregations). You know how to profile and optimize complex queries (Query DSL). You are familiar with indexing and searching text-based documents.
- Java Development: Perfect mastery of Java (Core, Concurrency, Performance) for backend development, pipelines, and ideally ES plugins.
- Performance & Internals: Excellent knowledge of the JVM (tuning, GC log analysis, thread dumps, heap dumps).
- Python Development: Knowledge of Python and data manipulation libraries (pandas).
- Data & CI/CD Ecosystem: Good knowledge of build and containerization tools (Maven, Git, Docker).
- Human and Relational Qualities (Soft Skills):
- Autonomy and Rigor: Ability to propose optimizations and carry subjects end-to-end in a context.
- Analytical and Investigative Mindset: You enjoy digging into logs and metrics to solve complex performance issues (troubleshooting problems).
- Communication: Excellent level of French (written and oral) for daily interaction with the team based in France.