דוד משיח
דוד משיח

אדם אחד · שלוש מערכות · בלי צוות

דוד משיח

מפתח תוכנה עצמאי · סטודנט לתואר ראשון בהנדסת מכונות באוניברסיטת תל אביב · תל אביב

David Mashiah · דוד משיח · David Mashiach

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

שלוש המערכות הדגמת חדות ורנייה (באנגלית)

1,000
שחקנים במקביל
$0
עלות הרצה בעומס הזה
AAA
יעד ניגודיות
100%
כיסוי מנוע החוקים

כל אחד יכול לייצר קוד היום. אני בונה את מה שעדיין עובד בעוד חצי שנה.

ההבדל, בניסוח פשוט

01 שיטה

איך אדם אחד מספיק כל כך הרבה

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

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

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

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

  1. 01

    גבולות הם שגיאות בילד

    ייבוא עמוק בין פיצ׳רים מפיל את הבילד. חומות המודולים נאכפות, לא מתועדות.

  2. 02

    תקרה של 400 שורות

    נאכפת ב־lint, כך ששום קובץ לא הופך בשקט לזה שאף אחד לא מוכן לפתוח.

  3. 03

    מפות מאגר נוצרות ומאומתות ב־CI

    לעולם לא מיושנות. מאתרים קוד בקריאת מפה קטנה אחת, לא בסריקת העץ.

  4. 04

    חוב מבני יורד בלבד

    הבילד נכשל אם הוא עלה. חוב הוא מספר, לא תחושה.

  5. 05

    נגישות היא שער

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

  6. 06

    שגיאות נושאות איתן אבחון

    גרסת סכימה, יומן מיגרציות, ספירת שורות, זמני שאילתה, דגלי N+1. ניפוי שגיאות מתחיל מראיות.

02 אילוצים

הדרישות שאני בוחר בהן שוב ושוב

אני לא רופא ולא מומחה נגישות. אני גנרליסט שממשיך לבחור בעיות שנגררות איתן דרישות לא נוחות — ואלה התנאים שנובעים מהן.

תחוםתוכנה רפואית מפוקחת · מערכות להשכלה גבוהה
שפות ממשקעברית (RTL) · ערבית (RTL) · אנגלית
יעד ניגודיותWCAG AAA
רצפת טיפוגרפיה16pt גוף · 24pt קריטי
יעדי מגע48px ומעלה
תנועה120–320ms · מבוטלת תחת prefers-reduced-motion
צבעלעולם לא הרמז היחיד — תמיד יחד עם אייקון וטקסט
אורך קובץ מרבי400 שורות · נאכף ב־lint
גבולות מודוליםייבוא בין פיצ׳רים מפיל את הבילד
עומס שיא1,000 שחקנים בחדר אחד · נמדד, לא מוערך
עלות הרצה בעומס הזה$0
הדף הזהמיישם את כל האמור למעלה — בגרסה האנגלית הפקדים חשופים למבקר
03 עבודה

שלוש מערכות, שנבנו לבד

אחת קלינית, אחת בזמן אמת, אחת מקומית־תחילה. בלי צוות באף אחת מהן.

אחת הגיעה לאוניברסיטה והיא חיה. אחת הגיעה לרופאים ונעצרה. אחת מנהלת את חיי היומיום שלי. אף אחת מהן איננה עסק.

לוח התוצאות, פרויקט אחרי פרויקט

Qeben

מעולם לא נפרס

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

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

סטטוסאב־טיפוס מחקרי · מעולם לא נפרס
קלט ייעוצירופאי עיניים וחוקרים מהאקדמיה, בכובעם האישי — ללא שיתוף פעולה מוסדי
משתמשים מיועדיםמבוגרים בני 50 ומעלה שמאבדים ראייה מרכזית
ממשקעברית תחילה RTL · AAA · רצפת 16pt · יעדי מגע 48px · מצב לילה כערכת נושא מלאה
צד שרתרב־דיירי · הקשר תחום אחד לכל מודול
רגולציהתוכנן לפי תקני SaMD · לא עבר ולידציה קלינית · סומן כלא לשימוש אבחוני

1 vs 100

אוניברסיטת תל אביב

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

חי — cup.taueng.com ↗

עומס שיא1,000 שחקנים, חדר אחד
עלות הרצה$0 · בערך 50 משחקים מלאים ביום
מודל מקביליותDurable Object אחד של Cloudflare לכל חדר — סריאליזציה מעצם המבנה, לא מנעילות
תעבורהWebSocket Hibernation · חיבורים בהמתנה מוחזקים פתוחים בלי חיוב
מנוע חוקיםטהור, בלי קלט־פלט · כיסוי בדיקות יחידה 100%
אימותמערך בדיקות עומס שמדמה N שחקנים, כך שהמספר נמדד ולא מוערך

Leviathan

מקומי־תחילה

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

מעטפתTauri 2 בדסקטופ · ייצוא סטטי של Next.js
שרתאין
אחסוןSQLite מקומי בדסקטופ · SQLite-WASM על OPFS בדפדפן
מקור האמתמסד הנתונים — ה־stores הם מטמון בזיכרון מעליו
מיגרציותSQL בכתב יד · Drizzle לשאילתות ולטיפוסים
אבחוןגרסת סכימה, יומן מיגרציות, ספירת שורות, זמני שאילתה, דגלי N+1 — בלחיצה אחת