Tradiger
Tradiger یک پلتفرم معاملاتی مالی است که به عنوان بخشی از یک تیم توسعه بینالمللی مستقر در استانبول، ترکیه در آن مشارکت داشتم. این اولین تعامل بینالمللی از راه دور من بود و نحوه تفکرم درباره کار تیمی توزیعشده و نرمافزارهای پرریسک را شکل داد.
زمینه
پروژه شامل همکاری با توسعهدهندگان، مدیران محصول و کارشناسان حوزه مالی در چندین منطقه زمانی مختلف بود. پلتفرم دادههای بازار real-time، مدیریت سفارش و پیگیری پرتفولیو را برای معاملهگران مدیریت میکند.
مشارکتهای من
در تیم بکند، مسئولیتهای زیر را داشتم:
- طراحی و پیادهسازی سرویسهای اصلی پردازش سفارش
- ساخت pipelineهای اطلاعرسانی real-time برای هشدارهای قیمت و بهروزرسانیهای وضعیت سفارش
- توسعه موتور ارزیابی پرتفولیو با پشتیبانی از چندین کلاس دارایی
- بهینهسازی عملکرد کوئریهای گزارشدهی data-intensive
- یکپارچهسازی با ارائهدهندگان داده بازار شخص ثالث
چالشهای فنی
الزامات تأخیر
پلتفرمهای معاملاتی با تأخیر زندگی یا میمیرند. روی کاهش زمان round-trip در pipeline پردازش سفارش بهطور گسترده کار کردم — هر میلیثانیه اهمیت داشت.
سازگاری داده
در یک سیستم توزیعشده که تراکنشهای مالی را مدیریت میکند، اطمینان از سازگاری در دفترچه سفارشها، موجودی حسابها و گزارشهای حسابرسی نیاز به طراحی دقیق داشت. از ترکیبی از همزمانی خوشبینانه و event sourcing برای مسیرهای حیاتی استفاده کردیم.
همکاری بینالمللی
کار در فرهنگها و منطقههای زمانی مختلف به من اهمیت ارتباط async واضح، مستندسازی کامل و ساخت سیستمهایی که دیگران بتوانند به راحتی درکشان کنند را آموخت.
پشته فناوری
- .NET Core برای موتور معاملاتی اصلی و APIها
- Node.js برای سرویسهای WebSocket real-time
- PostgreSQL برای دادههای تراکنشی
- Redis برای caching و پیامرسانی pub/sub
- RabbitMQ برای ارتباط بین سرویسها