דילוג לתוכן הראשי

קריירה

ניסיון

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

Intuit

ינואר 2026 - היום · ישראל · 2 תפקידים

תפקיד נוכחייולי 2026 - היום

Senior Backend Engineer, QuickBooks Bill Pay / B2B Payments

עבודה על אמינות ועקביות בשירות תשלומי B2B של QuickBooks Bill Pay ב-Intuit. חיזקתי את הולידציה ואת הטיפול ב-abort, תכננתי את כללי הזכאות ל-Retry בתשלומי כרטיס אשראי שנכשלו, בניתי ניקוי אוטומטי של הוראות תשלום תקועות (Payment Instructions), והייתי אחראי על החקירה והתיקון של באג בעקביות מצב התשלום בין כמה שירותים.

  • ולידציה של תשלומים
  • כללי זכאות ל-Retry
  • אוטומציית מחזור חיים
  • עקביות מצב התשלום בין שירותים
  • חיזקתי את הולידציה של תשלומים ברמת ה-batch. שילובי תשלום שאינם נתמכים בתוך batch, כמו כרטיס אשראי עם Real-Time Payments (RTP), נדחים עוד לפני שכבת השמירה והעיבוד ב-downstream. סדר העדיפויות הקיים בין הולידציות לא השתנה.
  • תיקנתי את הטיפול ב-abort: הוראות תשלום בכרטיס אשראי שממתינות לאישור כבר לא מבוטלות בטעות. ההתנהגות באמצעי תשלום ובמצבים אחרים לא השתנתה.
  • תכננתי ומימשתי את כללי הזכאות ל-Retry ואת סיווג סוגי הכשלים בתשלומי batch בכרטיס אשראי שנכשלו. ה-API של ה-polling לתשלומי batch מחזיר עכשיו סיווג כשל מוגדר (typed) ומטא-דאטה על זכאות ל-Retry, והלקוח מציע תזמון מחדש רק עבור כשלים שזכאים לכך. סוג הכשל שנשמר גובר על סטטוס התשלום הישן (legacy), ותיקנתי גם מצבים שבהם שני השדות סתרו זה את זה.
  • תכננתי ומימשתי job מתואם באמצעות ShedLock שמאתר ומבטל הוראות תשלום תקועות. הוראות כאלה יכלו להישאר ב-Pending זמן רב מדי ולהשאיר את המשתמשים בלי מצב תשלום ברור. אינדקס DynamoDB דליל ומחולק ל-shards החליף סריקה של הטבלה כולה, ואני תכננתי והקמתי אותו. ה-job קורא מחדש את המצב העדכני לפני כל ביטול, ומוגן באמצעות kill switch גלובלי, הפעלה לפי feature flag ברמת החברה ובידוד כשלים ברמת ה-candidate.
  • הפכתי את תוקף הביטול האוטומטי (TTL) לניתן לרענון בזמן ריצה, עם ולידציה שמונעת ערכים לא תקינים.
  • מימשתי סינון בנתיב הקריאה שמוציא הוראות תשלום שנכשלו בכרטיס אשראי מתוצאות ה-UI וה-API של Payments. ACH ואמצעי תשלום ישנים (legacy) ממשיכים להתנהג כמו קודם.
  • הרחבתי את הטיפול בתשלומים גם לשירותי ה-downstream שרושמים תשלומים ב-QuickBooks. אירוע מחזור חיים upstream שהרישום בכרטיס אשראי הסתמך עליו הוסר, ולכן העברתי את ה-trigger לאירוע מוקדם יותר. הרישום נשאר idempotent גם תחת Retry ואירועים שנשלחו מחדש, וכשל ברישום החשבונאי לא יכול לבטל או להכשיל תשלום שהכסף שלו כבר עבר. ACH משתמש במסלול נפרד ולא השתנה.
  • הייתי אחראי על ניתוח שורש הבעיה ועל התיקון של באג במצב תשלום שחצה כמה שירותים ותהליכים אסינכרוניים. אחרי שינוי במצב מחזור החיים, batches עם תוצאות מעורבות יצרו התראות שגויות ב-downstream. התיקון שמר על ההתראות, על האגרגציה ועל התאימות לאחור. הוספתי בדיקות רגרסיה ואימות מקצה לקצה בסביבה דומה לפרודקשן, בהקשר שבדיקות קודמות לא כיסו. התיקון נפרס ופועל בפרודקשן.
  • דיברתי ישירות עם לקוחות על בעיות בפרודקשן, השתתפתי בשיחות איתור תקלות מחוץ לשעות העבודה באירועים שהשפיעו על לקוחות ובפגישות אינטגרציה, ועבדתי עם צוותי Configuration ו-DevOps ועם צוותי הנדסה נוספים בחקירות משותפות.
  • Java,
  • Spring Boot,
  • REST APIs,
  • DynamoDB,
  • AWS,
  • ShedLock,
  • Splunk,

ינואר 2026 - יולי 2026

Senior Backend Engineer, Data Exchange Platform / IDX

בנק מזרחי-טפחות (UMTB)

2024 - 2026 · ישראל

Momentum

2023 - 2024 · ישראל

2023 - 2024

Full-Stack Engineer, Fintech

Harel Insurance

2021 - 2023 · ישראל

Israel Air Force

2018 - 2021 · ישראל

2018 - 2021

Full-Stack Engineer