موقع مفيد جدا لأي حد مهتم بال Data Engineering
بيغطي SQL, Python, Spark, Data Modeling & Architecture
والأهم إنه فيه interview prep + real-world cases قريبة من اللي بيحصل في الشغل
وكذا فيتشر تانيه.
https://t.co/Z7fOMonI2V
Data engineering roadmap
دي حاجة بسيطة على ما افضى لاني مضغوط الفترة دي (ادعولي بضهر الغيب)
١. مبدئيا databases تشوف ال٣ كورسات على مهارة-تك وبعدها udacity sql for data analysis
٢. خلص ال٤ كورسات دول حل بالترتيب على hackerrank ثم datalemur ثم leetcode
٣. يتبع
حاليا بذاكر Specialization على Coursera في Data Engineering
وبرشحه جدا لأي حد مهتم بالمجال سواء لسه بيبدأ أو عنده خبرة
الميزة فيه إنه بيركز على الـ concepts بشكل واضح بعيد عن الكورسات اللي بتبقى marketing لأدوات معينة (زي Microsoft / GCP / IBM)
اهلا بك جيت في ملعبي 😊 جزء من شغلي هو عمل ال technical screenings لوظايف ال data engineers بمختلف المستويات.
في كندا مقابلة الـ Junior Data Engineer مش بتركّز على ألغاز LeetCode، بتركّز على SQL قوي + Python عملي + فهم pipelines + قدرة تشرح شغلك بالإنجليزي بوضوح. السوق بيحب Azure جدًا (بنوك وحكومة) ومعاه AWS وSpark وAirflow.
معظم الشركات بتمشي كده:
Recruiter screen (٢٠–٣٠ دقيقة): خبرتك، الstack ، الراتب المتوقع، هل تقدر تشتغل من كندا / عندك تصريح عمل/اقامة .
Technical screen (٤٥–٦٠ دقيقة): SQL live + أحيانًا Python.
Take-home (مش دايمًا، ٣–٦ ساعات): pipeline صغير أو notebook.
مقابلة تيم / Hiring Manager: مشروعك، data modeling خفيف، debugging.
Behavioral: شغل جماعي، غلطات، تعلم أداة جديدة بسرعة.
SQL مش اخت��اري.
Python مش “اكتب class معقّد”، ده parse ملفات، تجميع، تنضيف، كتابة سكربتات.
Azure مهم جدًا لو هتقدم على بنوك (RBC, TD, CIBC, BMO) أو شركات كبيرة/حكومية: ADF, Databricks, Synapse/Fabric, Data Lake.
AWS مهم في الستارتب والشركات التكنولوجية: S3, Glue, Redshift, Athena.
فهم المفاهيم أهم من حفظ أسماء أدوات: warehouse vs lake، batch vs streaming، star schema، data quality، idempotency.
JOINs بأنواعها
GROUP BY + HAVING
Window functions: ROW_NUMBER, RANK, LAG/LEAD, running totals
CTEs
incremental load
ليه كويري بطيئة (indexes, scans, partitions) على مستوى مبسّط
تحل ٢–٣ مسائل medium في ٣٠ دقيقة من غير ما تلخبط. دي أكتر نقطة بتقع فيها ناس الجونيور.
مش DSA تقيل. اللي بيجي:
قراءة CSV/JSON متبهدل
dict / defaultdict للتجميع
تنضيف nulls وduplicates
كتابة ملف أو تحميل ل DB
التعامل مع تواريخ وtimezone
سكربت صغير “لو الشغل فشل يعيد من غير ما يكرر الداتا”
اختار Stack واحد واتعمّق فيه، متشتتش في تلات كلاودات.
لو هدفك بنوك/شركات كبيرة في تورونتو/أوتاوا: Azure ADF أو Fabric → Databricks/PySpark → ADLS → Synapse/Fabric warehouse.
لو ستارتب/تك: AWS S3 → Glue أو Python → Redshift/Snowflake → Airflow.
احكي عن pipeline بنيته: المصدر → التحويل → الوجهة → المراقبة → إيه اللي كسر وإزاي صلّحته.
إزاي تضمن جودة الداتا من الـ ingestion للـ warehouse.
Daily job بقى أبطأ ٣ مرات، هتحقق من إيه؟ (حج�� الداتا، skew، lock، partition، كويري جديدة، موارد الكلاود�� بيانات متأخرة).
الفرق بين batch وstreaming، وإمتى تختار كل واحد.
إزاي تعمل incremental load مش full refresh كل يوم.
Window function: rolling 7-day average.
SCD Type 2 باختصار (لو سألوا history للـ dimensions).
Spark: إيه الـ shuffle وليه غالي (كفاية مستوى جونيور).
في كندا الـ behavioral مش ديكور. بيستخدموا STAR:
Situation
Task
Action (ركز على اللي انت عملته)
Result (رقم لو ممكن: وقت أقل، duplicates قلت، فشل الـ job قل)
حضّر قصص لـ:
مشكلة جودة داتا
تعلّم أداة بسرعة
خلاف أو سوء فهم مع تيم
ددلاين ضغط
غلط اكتشفته بعد ما الشغل اتشحن
مساعدة حد أو طلب مساعدة (ده بيبان maturity)
جملة مفيدة: الكنديين بيحبوا حد قابل للتعلّم، مش متعالي، وبيوضّح شغله. “I don’t know yet, this is how I’d find out” أحسن من تخمين واثق.
��قافة المقابلة في كندا
الدقة في الميعاد: ادخل الأونلاين قبلها ٥–١٠ دقايق.
الإنجليزي الواضح أهم من اللهجة وعوجة اللسان زي بتوع ايجيبت . اتكلم أبطأ، نظّم أفكارك.
ابحث عن الشركة: منتجهم، هل عندهم lakehouse، أخبار حديثة. سؤال “Why us?” بيتسأل دايمًا.
اللبس: بيزنس كاجوال حتى في الزوم.
متسألش عن العمر/الحالة الاجتماعية، وهم غالبًا مش هيسألوك. لو سألوا حاجة شخصية مش ضرورية، رجّع الموضوع للشغل بأدب.
في الآخر اسأل أسئلة ذكية:
الستاك الحالي وخطط الـ migration
إزاي الجونيور بيتعمله onboarding
مين المستهلك للداتا (analysts ولا ML)
إيه أكبر مشكلة داتا عند التيم دلوقتي
ابعت thank-you إيميل في ن��س اليوم، قصير ومحدد.
لو أنت مش مواطن/مقيم: خليك صريح بدري عن تصريح الشغل (work permit, PGWP, PR). الشركات الصغيرة أحيانًا مش بتعمل sponsorship؛ البنوك والشركات الكبيرة ممكن، بس الجونيور أصعب. متستناش لنهاية المقابلة.
لما يسألوك عن الـ expectation: قول رينج مش رقم واحد، وربطه بالمدينة والمستوى. مثال: “Based on junior roles in Toronto, I’m looking at the 70–85k CAD range, and I’m flexible depending on the total package and growth.”
اتمني النقاط دي تكون كافية كبداية :)
بالتوفيق 🌹
ازاي Netflix بيـStream فيلم واحد لـ100 مليون يوزر في نفس اللحظه منغير ما يكراش او يقع؟
كان عندي تاسك في بروجيكت عندي في الشغل في حته ليها علاقه بالـ Attachments ف هي كانت بتترفع على AWS S3 Buckets ف انا كنت عايز افهم الحته دي عشان مش فاهم Cloud وانا مبحبش اقابل حاجه مفهمهاش واعديها كده، ف سرشت على اليويتوب لحد ما لاقيت واحد هندي عامل بروجيكت لنتفلكس وايه هي التيكنولوجي اللي ورا ستريم الافلام والمسلسلات لكل اليوزرز دول منغير ما السيرفر يقع ومنغير ما يحصل اي هاك
في الاول كده تخيل معايا ان في عندك فيلم 5 جيجا ومدته 3 ساعات
ازاي هتخليني اشوفه منغير ما اضطر احمله عندي وفي نفس الوقت ايه هي الداتا بيز اللي ممكن تشيل في Raw واحد فايل بالحجم ده؟
طب لو 10 افلام؟
طب لو 1000 فيلم؟
اكيد السيرفر هيقع والداتا بيز هتقع ولو موقعتش ف ده Cost$$ عالي جدا
فا ده هيخلينا نقابل مشكله اسمها SSQ
S -> Storage
وهي دي مشكله اننا منقدرش نsave فيديو بالحجم ده في اي داتا بيز لانه هيكون مكلف وهيوقع السيرفر
S -> Streaming
دلوقتي اليوزر عايز يتفرج على الفيلم منغير ما يحمله ف ازاي هيعمل كده؟
ايه التيكنولوجي اللي تخليه يعمل حاجه زي كده؟
Q -> Quality
دلوقتي اليوزر�� سرعه النت عندهم مختلفه عن بعض ازاي نتفليكس بتـSwitch الكواليتي وتقللها لما النت يبتدي يبطئ؟
خلينا نمشي واحده واحده من اول ما الفايل دلوقتي عندي على الهارد ديسك وعايز استريمه..
في الاول انا محتاج اسيف الـ Metadata بتاعت الفيلم في مكان والفيلم نفسه في مكان وهنعرف كمان شويه ليه.. بس خلينا الاول نبقا عارفين اننا عندنا Microservice كل مهمتها اني هرفع عليها داتا الافلام والكاتيجوريز وكل فيلم تبع انهي كاتيجوري وما الى ذلك، حلو كده متفقين؟
اهو دي اول مايكروسيرفيس معانا في البروجيكت وهي content-service ومعمولها connect بـ MySQL داتا بيز، كل وظيفتها اني محتاج اسيف الميتا داتا فيها وعشان تـGenerate ليا ID للفيلم (وده اصلا اهم حاجه هنحتاجها اصلا)
خلصنا كده اول مايكروسيرفيس من الـ4
نيجي للتانيه بقا وهي video-service
دلوقتي احنا كريتنا الميتا داتا بتاعت الفيلم وعملنا الid بتاعه، ماشي وبعدين؟ فين الفيلم؟
المايكروسيرفيس دي هي الزبد كله هي والجايه
دلوقتي احنا اتفقنا اننا مش هنعرف نحط الفليم ده في داتا بيز لان مفيش اي Raw هيتسحمل الحجم ده كله ف احنا هنرفعه على الكلاود على حاجه اسمها S3 جوه AWS ودي عباره زي ما تقول كده انها الهارد ديسك بتاعك بس على الكلاود وهنكريت كده s3 key كده عشان نميز الفيلم ونديله زي الid بتاع الداتا بيز بس هيبقا بتاع الكلاود، حلوه كده؟
دلوقتي ��رضو معرفناش طب وبعدين ما احنا لسه عندنا نفس المشكله انا عايز استريم منغير ما احمل الفيديو كله برضو، فرقت ايه بقا لما احطه على كلاود ولا على اللابتوب بتاعي ما هي هي
هقولك هنا هيجي دور اهم مايكروسيرفيس عندنا هي اللي في التيكنولوجي اصلا اللي بتعمل قصه الستريم كله، ألا وهي encoding-service
ايه يا سيدي بقا قصه الانكودينج ده منغير اي لعبكه كتير
دلوقتي المايكروسيرفيس دي بتشتغل اول لما الفيديو بيترفع على طول على S3 عن طريق اننا بنناديها من video-service microservice عن طريق event من Kafka
ايه Kafka ده برضو؟
ده اللي بيخلي المايكروسيرفسيس تتواصل مع بعض، دلوقتي كل مايكروسرفيس دي تعتبر بروجيكت منفصل، ف انا ازاي هنادي على method من بروجيكت تاني غير اللي انا فيه؟ اكيد غير منطقي ف جاتلنا تيكنولوجي event messaging دي بكل بساطه بتحطها في كل المايكروسيرفسيس بتاعتك اللي هيتواصلو مع بعض وبتديها حاجه اسمها Topic وبتبعته للمايكروسيرفيس التانيه وهي هتنادي على الميثود اللي انت عايزها، حلو كده؟
دلوقتي بعد ما وصلنا للencoding-service ايه اللي بيحصل بقا؟
احنا بناخد الفيلم اللي على الs3 ده وبتبتدي التيكنولوجي بتاعتنا FFmpeg تقسمه chunks صغيره كل 10 ثواني فيديو صغير، يعني الفيلم الساعتين بيتحول ل chunks صغيره كل تشانك عباره عن 10 ثواني
طب ثانيه واحده هو الكواليتي فين في الموضوع ده؟
هقولك بقا ان الفيلم بيتقسم chunks وكل كواليتي بيتعملها فايل فيها التشانكس بتاعت الكواليتي دي، يعني كواليتي ال1080p بتتحط في فولدر لوحدها وال 720p في فولدر لوحدها
حلو جدا ودي خطوه جميله جدا
دلوقتي بقا جه دور اهم تيكنولوجي معانا وهي الـHLS
HTTP Live Streaming
هي دي يا باشا اللي لما بتدوس على الفيلم بتبتدي تديك اول 10 ثواني من الفيلم بتاعك ومش بس كده ده على حسب سرعه النت بتديك الكواليتي ��مان ودي حاجه اسمها: Adaptive bitrate streaming
وفي خلال ما الفيلم شغال بتفضل تحمل هي ال10 ثواني اللي بعده وهكذا، عشان كده لما النت بتاعك بيبقا بطيئ بتلاقي الفيلم وقف، ده عشان سرعه النت مش كفايه انها تنزل الchunk الجايه
طب دلوقتي انا ازاي هشغل الفيلم، يعني فين لينك الفيلم في كل ده؟
هنا هيجي دور اخر مايكروسيرفيس معانا وهي streaming-service
دي يا باشا بتكريتلك لينك للستريم وبتديله انه يأكسباير خلال ��ليكن ساعه، ماهو لو مش بيأكسباير كده هتكون الداتا accessible لكل الناس وكمان اللينك ده بيبقا بتاعك انت بس بالداتا بتاعتك انت بس عشان محدش يقدر يفتحه من براوزر تاني لو مش بنفس اكونتك
واللينك ده بيتسيف في الcache بتيكنولوجي اسمها redis عن طريق اننا بنسيف اللينك فيها بحيث لما تعمل ريفريش ميضطرش كل شويه يكلم aws ياخد منه اللينك وبنخلي الاكسباير بتاعه اقل من اللينك بتاع الكلاود بحوالي 5 دقايق عشان لما ياكسباير في الكاش يقوم مكلم aws على طول ويكريتلك لينك جديد ويسيفه في الكاش، لانه لو معلمش كده بمجرد ما اللينك بتاعك ياكسباير الفيلم هيقفل في وشك وهتضطر تفتحه من الاول وجديد
وبس، طبعا الموضوع في تفاصيل كتيره جدا وانا رفعت الكود هنا:
https://t.co/rEwjOmczHg
وكمان عملت سكيتشينج ودوكيومينتينج كده للبروجيكت عشان تفهو الفلو منه برضو:
https://t.co/tDJxTnpwp4
Reached 90% on Striver's A2Z DSA Sheet! 🎉
426/474 problems solved.
Still have some Graphs and Dynamic Programming left, but it's been an incredible learning journey so far. Every section has added another pattern to my toolkit.
The goal now is simple: 100% completion. 🚀
Thanks, @striver_79 , for creating such a structured roadmap for DSA.
أفضل حاجة يقدمها ال Senior Engineers للفرق بتاعتهم هو أنهم يبقوا Multipliers، و ده مبدأ انا قعدت فترة لحد ما فهمته، ازاي خبرتهم و التأثير بتاعهم يضاعف إنتاجية الفريق ككل.
ده بييجي بطرق كثير، دول ٧ حاجات حسيت انهم مؤثرين جدا ��� /1