יום שבת, 23 באוקטובר 2021

423 B2D with Asi from Cloudinary


שלום וברוכים הבאים לפודקאסט מספר 423 של רברס עם פלטפורמה - התאריך היום הוא ה- 11 באוקטובר, השנה היא 2021, אם אני לא טועה . . . . נכון, עדיין? (אורי) תלוי אם אתה סופר את 2020, השנה המחוקה” . . . (רן) יאללה, נקפוץ ישר ל-2021-וחצי . . . . השעה היא תשע בערב ואנחנו באולפנינו אשר בכרכור בבית של אורי - ויש לנו את הכבוד לארח את אסי מחברת Cloudinary  - הי אסי! - (אסי) אהלן, שמח להיות פה - (רן) ברוך הבא, תודה ושבאת - והי אורי! מה שלומך? - (אורי) הכל בסדר.
(רן) היום אנחנו הולכים לדבר על נושא ששמו B2D, או Business To Developers - שזה נושא שאסי מתעסק בו די הרבה בעבודתו ב-Cloudinary.


אז לפני שנצלול לנושא, בואו נלמד קצת על אסי - ספר לנו קצת עליך .  . .
  • (אסי) אז אני אסי ואני מנהל פיתוח ב-Cloudinary
    • אני אחראי על אחד המוצרים של Cloudinary שהוא Developer-oriented
    • בנוסף אני אחראי על צוות של ה-SDK של Cloudinary, שהוא Cross על כל המוצרים 
    • ואחראי על צוות האינטגרציות (Integrations) . . .
  • בתעשייה לפני כן הייתי הרבה שנים ב-HP ב-Mercury,  נגעתי בהמון מוצרים והמון אנשים והמון טכנולוגיות
  • אחר כך כמה שנים ב-Trax - שם עבדתי עם Mobile ו-Cloud ו-Scale וכל מה שקשור לזה.
  • ובשלוש השנים האחרונות אני ב-Cloudinary . . . מבסוט אש fire
(רן) וקצת על Cloudinary? בטח כמה מכירים, אבל למי שלא מכיר - מה עושים?
  • (אסי) אז למי שלא מכיר - Cloudinary היא חברה שמפתחת מוצרים ופתרונות לחברות באיזורי המדיה - לפתור בעיות בעולם המדיה
    • כשהחלק המעניין - אנחנו עושים הרבה דברים, אבל החלק המעניין, שמשם החברה התחילה וזה ה-Core של החברה - הוא פתרונות למפתחים
    • והמטרה היא - הייתה במקור ומאיפה שהחברה התחילה - להוריד מהמפתחים את כל הכאב ראש כשקשור למדיה, מתוך הבנה של ה-Founders, שלושת הפאונדרים - איתי, טל ונדב - שכמעט בכל פרויקט תוכנה היום יש אלמנט מאוד גדול של מדיה ויש סט שחוזר על עצמו של שאלות, שהמון מפתחים נתקלים באותן שאלות.
      • איפה לשמור? איך לשמור? ?Small? Medium? Large . . .
      • איך לדלבר (Deliver)? איזה CDN? איך עושים Responsive? אילו פורמטים לדלבר? . . . 
      • איך אני עושה את הבאלאנס הזה, שבין איכות של תמונה שתיהיה מצד אחד קטנה ומצד שני תיהיה תמונה איכותית שתייצר Experience טוב ל-User?
  • אז מתוך הבנה שלא היה באמת איזושהו פתרון אחד, הוליסטי, שאומר למפתחים “עזבו אתכם . . . “
    • היה איזה סט של Libraries וסט של דברים שאתה שאתה יכול לעשות כדי להתמודד עם השאלות האלה - אבל Cloudinary באה באמת כדי לתת איזשהו פתרון אחד שאומר “שים אצלנו את התמונות ואת ה-Video-ים, ואנחנו נותנים את כל השאר, אנחנו נספק את כל השאר”.
    • זה Storage ו-Delivery ואופטימיזציות וטרנספורמציות, והיכולת . . . . 
    •  אפשר לעשות דברים מאוד מאוד מורכבים עם Cloudinary - “ולהתעלל בתמונות”, אני קורא לזה “להתעלל” בתמונות בזמן ה-GET, בזמן ה-Fetch שלהן - ולעשות דברים מאוד מאוד מורכבים על התמונה.
(אורי) כמה, ככה, מה-Business היום זה תמונות וכמה וידאו? או ש . . . .אם אתה יכול להגיד?
  • (אסי) אז אין לי את המספר “בשלוף” - אבל הוידאו רק גדל . . . . מן הסתם תמונות נמצאות All-over, אבל אין היום שום Business עם eCommerce וכל העולם הזה זה וידאו-ווידוא-ווידאו . . . TikTok והכל הופך להיות יותר וידאו והנתח של וידאו בתוך ה-Business רק הולך וגדל כל הזמן.
(רן) . . . למרות שהתחלתם, במקור, מתמונות - אז זה הגיוני שהוידאו רק יגדל, כי התמונות כבר גם ככה גדולות.
אבל בוא, שנייה, נחזור אחורה - אני מניח שכל מפתח יודע שאין יותר קל מאשר לשים את התמונה נניח ב-AWS S3 ואחר כך לקרוא את הקובץ ישר משם, אבל גם כל מי שפיתח Web אי-פעם יודע שלא בזה זה נגמר - צריך תמונה שמתאימה לכל Device בנפרד, לרזולוציות שונות ופורמטים שונים וכו’ - וזה כבר כאב ראש גדול.
ואת כאב הראש הזה אתם בעצם פותרים, או שפתרתם כבר לפני כמה שנים והיום אתם עושים כבר דברים הרבה יותר מתוחכמים, אז זה למעשה ה-Value Proposition המשמעותי של Cloudinary . . . 
  • (אסי) נכון

(רן) עכשיו - יש פה עוד משהו מעניין בסיפור ההיווצרות של החברה, וזה שהיא התחילה Bootstrap - איך זה משפיע על האופי של החברה, עד היום?
  • (אסי) זה משפיע מאוד . . . נסביר על Bootstrap - בעצם, הסברתי ש . . .
  • (אסי) בול . . . אז Bootstrap היא חברה שבעצם אין לה משקיעים, והיא מחזיקה את עצמה מהכנסות של לקוחות, וזה בעצם מראה את החוזק של המוצר מהיום הראשון
    • כששלחו את המייל הראשון לחברים של “בואו תראו מה עשינו” - כבר אז התחילו להצטרף לקוחות ו-User-ים לתוך המערכת
    • ומאז ועד היום, עם כל הגדילה המשוגעת של החברה - הכל מוחזק ע”י הכנסות מלקוחות, מאלפי לקוחות משלמים שיש לנו.
    • וזה מאוד משפיע על הווייב בחברה - הדבר שאני תמיד אומר שהוא מאוד מורגש זה שאין משקיע, שמישהו מכר לו איזשהו חלום של “הנה - תשים פה $100M ואני מראה לך איך אני מחזיק לך פי-10 בעוד ככה-וככה זמן”
      • אז בגלל שאין את המשקיע הזה, שיושב ומצפה לגדילה הנורא גדולה, אז אפשר לשים את הדגש על Healthy-Growth, ולעשות את הדברים בדרך שבה הפאונדרים רואים
      • ולא רק הפאונדרים - זה מאפשר לחברה לעשות דברים שהם מאוד Unique-יים לחברה זו - 
      • פעם בשנה לכנס את כל העובדים, מכל העולם - לפני הקורונה בארץ, בקורונה זה היה ב-Zoom, אני מקווה שזה יחזור להיות במקום אחד - לכנס את כולם ולעשות Brainstorm משותף - ככל שהחברה גדלה זה הופך להיות מורכב-לוגיסטית, אבל זה בסוף אותו הקונספט של Brainstorm של כולם - ולבנות ביחד את ה-Roadmap ולאן החברה הזאת הולכת.
      • ולעשות את זה בצעדים מדודים, ולמדוד לאן אנחנו הולכים, ולקבל החלטות שקולות ולא לרוץ לשום כיוון בצורה מופרזת.
    • זה מאפשר לאנשים באמת . . . אנחנו נמצאים היום במקום שבו יש לנו מיליון Developers שמשתמשים, Account-ים שרשומים אצלנו, וזה מאפשר לנו באמת לשים דגש ולהקשיב ולאסוף פידבקים ולעשות את הדברים שעונים ללקוחות על הצרכים ולא להתפזר.
(רן) אני חושב שאת “הגוספל” הזה שומעים הרבה פעמים מפאונדרים (Founders) של חברות . . . לשמוע את זה ממישהו שהוא לא פאונדר - AKA אתה . . .  - זה כיף וזה מרענן, אז אני מניח שמשהו מכל הקסם הזה עובד שם.
  • (אסי) . . . שזה מה שקורה . . .

(רן) אבל אנחנו התכנסנו פה כדי לדבר על הנושא של B2D, שזה Business To Developers - מקודם באת ואמרת “אוקיי, המוצר שלנו הוא מוצר למפתחים”, ונשאלת השאלה - אז מה ההבדל בין לפתח מוצר למפתחים לבין לפתח מוצר ל . . . Whatever, למישהו אחר - ספרים, מכונאים או נדל”ניסטים?
איך זה נראה? האם זה משפיע על האופי של החברה? האם זה משפיע על היום-יום שלך? מה המשמעות של לפתח מוצר למפתחים אחרים?
  • (אסי) אז תיכף ניגע באיך שזה משפיע על החברה - אבל זה אחד הדברים שאני מאוד נהנה מהם בעבודה ב-Cloudinary, זה שאני מפתח מוצר לאנשים שאני מאוד מאוד מבין אותם - אני אחד מהם
    • מצד אחד, מפתחים הם User-ים - משלמים כסף על מוצר, רוצים לראות תוצאות, רוצים את כל מה ש-User רגיל רוצה מכל מוצר
    • אבל מהצד השני, אנחנו מבינים שהם חיה קצת מוזרה - אני קורא לנו “חיה”, קצת מוזר . . . 
      • (רן) “מפלצת”, בוא נגיד . . . 
    • (אסי)  . . . אבל מפתחים הם “עם” שמאוד מאוד Focused על תוצאות ורוצים . . . הם מאוד לא Driven by Marketing, אתה לא יכול להגיע למפתחים על ידי זה שאתה עושה Marketing, שולח להם מייל או שעושה איזושהי פרסומת . . . 
      • אני תמיד שם לב בעצמי - אני מקבל Newsletters טכניים, וכל מה שכתוב עליו “Sponsored by” - אני מדלג עליו, העיניים שלי מדלגות עליהם, כי אנחנו מאוד לא Driven by Marketing, מאוד חיים את ה-Community ואת מה שקורה בקהילה ודברים חדשים 
      • ומאוד חשוב למפתחים להגיע לתוצאות מהר - אנחנו כולנו היינו במקום הזה, שאתה יושב ויש לך משימה ואתה צריך לפתור איזו בעיה, ואתה עוצר לרגע ואומר “בטח מישהו פתר את זה קודם, בטח יש איזה משהו שיכול לעזור לי פה” - ואז אתה נכנס לאיזושהי סאגה שבה אתה מחפש ב-Google ונכנס ומוצא כמה Libraries ומוצא כמה פתרונות ועושה להן Evaluation  . . . 
      • אז החברה היא מאוד Tuned וכל מה שאנחנו עושים . . . אנחנו מאוד Tuned לקטע הזה - שהוא זמן די קצר - 
      • מהרגע שנתקלת ב-Cloudinary - לא משנה אם מצאת ב-Google או שמעת ברבסים או שמעת באיזשהו Conference -קראת, הכרת, דרך חברים, לא משנה - מהרגע שאמרת “רגע, Cloudinary - אני רוצה לבדוק האם זה פותר לי את הבעיה” - כי מעניין אותי שתפתרו לי את הבעיה שלי, זה לא שאנחנו פותרים את כל בעיות המדיה בעולם.
      • מהרגע שהבנתי שזה פותר לי את הבעיה, אני רוצה להבין ש”I can read the manual”, אני יכול To get onboard די מהר - npm install, יש לי SDK, משחק עם זה - ועד הרגע שהחלטתי אם אני אוהב את זה או לא אוהב את זה, יש זמן מאוד מאוד קצר, ואנחנו רוצים להיות שם
      • עם SDK מצויינים, עם דוקומנטציה (Documentation) ו-Content שמספר איך לפתור את הבעיה שלך
      • כמה שיותר כדי באמת להביא אותך לנקודה הזו, שאמרת I like it.

(אורי) אבל זה נכון, כמו שרן אמר, בעצם לכל מוצר שאתה  . . . ב-Outbrain אנחנו קוראים לזה Time To Optimize - הזמן עד שאתה מקבל את ה . . . עד שאתה רואה את ה-Return on Investment, בעצם - ותכל’ס, אתה דיברת על זה שזה מהרגע שהחלטת שאתה רוצה לנסות את Cloudinary, ושם אתם עוצרים או מורידים את כל מה שאנחנו קוראים לו, כל מי שמתעסק עם ספריות - “לגלח את היאק”, ה-Yak Shaving - מה שאתה צריך לעשות כדי תכל’ס להצליח להפעיל את הספרייה שלך . . . אז את זה אתם מקצרים, אבל זה מתחיל עוד לפני, נכון? זה מתחיל מ”רגע, יש פה מישהו שיש לו בעיה - איך אני מגיע אליו?” - אם זה Marketing . . . . הבעיה לא מתחילה כשהבנאדם מתחיל לנסות את Cloudinary, אלא הבעיה מתחילה כשיש לו בעיה וצריך לדאוג “לצוף לו” כמה שיותר מהר . . .
  • (אסי) אתה שואל איך אנחנו - או איך אני - מגיע למצב שבו כשמפתח נתקל באיזושהי בעיה, אז הוא נתקל ב-Cloudinary?, או איך הוא מגיב . . .
(אורי) בבעיה רלוונטית, אתה מבין? כאילו “יש לי בעיה עם ה-Image-ים שלי”, או ש”אני צריך Fast Delivery ל-Image-ים שלי . . .”
(רן) אני אתרגם . . . אני אנסה לתרגם את השאלה שלך, אורי, ברשותך, ותגיד לי אם אני צודק - אם מפתח בא ואומר “אוקיי, אני רוצה לייצר אפליקציה חדשה, אני רוצה לייצר App חדש”, והוא אומר “אולי אני רוצה פה גם תמונות” - איך אתה מצליח  לעשות את ה-Marketing campaign הנכון? איך אתה מצליח להיכנס בנקודת ההחלטה הזו שבה הוא אומר “רגע-רגע, בעצם לא כדאי לשים את הקבצים ב-S3 ולא כדאי ללכת לאיזשהו שירות אחר - כדאי ללכת ל-Cloudinary!” - האם אתם, כמפתחים, מעורבים בזה, או שזו לא בעיה שלכם? או שזו בעיה של איש ה-Marketing בחברה ואתם רק אחראים על זה שה-API יעבוד . . . . האם אתם, באופן אקטיבי, מעורבים בלתפוס את הלקוח בנקודת ההחלטה הקריטית הזאת?
  • (אסי) זה מאוד  . . . בעולם שבו אתה מדבר עם מפתחים, שוב - Marketing הוא מאוד מאוד שונה - לעשות סתם “רעש” זה לא תופס מפתחים, הם מפלטרים את הרעש הזה.
  • זה הכל עניין של Brand awareness - שאנשים יכירו את השם, ידעו לעשות את החיבור הזה שבין  . . . כמו שאתה עושה Twilio לכל מיני SMS-ים ול-Comunication בתוך ה . . . אתה רוצה שהחיבור הזה ישאר לאנשים בראש.
  • ואתה רוצה שאנשים יבינו, לאט לאט - וחברות כבר מבינות יותר ויותר - שבתוך המערכת שלהן, יש איזורים שהם לא ה-Core Business שלהן, ויש חברות שהמדיה היא סופר-חשובה להן, אבל לא ה-Core Business שלהן - ואלו האיזורים שבהם נכון לתת לשירותים חיצוניים, כמו למשל גם Twilio, לתת לשירותים חיצוניים, שלהם יש את ה-Expertise, לפתור את הבעיה הזאת.
  • אז יש המון מפתחים Out there, שמכירים את Cloudinary ולא יצא להם - אבל כשהם יגיעו לנקודה שבה הם מתעסקים במדיה אז Cloudinary “תצוף” - ולשם אנחנו רוצים  להגיע, ופחות לאיזשהו Marketing  . . .
(אורי) מה שנקרה “בשביל זה אתה פה . . . “ 
(אסי) זה חלק מהסיפור . . . 

(רן) אבל השאלה שלי היא כזו - האם היום אתה מטריד את עצמך באיך להגיע לאותם מפתחים, או שאתה מטריד את עצמך באיך ה-Performance של ה-API יותר טוב איך נעשה API יותר טוב או Rendering יותר טוב? האם חלק מדאגות ה-Marketing הן גם על שולחנך?
  • (אסי) אז על שולחני - ועל שולחן ה-Product, כמובן - כי בסוף אנחנו רוצים מוצר שהוא גם Focused לבעיות שקורות בעולם סביב מדיה, ואנחנו רוצים לתפור פתרונות להם.
  • ואז אתה מפתח Section-ים בתוך המוצר, Widget-ים, אתה מפתח כל מיני יכולות שמוכוונות לכל מיני Use-Case-ים שאנחנו מכירים ושהלקוחות שלנו עושים, ואנחנו מפתחים משהו שהוא Dedicated אליהם.
  • אנחנו משקיעים ב-Content וב-Conference-ים ובללכת ולדבר ולספר על Cloudinary [הננו כאן…], אבל כמובן שבסופו של דבר אנחנו R&D ואנחנו רוצים מוצרים עובדים ו-Scalable ו-Robust וכל מה שצריך.

(רן) מקודם דיברנו על האספקט של ה-Marketing, וחלק נוסף זה האספקט של ה-Support - למשל איך נראה Support בחברה שמשרתת מפתחים? אז אני מניח שרוב השאלות אלו דברים שהם Hardcore-technical? האם ב-Support צריכים להיות גם מפתחים מן המניין או . . . . איך אתם מכשירים את אנשי ה-Support שלכם? מה האינטרגציה שלכם איתם? איך נראה היום-יום שלהם?
  • (אסי) אז ה-Support שלנו . . .  העובדה שאנחנו מפתחים למפתחים משנה את הכל, את כל הארגון הטכנולוגי.
  • לא מוזר למצוא את עצמך בארוחת צהריים עם מישהו מארגון ה-Sales ולדבר איתו על React, על הגרסא החדשה של React
    • כולם הם אנשי פיתוח וכולם בסוף מדברים עם מפתחים.
  • ה-Support הוא דוגמא טובה כי ה-Support הוא מאוד מאוד טכנולוגי - יש לנו צוות Support מפוזר בעולם שהם כולם נינג’ות טכנולוגיות . . . 
    • הם מכירים את המוצר מאוד מאוד לעומק - אבל גם מכירים כל ה-Setup-ים של כל הלקוחות ומה עושים ואיך עושים
    • זרוק אותם ב-React או זרוק אותם ב-NET. או זרוק אותם ב-PHP - והם שוחים ויודעים לתת פתרונות
    • זה אחד הדברים שאנחנו מקבלים עליהם  פידבקים אינסופיים, על ה-Support של Cloudinary - שהוא גם מקצועי וגם מהיר.
  • האינטראקציה איתם . . . דבר ראשון ברמת ה-Onboarding אני יודע שיש Onboard מסודר גם לתכנים של Support אבל גם לתוך הטכנולוגיות שלנו.
    • ספציפית בצוות ה-SDK - כל איש Support מגיע לשבוע בתוך הצוות SDK ומתמחה ב-SDK ספציפי
    • יושב עם המומחה בתוך הצוות SDK, פותר, פותח PR-ים . . . אנחנו רוצים להגיע לנקודה שבה איש Support, כשהוא נתקל ב-Bug ו-He can Solve it - שיעשה PR ואנחנו עושים Merge
    • וה-Support לפעמים גם לוקחים משימות מתוך ה-Backlog של ה-SDK . . .
(אורי) אז מה עושים המפתחים? . . . 
  • (אסי) מה עושים המפתחים? . . .
(רן) זה כמו הפרסומת לפריגת . . . . [לא, שלהם זה עוקץ אפילו יותר מעניין - אתה זוכר פריגת אבל הפרסומת היא של פרימור . . . ]
(אורי) “סוחטים אנשי Support טובים” . . . .
  • (אסי) אז ה-Support שלנו זה באמת סיפור הצלחה - והוא באמת דוגמא לזה שכל הארגון, כולל ה-Product, זה אנשים טכנולוגיים, שיודעים תוכנה ומכירים
  • וזה נורא כיף לעבוד בארגון כזה - כולם מסביבך יכולים . . . אתה יכול לדבר איתם “בגובה בעיניים”.

(אורי) יש לי שאלה אחרת: גם הלקוחות הם מפתחים - מן הסתם, בגלל זה אנחנו מדברים על B2D - בהגדרה, מפתח פוגש לקוחות?
  • (אסי) לא יודע אם בהגדרה, אבל יוצא לפגוש לקוחות - וזה עוד יותר כיף, כי אתה מדבר עם מישהו, גם, “בגובה העיניים”, זה משהו . . . 
  • אתה יכול לעשות שיחה עם לקוח שהיא סוג של Brainstorm והיא לא כמו לקוח בחברה שמספקת שירותים.
  • הרבה מהדברים שקרו ב-Cloudinary קרו כי אתה יושב בשיחה עם לקוח והוא בא עם רעיון טוב, כי . . . .
    • אנחנו כולנו מכירים את זה - ה-Product אומר לך אני צריך 1,2,3 . . .10 - ואתה ב-3 כבר איבדת אותו כי אתה חושב איך אתה עושה את זה ב-Database ואילו End-points אתה הולך לחשוף . . . 
  • אנחנו מאוד Solution-oriented - וגם הלקוחות שלנו באים עם פתרונות: “אתם עושים ככה . . . אל תעשו ככה”
  • ה-SDK שלנו הם הכל Open-source - הם שוחים שם והם באים או עם PR-ים, שזה כבר ממש הפתרון, או עם עם שיחה, שמובילה לדברים מאוד מאוד יפים.

(רן) בוא נדבר קצת על אתגרים בפיתוח למפתחים - אמרת את המילה API כמה פעמים, ובסך הכל Cloudinary זה API אחד גדול”, נכון?  “להביא תמונה בגודל הזה, ברזולוזציה הזאת” או “תביא את הוידאו” או דברים כאלה - אבל ה-API הוא SDK, לכאורה . . . יש הרבה כאלה, אני מנחש - אחד ל-React ואחד ל-Angular ואחד שהוא Vanilla ואולי שלושה ל-iPhone, אני לא יודע כמה יש ולאנדרואיד וכו’ וכו’ . . . .
(אורי) ואחד שלא מוצאים עד היום . . . .
(רן) . . . איך מתחזקים את כל הדברים האלה? איך דואגים לזה שהתיעוד יהיה אחיד, שה-API יהיה קונסיסטנטי (Consistent)? אם צריך לעשות Deprecation לאיזשהו End-point - איך מתחזקים את כל “המפלצת” הזו?
  • (אסי) אז אכן זאת מפלצת . . . ומאוד מאוד חשוב לנו שהיא לא תיהיה רק כמות הטכנולוגיות, אלא שאנחנו נתמוך בכמה שיותר מפתחים בסוף, זו המטרה שלנו - שכל מפתח out there שרוצה להשתמש ב-Cloudinary - תיהיה לו את היכולת.
  • אז זה מעלה הרבה Challenge-ים, לדוגמא - אתה רוצה “לתמוך אחורה”, טכנולוגית - אנחנו תומכים ב-Java 7, כן? . . .
    • יש עדיין מספיק אנשים בעולם שמשתמשים ב-Java 7 ואנחנו רוצים לתת להם פתרון
    • זה Tradeoff מול זה שאנשים בסוף נכנסים ל-GitHub ורואים את ה-Java SDK ואומרים “רגע . . .  זה חסר, זה נראה מאוד מיושן . . . “ - אבל זה Tradeoff שאנחנו עושים כל הזמן בכל הטכנולוגיות
  • איך אנחנו מתחזקים את זה? יש לנו אנשים שמתמחים - לא אחד-פר-Technology אבל אנחנו בצוות ה-SDK לפחות בנויים מאנשים שהם מומחי JavaScript, אנשים שהם מומחי Mobile, אנשים שהם מומחי Backend Technology - אם זה PHP ו-Python ו-Ruby ו-NET.
    • ושם אנחנו מאוד מאוד מנסים לעשות . . . לשמור את על Alignment מצד אחד, שכל ה-SDK ידברו פחות או יותר באותה שפה
      • מצרכים . . . גם ללקוחות אבל גם פנימיים - אנחנו רוצים ש-Support שתומך ב-NET. יהיה מסוגל גם לתמוך ב-PHP
    • ומהצד השני - אנחנו גם מאוד מנסים להבין ולתת פתרונות Per-Technology ולהסתכל על . . .לא יודע . . . Android - להגיד “ב-Android יש את Glide - אני לא רוצה לכתוב Downloader שמתחרה ב-Glide, אין לי מה להתחרות ב-Google” - אז אני עושה אינטגרציה לתוך Glide.
    • ואם אתה מסתכל על iOS, אז ב-iOS אין את זה, אז שם אתה כותב Downloader ו-Caching וכל מה שאתה צריך.
    • אז אנחנו מאוד מנסים “לתפור את ה-Experience” לטכנולוגיה ולמי שעומד מולנו, להיכנס לנעליים שלו.

(רן) נחזור לרגע לשאלה המוצרית ונחפש את האתגרים המעניינים שם - איזה Bias אתה מרגיש שקיים כשאתה שומע, נגיד, איזשהו פידבק ממפתחים או מהמפתח על איזשהו פיצ’ר? לצורך העניין, אני יכול לדמיין את זה ש”וואלה - אתה מבין בדיוק מה אתה רוצה, לא צריך פה איש פרודקט שיפתח את זה - אני כבר אפתח את זה” . . . 
אז, אתה יודע - כשמסתכלים על זה רגע מהצד אז ברור שזה מסוכן, אל תעשה את זה . . . אבל מצד שני, אני יכול לראות איך זה קורה . . .
(רן) לא . . . לא בינה אלוהית . . . 
  • (אסי) לא בינה אלוהית . . .
(רן) אבל זה עוד בנאדם שיכול לתת אספקט - אם אתה אומר “עזוב, זוז הצידה, אני מבין את הכל”, אז אני חושב שכן, יש בזה . . .
(אורי) אני לא חושב שזה נכון תמיד . . .
(רן) כן, סבבה, לא . . . 
  • (אסי) אני חושב שבעולם של B2D, אז השאלה הזו הופכת להיות יותר עמוקה, כי בהרבה מהפיצ’רים והרבה מהדברים - בסוף האיש שהוא מומחה NET. הוא זה שיבוא ויגיד מה צריך מפתח NET. בעולם המדיה ו-He knows best . . . 
    • באמת, איך ש-R&D עובד יחד עם Product זה מאוד מעניין
  • איזו בינה ניתנה לאנשי ה-Product? אני לא יודע אם “בינה”, אבל אנשי Product לפעמים יוצאים מה-Challeng-ים של הפיתוח, כי המפתחים הרבה פעמים נמצאים עמוק בתוך ה-Challenge של הפיתוח ואנשי Product - יש להם ראיה יותר רחבה.
    • זה Alignment בין ה-SDKs ו-Alignment בין ה-APIs - אז זה מהמקום הזה, ה-Roadmap המוצרי, השיחות עם לקוחות . . .
  • אז זה המקום הזה - ש-Product… יש ל-Product מקום בתוך הארגון - אבל באמת כשאנחנו מפתחים למתפתחים אז יש הרבה מקומות שבהם הקו הוא מאוד Blur
    • איך נקרא ה-API - יש שאלה של Product, ואיך נראה ה-App Engine בתוך ה-API יכול להיות שזה משהו שיבוא מתוך הפיתוח
    • ויש פה הרבה הפרייה גם, יש פה הרבה דברים שקורים ביחד.

(רן) אחד הנושאים שעולים הרבה פעמים, כשמסתכלים על APIs ועל SDKs, זה קלות השימוש בהם, או אולי נקרא לזה . . . בעולם ה-UI זה יקרא Usability, ובעולם ה-API אפשר לקרוא לזה Usabili-יות  . . .
(רן) . . . האם אתם מוצאים את עצמכם מפתחים מתודולוגיות של, לצורך העניין אני ממציא - “בוא נעשה A/B Testing, נעשה גרסא כזאת ל-API כזה וגרסא אחרת ל-API כזה ונראה מה יותר תופס” - זה נשמע לי קצת כמו מדע בדיוני, אז אולי דברים אחרים, אבל נגיד - לקבל חוות דעת של מפתחים, של משתמשים שלכם, על גרסאות חדשות של API . . . האם יש לכם דרך לעשות Usability testing ל-API ול-SDK שלכם?
(אורי) ואגב, אני אוסיף פה עוד משהו - לפחות ממה שזה נשמע, לתקן Usabili-יות של ה-API זה לא משהו שאתה עושה כלאחר יד, כי יש לך . . . 
(אורי) . . .  15 טכנולוגיות שבהן אתה צריך לשנות את ה-Usabili-יות עכשיו, כי ה-APIs כולם Compatible  . . .
  • (אסי) נכון, אז באופן כללי, בעולם של SDK-ים, קשה לך להבין מה ה-User-ים עושים עם ה-SDK עצמו . . . ה-SDK עצמו לא שולח לך Analytics, אתה לא רוצה להשתמש ב-Library, שמאחורי הקלעים תתקשר עם הבית . . .
  • (אסי) כן . . . אז אנחנו עוקבים בעיקר אחרי הקריאות ל-API עצמן - זאת אומרת ה-SDK בסוף קורא לאיזשהו API - וה-SDK שלנו, יש בו עולם ומלואו שמייצר . . . Cloudinary, יש לה Delivery API שמאפשר לעשות טרנספורמציות על תמונות דרך ה-URL, ויש לנו עולם ומלואו בתוך ה-SDK שמייצר URL-ים
    • וגם שם יש  לנו איזושהי יכולת לשים איזשהו Token על ה-URL שנוצר, כדי שנוכל לדעת מה ה-User עשה ואיך הוא השתמש.
    • אבל זה עולם שמאוד מאוד קשה להבין בו מה ה-User-ים עושים.
  • בכל זאת, אנחנו כן אוספים פידבקים ואנחנו כן מבינים ואנחנו נמצאים באיזשהו Shift שבו את ה-SDK-ים שלנו - לפחות את ה-section הזה של ה-URL Building - אנחנו הולכים יותר לכיוון של לשנות את השפה
    • לדבר יותר בשפה של ה-User - הוא רוצה לקחת תמונה, הוא רוצה לסובב אותה, הוא רוצה להוריד לה את ה-Background, הוא רוצה לצבוע אותה באדום . . . 
    • לדבר בשפה הזאת, וקצת פחות . . . היום ה-URL-Based שלנו הוא קצת קריפטי (Cryptic) כי הוא נכנס ב-URL . . .
    • אז אנחנו מנסים לייצר פה איזושהי שפה חדשה בתוך עולם ה-SDK - מה שמאפשר גם Discoverability -
      • אם אתה רוצה גם לתת את האפקטים, אז “Effect.” ובום! - רשימה של אפקטים שתוכל לבחור מתוכה את כל מה ש-Cloudinary יודעת לעשות, בלי ללכת לדוקומנטציה (Documentation) - וכאלה.
  • אז יש לנו כל מיני אג’נדות, כשהמטרה שלהן בסופו של דבר זה באמת Developer Experience וזה UX - זה DX! - כל מיני אג’נדות שזו המטרה שלהן.
  • לעשות על זה A/B Testing זה קשה, ולהבין באמת מה ה-User-ים  . . . זה גם קהל שפחות זורם על “בוא, קח תעשה Usability Testing ונעקוב אחרי איפה שהעיניים שלך מסתכלות” . . . . זה לא זה.
(רן) מפתחים לא “זורמים”, אתה רומז . . .
  • (אסי) פחות . . . 

(רן) תגיד, אסי - אתה אוהב מוסיקה? 
  • (אסי) טיפה . . .
(רן) מה אתה עושה? מה אתה מנגן?
  • (אסי) מה שיש . . .
  • בגדול אני מתופף, אבל מנגן גיטרה, בס , קלידים, מה שצריך . . .
(רן) ושמעתי שיש עוד כמה מוסיקאים ב-Cloudinary . . . 
  • (אסי) כן, גיליתי - לא רק ב-Cloudinary, גיליתי לאורך כל הקריירה - שיש מלא Talent בתחום שלנו, מלא . . .
  • איפה שלא הגעתי, כשאני נכנס לחדר זה הדבר הראשון שאני עושה - עושה סיבוב בחברה של “מי מנגן?” - ומלא ידיים עולות באוויר
(אורי) בגלל זה, אבל . . . הם לא שליחים, אתה יודע, מוסיקה זה שליחות, אז מוסיקאים עושים שליחויות . . . לא, יש באמת המון Talentכי זה בא עם Talent, בגלל זה אני לא מנגן . . . 
  • (אסי) יש מלא, ואנשים לא, אתה יודע, אנשים שנגנו על גיטרה במדורה - אנשים ברמה מאוד מאוד גבוהה
  • וגם ב-Cloudinary כשהגעתי, שאלתי “מי בעניין? בואו נקים להקה!”
  • ו-Cloudinary, כמו Cloudinary - תומכת בכל שגעון שנביא וזרמו איתנו - 
    • אנחנו נפגשים ויש לנו מפיק מוסיקאלי ואנחנו מקליטים . . . 
(רן) גם הוא מהחברה, אגב?
  • (אסי) לא - הוא דוידי, הבסיסט של שבק”ס, אחד האנשים הכיפיים [תתקעו בחצוצרה!]
  • נפגשים כל שבועיים, מנגנים, שרים, מקליטים, קליפים . . . 
  • הוצאנו קליפ New Virtual Team Member, שקצת תפס בתעשייה, שמדבר על מישהו שמצטרף וריטואלית בתקופת הקורונה וה-Zoom . . . 
  • ואנחנו מופיעים בחברה, באירועים - וואלה, זה עושה טוב, 
    • מעבר לשבעה-שמונה אנשים שמנגנים דברים שלהם זה בטוח עושה טוב, זה עושה טוב לחברה - כיף לבוא לאירוע שבו יש באמת . . . ארגנו סאונד, במה, הכל כמו שצריך
    • ואנחנו מנגנים וכולם קופצים - זה כיף גדול, ואנחנו עושים את זה בכל הזדמנות שיש, ואני ממליץ באופן כללי.
(אורי) הכי כיף - אצלנו יש גם סאונד ותאורה, אז זה כאילו מהצוות . . . .
  • (אסי) איפה? בתוך ה . . .
(רן) בחברה . . .
(אורי) בחברה - סתם, האיש אחזקה שלנו, יש לו גם Business לסאונד ותאורה, אז בכלל . . .
  • (אסי) . . . זה Built-in . . .
  • אנחנו עכשיו מקימים חדר בתוך החברה, של מוסיקה, כי יש יותר אנשים ממה שלהקה אחת יכולה להכיל, אז אנחנו רוצים שיהיה מקום בתוך החברה שאפשר להתאמן, ללמוד, לשחק, להשתולל - ובעיקר לתקשר עם אנשים, כי מוסיקה בסוף זה תקשורת.
(אורי) נכון - זה גם האירועי חברה הכי כיפיים . . . 
  • (אסי) לגמרי, מרים את כולם . . .
(אורי) ואז אתה מגלה, פתאום . . .  אתה אומר “תקימו הרכב ונעשה ערב” ואתה פתאום רואה וואלה - יש חמישה הרכבים, שישה הרכבים . . .
  • (אסי) נותנים בראש, כן . . .
(רן) אפשר לעשות תחרות “כוכב נולד” פנימית פרטית . . .
  • (אסי) פנים-חברתית, כן . . . לשם אנחנו עוד נגיע, אבל בסדר . . . 
(רן) אצלנו בחברה עכשיו עושים אודישנים השבוע . . . אז מקימים את הלהקה, שוב - כבר הייתה, אבל מקימים שוב.
(אורי) Putting the band back . . . 
(רן) אתה בא? . . . 

טוב, אז גם מוסיקה זה כיף וגם SDK זה כיף . . . אתגרים לא קטנים - אבל מעניינים.
אז אני מנחש שאתם גם בטח מגייסים, פה ושם?
  • (אסי) בטירוף . . . כמו שאמרתי - מיליון מפתחים ועשרות אלפי אתרים יושבים לנו על הכתפיים, עם Delivery משוגע ו-Scale משוגע
(רן) מה ה-Stack הטכנולוגי שלכם? ספר לנו, ככה, בקצרה . . . 
  • (אסי) אז כל מה שב-Client-side הוא React
  •  ה-Backend, ה-Core, כל מה שאיתו החברה גדלה זה Ruby
  • אנחנו עכשיו ב-Transition ל-Service-ים ו-Go ו-Node - אתה יודע, בכל מקום מה שצריך - זה הכיוון.

(רן) טוב, אז תודה אסי! היה כיף ותענוג, שיהיה בהצלחה עם ה-B2D וגם עם Cloudinary.
(אורי) ותודה רבה על ה-Service! אנחנו גם לקוחות . . . .
(אסי) נכון! לקוחות ותיקים וטובים - תמשיכו ככה . . . תודה רבה!
להתראות.

 האזנה נעימה ותודה רבה לעופר פורר על התמלול!

אין תגובות:

הוסף רשומת תגובה