بين الأسلاك: مقابلة مع مطور البرامج مفتوحة المصدر Sindre Sorhus

إليكم مقابلتي Sindre Sorhus ، مطور غزير الإنتاج مفتوح المصدر يعيش في تايلاند.

أخبرنا قليلاً عن طفولتك والمكان الذي نشأت فيه.

لقد نشأت في منطقة ضواحي خارج أوسلو بالنرويج. عندما كنت صغيرًا ، كنت مهتمًا حقًا بـ Legos. كل عام أحصل على Legos لعيد الميلاد وعيد الميلاد. أثار Legos بالفعل اهتماماتي في بناء الأشياء في وقت مبكر. في وقت ما ، كان لدي مدينة Lego ضخمة مدمجة في غرفتي وشغلت الغرفة بأكملها تقريبًا.

كيف دخلت البرمجة؟

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

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

لقد أنشأت موقع الويب الأول الخاص بي عندما كنت في العاشرة من عمري. كان ذلك بعد النظر إلى المصدر لبضع سنوات. كان يحتوي على جميع أنواع الألوان ، وخلفية منقوشة بالنجوم ، وموسيقى متحركة بموسيقى خلفية للوسائط - كانت إحدى تلك اللمسات التي كان لدى الجميع على مواقع الويب الخاصة بهم في ذلك الوقت. لقد استخدمت Microsoft FrontPage.

ذات مرة ، شعرت بالملل لذلك قمت بإنشاء الآلاف من الدلائل المتداخلة على كمبيوتر والدي وانتهى بي الأمر بتحطيم الكمبيوتر. اضطر والدي إلى إعادة تهيئة الكمبيوتر ؛ كان منبهرًا ومتضايقًا في نفس الوقت. هكذا فقدت موقعي الأول.

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

لقد أمضيت خمس سنوات في الجيش كمطور ومصور للواجهة الأمامية. كيف كان تطوير الويب في ذلك الوقت؟

بعد تخرجي من المدرسة الثانوية ، تم تجنيدي مباشرة في الجيش في النرويج. دخلت إلى وحدة الإعلام حيث قضيت معظم وقتي في المكتب أعمل على الإنترانت. لم يكن هناك الكثير لأفعله في المساء لأننا كنا نعيش في ثكنات لذلك قررت بناء أشياء. لكن معظم تجربتي كانت تقوم بنسخ ولصق PHP و JavaScript للأشخاص الآخرين ولم أفهم تمامًا كيفية عملهم. ذات يوم ، عثرت على Python و Django ، حيث كان لديها وثائق ودروس تعليمية رائعة لم تكن موجودة في PHP. كنت أقرأ الدروس كل يوم وأبدأ في بناء الأشياء في العمل.

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

كيف تعاملت مع TodoMVC و Yeoman؟

بدأت في استخدام GitHub في عام 2011 تقريبًا ولكن في الغالب كمستهلك. كنت أتجول وأبحث في وحدات إعادة الشراء المختلفة وأقوم بتمثيلها لأنها تبدو ممتعة. لقد أصلحت بعض الأخطاء المطبعية في ملفات README.md ولكن ذلك كان يتعلق بها.

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

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

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

بعد بضعة أشهر ، ذهب آدي للعمل في Google. كان أول مشروع له في Google هو Yeoman ، وهي أداة سقالة لتطبيقات الويب الحديثة. نظرًا لأننا عملنا بشكل جيد معًا على TodoMVC ، فقد قرر دعوتي كمساهم خارجي.

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

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

لماذا أنت شغوف بالمصادر المفتوحة؟

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

لدى Paul Irish مقطع فيديو رائع على YouTube بعنوان "عشرة أشياء تعلمتها من مصدر jQuery." هذا ما جعلني مهتمًا بقراءة شفرة مصدر jQuery. كان بول أيرش على حق ، فأنت تتعلم الكثير من خلال القيام بكل ما تريد أن تتعلم كيف تفعله.

ماذا عن استدامة المصادر المفتوحة؟

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

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

أنا أعيش حاليًا في تايلاند وأعتقد أنني سأكون بخير مع أقل من 1500 دولار.

لديك حزم أكثر من 1000 نانومتر. كيف تحافظ على إنتاجيتك؟

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

ما هي إحدى النصائح التي يمكنك تقديمها للمساهمين الجدد في برمجيات المصدر المفتوح عند التعامل مع الأشخاص المطالبين والسامة؟

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

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

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

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

لقد صممت بعض الشعارات للوحدات النمطية الخاصة بك ، فهي رائعة. كيف تعلمت التصميم؟

لقد بدأت باتباع البرامج التعليمية عبر الإنترنت لإحداث تأثيرات رائعة. كنت أستخدم Adobe Illustrator ، لكنني الآن أستخدم Sketch.

إنه لمن الممتع حقًا التصميم ، وأعتقد أن المزيد من المبرمجين يجب أن يجربوه. بعد البرمجة لساعات ، من الجيد أن تأخذ استراحة للقيام ببعض الأعمال الإبداعية بطريقة مختلفة.

كما أنه يفيد مشاريعي من خلال إنشاء الشعارات ، لأنه يمنح المشروع شخصية أكثر. عادةً ، عند إدخال الريبو على GitHub ، ستحصل على نفس الأشياء القائمة على النص: رأس وبعض المقدمة و README.md. من الجيد إضافة بعض الرسومات. اتضح أن الناس هم أكثر عرضة لاستخدام المشروع إذا كان هناك شعار. على سبيل المثال ، قدم Vadim Demedes ، وهو مطور من أوكرانيا ، طلب السحب هذا مباشرة بعد إصدار AVA. أصبح فاديم فيما بعد عضوًا في فريق AVA. أخبرني أنه مهتم بـ AVA بسبب شعارها الجميل.

ما الذي دفعك للانتقال إلى تايلاند؟ أخبرنا كيف يبدو يومك المعتاد.

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

ذات يوم ، عندما كنت أستعد لمقابلة عبر الهاتف مع Google ، قررت للتو أنه إذا كنت سأسافر في أي وقت ، فسيكون ذلك الآن ، وإلا فلن يحدث ذلك أبدًا. لذا ألغيت المقابلة وقدمت استقالتي في العمل في اليوم التالي. اشتريت تذكرة ذهاب فقط إلى تايلاند وكان هذا كل شيء.

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

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

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

ما الذي دفعك لبدء مشروع AVA؟

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

أردت شيئًا أبسط وأكثر تحسينًا لحالة الاستخدام الخاصة بي. لذا في عطلة نهاية أسبوع واحدة ، قررت العمل عليها ، وبحلول مساء الأحد قمت بنشر إصدار 0.0.1 لـ AVA في npm. على الرغم من أن JavaScript ذات ترابط واحد ، إلا أن الإدخال / الإخراج في Node.js يمكن أن يحدث بالتوازي بسبب طبيعته غير المتزامنة. تستفيد AVA من هذا وتقوم بإجراء اختباراتك بشكل متزامن ، وهو أمر مفيد بشكل خاص لاختبارات IO الثقيلة. بالإضافة إلى ذلك ، يتم تشغيل ملفات الاختبار بالتوازي كعمليات منفصلة ، مما يسمح بأداء أفضل وبيئة معزولة لكل ملف اختبار.

نظرًا لأنه لم يكن لدي الوقت لإصلاح الأخطاء وأردت استخدامها فقط في مشاريعي الخاصة ، فقد كانت خاصة. بعد عام ونصف ، قمت أخيرًا بعمل شعار لـ AVA ، وقمت بتنظيف الريبو ، وكتبت الكثير من الوثائق. ثم قمت بنشر المشروع.

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

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

لماذا قررت الدخول في تطوير macOS؟

لقد قمت ببعض البرمجة Objective-C ولكن لم يكن لدي تجربة رائعة. في كانون الثاني (يناير) الماضي ، خطرت لي فكرة لتطبيق Mac ، وكان لدي بعض وقت الفراغ لذلك قفزت مباشرة إلى Swift. هكذا أتعلم أشياء جديدة عادة. إنه أمر عفوي للغاية. أبدأ برغبة في صنع منتج ، ثم أكتشف المهارات التي أحتاجها لصنع هذا المنتج ثم أتعلمها. تأتي الفكرة قبل التخطيط.

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

لقد كتبت بعض تطبيقات الإنتاجية والمرافق. Lungo هو تطبيق شريط قوائم كتبته ، وستجده في متجر التطبيقات. الآخر الذي كتبته هو مؤشر البطارية.

ما هي خطتك للعام القادم؟ هل تخطط للعمل بدوام كامل أو التفكير في طرق أخرى لتصبح مستدامًا ماليًا؟

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

لقد جربت بعض الأشياء المختلفة. شيء واحد فعلته هو طلب الدعم في ملف GitHub README.md. لن أسميها إعلانًا بل مجرد لافتة صغيرة. لقد ربحت القليل من المال لكنه بعيد عن أن أكون قادرًا على إعالتي.

قد أجرب Patreon.

ما هي بعض الأشياء التي ترغب في تحسينها في نظام JavaScript البيئي؟

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

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

لماذا مطورو جافا سكريبت مهووسون بالحيدات؟

بدأت حركة المهر بأكملها مع مجتمع Django في الواقع. عندما تبدأ في طلب الميزات التي تريدها ، قد يقول المطورون "أريد محلل HTTP أسرع" أو "أريد ORM يعمل فقط." في أحد الأيام ، استجاب أحد المطورين الأساسيين في قائمة بريد Django البريدية على أحد طلبات الميزات قائلاً "لا ، لا يمكنك الحصول على حصان صغير!" بدأت حركة يونيكورن بأكملها برفض طلب الميزة.

حتى أن هناك موقعًا إلكترونيًا مخصصًا للمهر المحبوب.

لا أتذكر بالضبط كيف انتشر إلى مجتمع JavaScript. كانت واحدة من تلك الأشياء التي حدثت من تلقاء نفسها. إن امتلاك شيء ممتع وسخيف مثل أحادي القرن يساعدني في العمل من خلال البرمجة و OSS ورفع معنوياتي. الشيء نفسه ينطبق على صور متحركة سخيفة.

لقد نشرت هذه المقابلة في الأصل على Between the Wires ، وهي سلسلة مقابلات تضم أولئك الذين يبنون منتجات مطورة ومصممة.

أصبح هذا المشروع ممكنًا برعاية من frontendmasters.com و egghead.io و Microsoft Edge و Google Developers.