Job description
Company culture :
Aba Technology is a company driven by innovation, where creativity, experimentation, and bold thinking shape everyday work. This entrepreneurial mindset is supported by strong structure and process discipline, ensuring efficiency and consistent quality. Teams thrive in a collaborative and caring environment that values trust, support, and close teamwork. While performance and competition play a lighter role, the focus remains on agility, collective alignment, and impactful innovation.
Job :
Technical Leadership
• Define the frontend architecture (choice of frameworks, design system, project structure, state management strategy, micro-frontends if applicable).
• Establish and enforce code standards (guidelines, linting, conventions, systematic code reviews).
• Make technical decisions and manage technical debt (technical roadmap, planned refactoring).
• Carry out the most complex developments and proofs of concept.
• Ensure quality through testing strategy (unit, integration, E2E - Jest/Vitest, Testing Library, Playwright/Cypress).
Team Management
• Mentor and develop the skills of a team of 3 to 6 frontend developers (mentoring, pair programming, regular feedback).
• Participate in recruitment (technical interviews, tests) and onboarding of new hires.
• Lead technical rituals (architecture reviews, frontend guilds, knowledge sharing).
• Estimate workload and contribute to sprint planning and estimations.
Product and Design Collaboration
• Work closely with Product Managers and UX/UI designers to transform mockups into high-performing and accessible interfaces.
• Challenge functional specifications from a feasibility and user experience perspective.
• Contribute to the construction and governance of the design system.
Performance, Accessibility, and Security
• Optimize web performance (Core Web Vitals, lazy loading, code splitting, caching, SSR/SSG).
• Ensure accessibility (WCAG 2.1/2.2, RGAA) and cross-browser/cross-device compatibility.
• Apply frontend security best practices (CSP, XSS/CSRF protection, secure token management) in coordination with security teams.
• Oversee frontend monitoring (Sentry, performance analytics, RUM).
Required profile :
Hard Skills
• Education: Master's degree in Computer Science or equivalent (experience is valued).
• Experience: 5 to 8 years in frontend development, with at least 1 year in a lead or technical referent role.
• Assets: Open-source contributions, design system experience, backend knowledge (Node.js) to communicate with fullstack teams.
• Languages: JavaScript (expert), TypeScript (expert), HTML5, CSS3/Sass.
• Frameworks: In-depth mastery of React JS with Next.js/Nuxt a plus.
• State management: Redux, Zustand, or equivalents.
• Tooling: Vite/Webpack, npm/pnpm, monorepos (Turborepo/Nx).
• Testing: Jest/Vitest, Testing Library, Playwright, or Cypress.
• APIs: REST and GraphQL consumption, cache and error management.
• Design systems: Storybook, design tokens, reusable components.
Soft Skills:
• Natural leadership and ability to unite without direct hierarchical authority.
• Excellent communication (technical explanation to non-technical people).
• Product and user experience mindset.
• Demand for quality balanced with pragmatism (time-to-market).
• Ability to make decisions and stand by them.
وصف الوظيفة
ثقافة الشركة :
Aba Technology هي شركة تقودها الابتكار، حيث تشكل الإبداع والتجربة والتفكير الجريء العمل اليومي. يدعم هذا mindset الريادي هيكل قوي وانضباط في العمليات، مما يضمن الكفاءة وجودة متسقة. تتطور الفرق في بيئة تعاونية ورعاية تقدر الثقة والدعم والعمل الجماعي الوثيق. بينما تلعب الأداء والمنافسة دورًا أخف، يظل التركيز على الرشاقة، والتوافق الجماعي، والابتكار ذو التأثير.
العمل :
القيادة التقنية
• تحديد هندسة الواجهة الأمامية (اختيار الأطر، نظام التصميم، هيكل المشروع، استراتيجية إدارة الحالة، الميكرو-فروانتدس إذا كان ذلك مناسبًا).
• وضع معايير الشفرة وفرضها (الإرشادات، التحقق البرمجي، الاتفاقيات، مراجعات الشفرة النظامية).
• اتخاذ قرارات تقنية وإدارة الدين التقني (خارطة الطريق التقنية، إعادة الهيكلة المخطط لها).
• تنفيذ أكثر التطورات تعقيدًا وإثباتات المفاهيم.
• ضمان الجودة من خلال استراتيجية الاختبار (وحدات، تكامل، End-to-End - Jest/Vitest، Testing Library، Playwright/Cypress).
إدارة الفريق
• توجيه وتطوير مهارات فريق من 3 إلى 6 مطورين أماميين (توجيه، برمجة مزدوجة، تغذية راجعة منتظمة).
• المشاركة في التوظيف (المقابلات التقنية، الاختبارات) وتوجيه الموظفين الجدد.
• قيادة الطقوس التقنية (استعراضات الهندسة، نقابات الواجهة الأمامية، مشاركة المعرفة).
• تقدير عبء العمل والمساهمة في تخطيط السبرنت والتقديرات.
التعاون مع المنتج والتصميم
• العمل عن كثب مع مديري المنتجات ومصممي UX/UI لتحويل النماذج المصغرة إلى واجهات عالية الأداء وقابلة للوصول.
• التحدي في المواصفات الوظيفية من منظور الجدوى وتجربة المستخدم.
• المساهمة في بناء وحوكمة نظام التصميم.
الأداء، الوصولية، والأمان
• تحسين أداء الويب (Core Web Vitals، التحميل الكسول، تقطيع الشفرة، التخزين المؤقت، SSR/SSG).
• ضمان الوصولية (WCAG 2.1/2.2، RGAA) والتوافق عبر المتصفحات/الأجهزة.
• تطبيق أفضل ممارسات أمان الواجهة الأمامية (CSP، حماية XSS/CSRF، إدارة الرموز الآمنة) بالتنسيق مع فرق الأمن.
• الإشراف على مراقبة الواجهة الأمامية (Sentry، تحليلات الأداء، RUM).
الملف الشخصي المطلوب :
المهارات التقنية
• التعليم: شهادة ماجستير في علوم الكمبيوتر أو ما يعادلها (تُقدَّر الخبرة).
• الخبرة: 5 إلى 8 سنوات في تطوير الواجهة الأمامية، مع سنة واحدة على الأقل في دور قيادي أو كمرجع تقني.
• الأصول: مساهمات مفتوحة المصدر، خبرة في نظام التصميم، معرفة بالخلفية (Node.js) للتواصل مع فرق التطوير الشامل.
• اللغات: JavaScript (خبير)، TypeScript (خبير)، HTML5، CSS3/Sass.
• الأطر: فهم عميق لـ React JS مع Next.js/Nuxt يعد ميزة.
• إدارة الحالة: Redux، Zustand، أو ما يعادلها.
• الأدوات: Vite/Webpack، npm/pnpm، monorepos (Turborepo/Nx).
• الاختبار: Jest/Vitest، Testing Library، Playwright، أو Cypress.
• APIs: استهلاك REST وGraphQL، إدارة التخزين المؤقت والأخطاء.
• أنظمة التصميم: Storybook، Design tokens، مكونات قابلة لإعادة الاستخدام.
المهارات الناعمة:
• قدرة قيادية طبيعية ووحدة الصف بدون سلطة هرمية مباشرة.
• تواصل ممتاز (شرح تقني للأشخاص غير التقنيين).
• عقلية المنتج وتجربة المستخدم.
• مطلب للجودة مع الواقعية (الوقت للوحدة السوقية).
• القدرة على اتخاذ القرارات والالتزام بها.