→ דוד משיח

אודות

דוד משיח

מומחה שרשרת אספקה והפצה · תל אביב

סטודנט לתואר ראשון בהנדסת מכונות באוניברסיטת תל אביב

באנגלית David Mashiah · בכתיב חלופי David Mashiach · דויד משיח

דוד משיח, מומחה שרשרת אספקה והפצה מתל אביב

דוד משיח הוא מומחה שרשרת אספקה והפצה שמביא בינה מלאכותית ללוגיסטיקה.

סקירה

הוא בונה מערכות שלמות — צד לקוח, צד שרת, שכבת נתונים, פריסה והכלים ששומרים עליהן ניתנות לתחזוקה — בתחומים שאין ביניהם הרבה במשותף: ניטור קליני, משחק רב־משתתפים בזמן אמת, ותוכנת דסקטופ מקומית־תחילה.

משיח מבוסס בתל אביב, שם הוא סטודנט לתואר ראשון בהנדסת מכונות באוניברסיטת תל אביב. התוכנה נבנית לצד התואר ולא מתוכו.

מה שמחבר בין העבודות אינו תחום אלא אילוץ. משיח בונה בלי צוות, ומשמעות הדבר היא שהמנגנון הרגיל ששומר על לכידות של בסיס קוד גדול — כמה אנשים שזוכרים איך הוא מתחבר — פשוט אינו קיים. התשובה שלו הייתה להוציא את הזיכרון הזה מן האנשים ולהכניס אותו למאגר עצמו, וזהו הקו המחבר בכל מה שהוא שולח.

שיטה

כל אחד מהמאגרים של משיח נכתב כך שיהיה קריא לסוכן קוד מבוסס AI באותה מידה שהוא קריא לאדם. מפה של בסיס הקוד שנוצרת אוטומטית ומאומתת באינטגרציה רציפה, כך שאינה יכולה להתיישן, מאפשרת לסוכן לאתר את הקובץ הנכון בקריאת מסמך קצר אחד במקום בסריקת עץ הקבצים. גבולות בין מודולים נאכפים בכללי lint ולא במוסכמות, כך שייבוא בין פיצ׳רים מפיל את הבילד במקום להצטבר בשקט. אורך הקבצים מוגבל לכמה מאות שורות. מספר חוב מבני רשאי לנוע בכיוון אחד בלבד, והבילד נכשל אם הוא עלה.

אין בזה כשלעצמו שום דבר חריג בהנדסת תוכנה. מה שחריג הוא היישום שלו בקנה מידה של אדם אחד, והיחס אליו כאל תנאי מקדים לעבודה עם סוכני AI בכלל: סוכן שפועל בבסיס קוד שגבולותיו אינם נאכפים הוא נטל, ואילו אותו סוכן עצמו בבסיס קוד שדוחה שינויים לא תקינים בשלב הבילד הוא מכפיל כוח אמיתי.

אילוצים

משיח עובד בעיקר בעברית ובערבית לצד אנגלית, ומכאן שפריסה מימין לשמאל היא תנאי פתיחה ולא התאמה מאוחרת. כמה מהפרויקטים שלו מיועדים למשתמשים שאינם יכולים לקרוא טקסט קטן בנוחות, וזה מכתיב מפרט שרוב התוכנה לעולם אינה נדרשת לעמוד בו: ניגודיות בתקן WCAG AAA, רצפה של 16 נקודות לטקסט גוף, יעדי מגע של 48 פיקסלים לפחות, צבע שלעולם אינו הרמז היחיד, ומצב לילה שנחשב ערכת נושא מלאה ולא פילטר היפוך.

האתר האישי שלו מיישם את אותם כללים וחושף אותם כפקדים חיים, כך שמבקר יכול להעלות את רצפת הטיפוגרפיה, להחליף כל צבע בעל דגש נמוך לניגודיות AAA, לבטל תנועה או להפוך את כל הפריסה לעברית ולראות את הדף נענה. הגרסה העברית המלאה עומדת בפני עצמה, ואינה תרגום מכונה של האנגלית.

עבודה

Qeben היא אפליקציה לניטור ביתי של ניוון מקולרי תלוי־גיל, שפותחה עם קלט ייעוצי מרופאי עיניים ומחוקרים מהאקדמיה שפעלו בכובעם האישי — ללא שיתוף פעולה מוסדי. היא משלבת בדיקה עצמית יומית של חדות־על, שנועדה לחשוף עיוות בראייה המרכזית של המטופל בין ביקורים במרפאה, עם תהליך טריאז׳ עבור הרופא שמקבל את ההתראה. היא תוכננה לפי הסטנדרטים הנדרשים מתוכנה מפוקחת, אך מעולם לא עברה ולידציה קלינית ומעולם לא נפרסה, ומשיח מתאר אותה כאב־טיפוס מחקרי ולא כמוצר.

1 vs 100 הוא משחק שאלות חי בפורמט טלוויזיוני שנבנה עבור אוניברסיטת תל אביב ופרוס בכתובת cup.taueng.com, שבו מתמודד יחיד ניצב מול קהל של עד אלף שחקנים המצטרפים מהטלפון שלהם. הארכיטקטורה מציבה כל חדר משחק ב־Durable Object אחד של Cloudflare, כך שמצב החדר מסודר בטור מעצם המבנה ולא באמצעות נעילות, ומשתמשת ב־WebSocket Hibernation כך שאלף חיבורים בהמתנה אינם עולים דבר להחזקה. התוצאה מריצה כחמישים משחקי אלף־שחקנים מלאים ביום ללא עלות תשתית. החוקים חיים במנוע טהור בלי קלט־פלט ועם כיסוי בדיקות יחידה מלא.

Leviathan היא אפליקציה מקומית־תחילה ללימודים, אימונים, הרגלים, כספים ותכנון, שנבנתה כאפליקציית ווב סטטית בתוך מעטפת דסקטופ בלי רכיב שרת כלל. היא מריצה SQLite באופן מקומי בדסקטופ ו־SQLite המהודר ל־WebAssembly בדפדפן, עם סכימה אחת ודיאלקט אחד בשני היעדים, כך שיש סט התנהגויות אחד להבין במקום שניים שמסכימים ביניהם רוב הזמן.

לוח תוצאות כן

אחת מהמערכות האלה הגיעה לשלב אוניברסיטאי, אחת הגיעה לרופאים ונעצרה, ואחת מנהלת את חיי היומיום של מי שכתב אותה. אף אחת מהן לא הפכה עדיין לעסק. משיח מציין זאת במפורש באתר שלו במקום להציג את העבודה כרקורד שאיננה — עמדה שהוא נוקט משום שבתוכנה הסיבות שבגללן פרויקט נעצר מלמדות בדרך כלל יותר מהסיבות שבגללן פרויקט אחר נשלח, ומשום שטענה שאי אפשר לבדוק שווה פחות מהודאה שאפשר.

מחקר וכתיבה

לצד התוכנה, משיח מפרסם מחקר חישובי עצמאי בשלושה פלטים פומביים: מאמר על קידוד אלגברי של רצפי חומצות אמינו והרחבת מודלים בשדות סופיים ל־GF(32); ערכת תוכנה לקידוד GF(2^5) ותיקון שגיאות ריד־סולמון על נתוני ביו־פולימרים — אותה משפחת קודים ששומרת על שלמות נתוני ברקוד, QR ו־RFID; ו־MetaXFam, מאגר נתונים וערכת כלים המודדים היכן מודלי למידת מכונה של מטא־חומרים נכשלים על טופולוגיות שלא אומנו עליהן. העבודה מתפרסמת בגישה פתוחה עם DOI, ומופיעה ב־Google Scholar — עבודה עצמאית ולא פרסום בכתב עת שפיט. הוא גם כותב ניוזלטר הנדסי, Engineering Frontier.

קריאה נוספת

הרשימות הטכניות מתפרסמות במדור הרשימות. הראשונה מסבירה מדוע מסך אינו יכול למדוד חדות ורנייה — התופעה התפיסתית ש־Qeben בנוי עליה — וכמה קרוב הוא בכל זאת מגיע.

במקומות אחרים