وصف الوظيفة
الأدوار والمسؤوليات
كن جزءاً من سباقات سبرنت أسبوعية تنفذ من الخلفية حسب الترتيب مع المطورين كجزء من فريق أجايل. العمل كـمساهم مستقل بالتنسيق مع فريق من المطورين ومهندسي الاختبار التعاون مع إدارة المنتج والدعم وفرق الهندسة لتحديد الأولويات الإرشاد والمراجعة البرمجية لفريق عن بُعد، وتبني أفضل الممارسات والسياسات، وكتابة المواصفات، ومقالات قاعدة المعرفة والوثائق الداخلية الأخرى العمل عن كثب مع فريق الدعم والتواصل مع مديري النظام لدى العملاء، وDBA والمطورين لحل المشكلات تقديم توصيات تقنية واستراتيجية لدعم متطلبات العمل التعاون مع إدارة المنتج والدعم وفرق الهندسة من أجل تحديد الأولويات، وفهم المتطلبات، وصياغة خطط الاختبار وتنفيذها وفقاً لذلك. القدرة على العمل في القضايا العاجلة.
الملف المرشح المطلوب
7+ سنوات من الخبرة في تطوير Java
فهم قوي لمفاهيم البرمجة الكائنية التوجه (OOP)
أساس قوي في تطوير Java Core وJ2EE بما في ذلك أفضل الممارسات وأنماط التصميم
خبرة في إطار Spring-MVC/Spring-Boot
خبرة في خدمات REST ويب في Java
أساسيات تصميم قواعد البيانات ومعرفة بـ JPA
خبرة في التحليل والتصميم وتطوير متطلبات الأعمال
خبرة باستخدام TDD، معايير قابلية اختبار الكود، JUnit/Mockito
خبرة في تطوير مكونات backend أو خدمات أو واجهات برمجة تطبيقات في Java أو لغة مشابهة
مهارات قوية في كتابة كود برمجي عالي الأداء ومتعدد الخيوط وفعال وقابل للصيانة
خبرة في تصميم وتنفيذ خدمات ميكروية عالية القابلية للتوسع الأداء العالي
المألوف بـ HTTP، REST، HTML، JSON، والتقنيات المستندة إلى الويب المشابهة، ومع بناء أنظمة موزعة متعددة الطبقات وتواصل بينها (مثل الجزء الخلفي من مواقع الويب المعقدة)
معرفة بـ SQL وخبرة في العمل مع مخازن البيانات عبر الإنترنت (واحد من MySQL، PostgreSQL، Oracle، MS SQL Server)
خبرة في بناء وصيانة وتوسيع أنظمة موزعة كبيرة. يمكنك تحديد البدائل في مختلف التنفيذات واتخاذ قرارات حول الحل الأفضل لحالة معينة.
Job Description
Roles & Responsibilities
Be part of a weeks based sprints executing on the backlog in lockstep with developers as part of an Agile team. Work as an independent contributor collaborating with a team of developers and test engineers Collaborate with product management, support and engineering teams in order to establish priorities Mentoring & code reviewing for a remote team setting best practices and policies, writing specs, wiki pages, Knowledge Base articles and other internal documentation Work closely with the Support team, and communicate with customer sysadmins, DBAs and developers for troubleshooting Provide technology recommendations and strategy to support the business requirements Collaborate with product management, support and engineering teams in order to establish priorities, understand requirements, formulate test plans and execute them accordingly. Ability to work on urgent issues.
Desired Candidate Profile
7+ years of experience in Java development
Solid understanding of object-oriented programming OOP concepts
Solid foundation in Java Core and J2EE development fundamentals including best practices and design patterns
Experience in Spring-MVC/Spring-Boot framework
Experience in Java REST web service
DB design fundamentals and knowledge in JPA
Experience in analysis, design, develop business requirements
Experience with TDD, code testability standards, JUnit/Mockito
Experience developing backend components, services or APIs in Java or a similar language.
Strong skills writing high-performance, multi-threaded, efficient and maintainable software code
Experience crafting and implementing highly scalable and performant microservices based applications.
Familiarity with HTTP, REST, HTML, JSON, and similar web-based development technologies, and with building complex multi-tier parallel distributed systems that communicate via them (such as the backend of complex websites)
Knowledge of SQL and experience working with online data stores (one of MySQL, PostgreSQL, Oracle, MS SQL Server)
Experience with building, maintaining and scaling large scale distributed systems. You can identify trade-offs to various implementations and can make decisions about which solution would be best for a given situation.