סיפור אהבה עם AI · בייצור · קריאה של 22 דקות

שתי חליפות.

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

01 סיפור

היכרות עם פֶפִי.

Fefi and Chris walking together at golden hour, illustrated in cinematic graphic-novel style
— הזוג. לפני הסיפור. —

אשתי מנהלת עסק קטן.

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

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

מה שהיא חזרה איתו היה גדול יותר, רחב יותר, טוב יותר.

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

02 סיפור

הבירוקרטיה נכנסת.

A bureaucratic monster made of forms, IRS notices, calendar grids, and red tape, looming over a small storefront
— האנטגוניסט של הסיפור. אמיתי. —

כל סיפור צריך אנטגוניסט. האנטגוניסט של סיפור זה אינו אדם.

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

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

אני אשמור את המפלצת בסיפור. כי המפלצת היא הסיפור.

03 סיפור

המחיר.

Fefi at her desk late at night, surrounded by paperwork and red tape, the joy of her work draining
— מה שהאנטגוניסט עושה בשקט. —

להיות נשוי מספיק זמן, ואתה מפסיק לשמוע מה שבן הזוג שלך אומר.

אתה מתחיל לשמוע את מה שהם הפסיקו לומר.

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

אם אי פעם צפית במישהו שאתה אוהב מתדרדר בדבר שנהג לאהוב כי הכלים סביב הדבר הפכו גרועים יותר מהאדם — אתה יודע על מה אני מדבר.

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

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

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

04 סיפור

עין האדריכל.

Chris standing at the threshold of the storefront, his gaze cutting through the chaos to reveal blueprint geometry
— שם שרוב האנשים רואים רעש. —

אני לא מתכנת.

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

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

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

05 סיפור

החליפה.

Chris in red and gold technological exoskeleton armor, Iron Man-register, holographic blueprints in the workshop behind him
— האקסוסקלט, לפני שהפך לאופנתי. —

עבדתי עם AI על הפער הזה זמן רב. הרבה לפני שהפך לתכונת אישיות בלינקדאין.

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

החליפה לא עושה את האיש.
היא גורמת לו לעוף.

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

מה שהשתנה בשבילי, אחרי תרגול ארוך ושקט, לא היה שלמדתי לחשוב טוב יותר. זה היה שהחליפה סוף סוף התאימה.

06 REAL

בתוך הסדנה.

Chris at his real desk late at night, three monitors glowing with code, terminal output, and an architecture diagram
— שם החליפה בשימוש. אמיתי. —

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

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

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

יתר המאמר מכאן ואילך הוא סיור בתוצרי אותה סדנה.

06b REAL · THE AI SUIT

ארכיטקטורת ה-AI.

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

Cinematic illustration of the AI orchestration architecture: one operator at the center surrounded by AI Architect, Executor, Researcher in the inner ring; MCP servers in the middle ring; and PCP Hook, Parity Check, KG Refresh, Deploy Gate as boundary gates in the outer ring
— אופרטור אחד. קבוצת סוכנים. החליפה, ארכיטקטונית. —

הארכיטקטורה היא היררכיה. אני המפעיל. אדם אחד, מערכת עדיפויות אחת, חתימה אחת אחראית על כל החלטה.

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

הארכיטקט מאציל לשלוש רמות של סוכני-משנה, כל אחת עם תפקידה ועם כלליה הנוקשים:

רמת היישום. רצפת Sonnet 4.6 — לעולם לא Haiku. חמישה מומחים: Coder, Web, iOS, DBA, Designer. כל אחד מחזיק משטח ספציפי בבסיס הקוד. הארכיטקט בוחר את המתאים על פי מה שהשינוי נוגע בו בפועל, מעביר תוכנית, וסוקר את העבודה.

רמת האיכות והידע. מתייעצים בכל גבול שינוי. Researcher (קריאה בלבד) מרחיב על שאלות לפני שתוכנית בשלה. QA מריץ את המניפסט. Security שומר על גבולות האמון. Memory הוא הצינור הדמוי-מוח — גרף ידע בתוספת מערכת מגירות — המחזיק החלטות, כללים והיסטוריה בין סשנים כך שהצוות לעולם אינו מתחיל מאפס.

רמת הפעילות והמומחים. DevOps, Sync (Heavy graduation פעיל), Integrations. כל אחד מחזיק את משטחי המערכת ארוכי-הטווח — הפריסות, חיווט הסנכרון-לא-מקוון, וחוזי הצד-השלישי.

ומסביב לכל ההיקף, שומרים על כל קריאת כלי ועל כל commit בגבול — השומרים. Hooks שאינם בינה מלאכותית. היקף-פרויקט והיקף-git. ארבעה מהם: ה-Pre-Change Protocol Hook מזהיר כאשר קבצי שכבת הסנכרון עומדים להיערך ללא שאילתת גרף-ידע תחילה. Schema-verify חוסם SQL הרסני נגד טבלאות שטרם נבדקו בסשן הזה. ה-Parity Check רץ כשומר pre-commit ומסרב לכל commit שמנתק את חמש השכבות. ה-KG Refresh בונה מחדש אוטומטית את מפת המערכת לאחר כל commit משמעותי. אף אחד מאלה אינו מבקש רשות. הם פשוט אוכפים.

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

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

07 סיפור

המעבדה.

Chris in his workshop building Fefi's Ironheart suit, the FM logo glowing on its chest plate
— בונה את חליפתה. —

היא לא נתנה לי מפרט.

היא לא הייתה צריכה.

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

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

אז לא ביקשתי ממנה לכתוב מפרט. עשיתי לה אחד. הפלטפורמה שבניתי עבורה אינה אתר אינטרנט. היא אינה אפליקציה. היא אינה מנוי SaaS מחופש לשירות. זו חליפה.

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

08 REAL

ארכיטקטורת חמש השכבות.

עכשיו החלק הטכני. מותאם-אישית אינו תחושה — זו ארכיטקטורה.

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

Cinematic illustration of the five-layer parity contract: Public Site, Admin, API, Database, Mobile, connected by gold parity threads
— חוזה השוויון של חמש השכבות. —

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

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

A hand-drawn architectural sketch of the five layers on premium paper, lit by a warm desk lamp
— אותן חמש שכבות, על נייר לפני שהפכו לקוד. —

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

09 REAL

המערכת החיה.

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

Admin dashboard showing 3 new leads, 3 quoted, 5 upcoming bookings, $4,850 quote queue
לוח בקרת הניהול. נתונים חיים. pipeline שבע-ספרתי ממשי מסוכם בשמונה משבצות.

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

Lead pipeline kanban with 13 leads across stages new, qualified, quoted, and Carmen Delgado lead detail open
צינור הלידים. שלושה-עשר לידים בשלבים שונים. WhatsApp / טלפון / דוא״ל כפעולות זמינות. אירועי מפיקים שהוזמנו גלויים בתחתית.

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

Customer list with Elena Vasquez detail panel open, profile editor with phone, email, address, tags
פרטי לקוח. אותו אדם, נצפה מעדשת ניהול הלקוחות — עם היסטוריית האירועים, ערוץ הקשר, והתגיות שהיא משתמשת בהן בפועל.

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

Quotes list showing $27,715 pipeline across 7 quotes, with statuses Sent, Draft, Accepted
תור הצעות מחיר. שבע הצעות, $27,715 בתהליך. הסטטוסים מחושבים ממכונת המצב הבסיסית, לא נבחרים מתפריט נפתח.

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

Booking detail for Hannah Brookman Wedding showing $18,900, Sunny Isles Beach venue, Nov 8
פרטי הזמנה. חתונה. $18,900. סטטוס: זמני עד פיקדון. הערות מוצמדות אוטומטית. חבילות ספקים בלחיצה אחת.

עמוד ההזמנה משלב הכל שהיא צריכה לגבי אירוע יחיד: הפיננסים, האולם, ציר הזמן, סוג הקהל (קטינים / מבוגרים — שקובע את תזרים הוויתור), ההערות, וסטטוס שהיא לא יכולה לסנכרן בטעות ממחברת הפיקדונות. זה מה שאנשים מתכוונים ל"מקור אמת יחיד", אבל במציאות מערכת-ייצור, לא במציאות פיץ' של ספק.

אותם נתונים חיים בטלפון שלה. אותו מיתוג. אותו ריגיסטר של זהב-על-כהה. אותה אמת.

iOS app Today screen showing Good evening, Birthday Magic event, balance due, KPIs, and lead list
iOS · היום. ההופעה הלילית. יתרה לתשלום. לידים חדשים.
iOS customer detail showing Carmen Delgado, balance due, action buttons, quote and booking
iOS · פרטי לקוח. אותה קרמן כמו בניהול. אותה שורה, חלון קטן יותר.

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

09b REAL · PUBLIC SURFACE

מה לקוחותיה רואות.

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

Public homepage of Fefi Magical Moments
דף הבית. הרושם הראשון. מובל-מיתוג. הפלטפורמה בלתי נראית.

דף הבית הוא פתח המשפך. כל בלוק עליו ניתן להרכיב מממשק הניהול (בונה עמודים, בלוקי תוכן, המלצות, כריכות גלריה) — כלומר פֶּפֶה יכולה לעדכן את חדר התצוגה מבלי לגעת במפתח.

Experiences page showing event services and packages
חוויות. הקטלוג של מה שהיא עושה. שירותים, חבילות, תמחור — הכל מונע מממשק הניהול.

דף החוויות מיוצר מאותן טבלאות services וservice_packages שממשק הניהול משתמש בהן. ערוך מחיר חבילה בממשק הניהול, האתר הציבורי משקף זאת בטעינה הבאה. מקור אמת אחד.

Magic Hour public registration page for Glow Paint Night
עמוד Magic Hour ציבורי. מיוצר אוטומטית מכל שורת אירוע Magic Hour בממשק הניהול. טופס רישום ציבורי. מונה מושבים. חי.

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

Gallery page showing event photo collections
גלריה. אירועי עבר. תיק העבודות. מופעל על ידי פלטפורמת המדיה המאוחסנת-עצמית.

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

About page introducing Fefi
אודות. האמנית מאחורי הפלטפורמה.

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

10 REAL

רצף הסינכרון.

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

Cinematic illustration of the offline sync sequence: Offline, Queued, Reconnect, Merge, Commit — five-stage flow
— רצף סינכרון אופליין. —

כל שורה מסונכרנת נושאת חמישה חלקי מטא-נתונים: _doc_uuid, _sync_token, _etag, _deleted_at, ועוד חותמות זמן לכל שדה. הטלפון מחזיק מראה SQLite דרך GRDB; כתיבות לא-מקוונות מאוחסנות מקומית ומתנקזות בעת ההתחברות מחדש. המיזוג הוא server-authoritative: אם השרת ידרוס, לקוח אף פעם לא ידרוס חזרה.

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

Admin calendar showing May 2026 with Glow Paint Night, Birthday Magic, Glow Experience events
תצוגת הלוח. הזמנות מאושרות, הזמנות ממתינות, אירועי magic hour, אירועי-הצעת-מחיר — הכל על בד אחד, מקודד בצבע.

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

Magic Hours list showing Glow Paint Night May Edition, 10 of 50 attendees, $45 ticket, Published
ניהול Magic Hour. אירוע ציבורי עם ספירת מושבים, תמחור, סטטוס. עמוד הרישום הציבורי מיוצר משורה זו.
11 REAL

אינטגרציות ופריסה.

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

Cinematic illustration of the integration map: FMM Platform at center surrounded by Stripe, Email, CalDAV, Storage, Webhook, Cron, QBO, Auth
— מפת האינטגרציות. —

אף אחד מאלה אינו מנוחש. כל שילוב לעיל נמצא בייצור. כל אחד מהם נכשל-סגור — כלומר אם Stripe מפסיק לפעול, הפלטפורמה מעמידה את החיוב בתור ומציגה למשתמש את האמת ("נעבד זאת כשהתשלום חזר") במקום להעמיד פנים שהחיוב הצליח. שמירות SSRF על שליפות URL. RFC1918 / link-local / cloud-metadata חסומים. פרימיטיבים של הגבלת-קצב על כל נקודת קצה ציבורית. האינסטלציה המשעממת שמונעת מפלטפורמה ממשית להתבייש מול לקוח ממשי.

A cinematic photo of a workshop wall showing the integration map glowing on a glass panel, real working environment
— אותה מפה, על קיר הסדנה. אמיתי. —
Cinematic illustration of the deployment topology: Local, GitHub, IONOS — same docker topology end to end, no environment drift
— טופולוגיית פריסה · מקומי ↔ GitHub ↔ IONOS. —

הייצור מריץ את אותה טופולוגיית docker-compose כמו ה-dev המקומי. אותם קונטיינרים. אותה סביבה. הדבר היחיד שמשתנה הוא שלקופסת IONOS יש IP ציבורי ו-Caddy מנפיק TLS אוטומטית ל-fefimagicalmoments.com. "עובד אצלי" מפסיק להיות מצב כישלון אפשרי כאשר מכונת הייצור והמכונה המקומית מריצות קונטיינרים זהים.

12 סיפור

החליפה הסימטרית.

Chris and Fefi standing together in mirror composition, both in technological armor — Iron Man and Ironheart
— שתי חליפות. שתי מתנות. —

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

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

אותו היגיון. מתנה שונה.

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

ה-AI החזיר לי את התפוקה שלי.
הפלטפורמה מחזירה לה את האמנות שלה.

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

13 סיפור

הקרב.

Iron Man and Ironheart fighting the Paperwork monster, dispersing it with golden light beams
— איירון מן + איירון הארט נגד הבירוקרטיה. —

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

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

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

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

14 REAL

הטלפון באולם.

Fefi's hand holding her phone at a beautiful event venue, the platform's UI visible on the phone screen showing today's events
— הפלטפורמה, בידה, באירוע אמיתי. —

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

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

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

15 סיפור

השחרור.

Fefi at an event venue at evening, in her Ironheart armor, arranging flowers on a banquet table, fully in her flow as the artist
— חופשית להיות האמנית שוב. —

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

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

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

היא לא הפכה מהירה יותר. היא קיבלה חזרה את הגרסה של עצמה שהיא תמיד הייתה כשאף אחד לא גרם לה להיות האישה העסקית.

זה מה שבניתי לה באמת. לא תכונות. אפילו לא פלטפורמה. בניתי לה בחזרה את התקרה שלה.

16 REAL

בגרות Red-Team.

Pages of a security audit / red-team report on a wood desk, marked up by hand in pen, beside a closed MacBook
— משמעת העצירה. —

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

מה שלא אעשה כאן הוא לפרסם את הממצאים. זה ההבדל בין כתיבה לבין רשימת בדיקה לתוקף. הראה את הצלקת, לא את הפצע — והצלקת במקרה זה היא עמדה: חישוב מחדש server-authoritative על כסף ומכונות מצב, הגבלת קצב fail-closed על נקודות קצה ציבוריות, KDF v2 לגיבוב סיסמאות, הגנת TOTP replay, HtmlSanitizer בשמירה, אכיפת CSP, Caddy auto-TLS לפני הכל.

תכונה אינה גמורה כשהיא עובדת. היא גמורה כשהיא נכשלת בבטחה. זו הגרסה של "נשלח" שלוקחת שנה יותר ללמוד ולא יורדת מהקורות-חיים שלך לאחר שלמדת.

17 סיפור

הערב.

Chris and Fefi from behind, on a balcony at twilight, evening cityscape below, two wine glasses, no devices
— נמדד בערבים שמחזירים אליך. —

וזה, בסופו של דבר, הנקודה האמיתית של כל זה.

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

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

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

זה נמדד בערבים שאתה מחזיר לעצמך.
18 סיום

מה זה אומר הלאה.

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

אני לא גמרתי. יש רשימה של דברים שאני רוצה להוסיף. תמיד יש.

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

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

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

זו הייתה החליפה שעדיין לא הייתה לך.

היא מעצבת את הימים שאחרים זוכרים.

אני כותב את הרצפה מתחתיהם.