تدبیرپرداز

چالش ده روزه

یک مسئله واقعی از دنیای سامانه‌های معاملاتی را از حوزه خودت حل کن.

تا پایان مهلت
۰۰روز
۰۰ساعت
۰۰دقیقه
۰۰ثانیه
۱۰ روزمهلت ارسال
حدود ۸ ساعتحجم کار
۶ نفرجلسه دفاع
۲ نفرروز تجربه در تدبیرپرداز

مسیرها

برنامه‌نویسی و توسعه نرم‌افزار

صورت مسئله

یک موتور تطبیق سفارش بنویس که برای سه نماد کار کند. برای شبیه‌سازی کاربران هم‌زمان، سفارش‌های خرید و فروش را با پردازش موازی (چند تولیدکننده هم‌زمان) و با نرخ بالا تولید کن؛ قیمت‌ها تصادفی و در بازه ۱۰۰ تا ۲۰۰، و تعدادها هم تصادفی. موتور باید سفارش‌ها را با اولویت قیمت و سپس زمان تطبیق دهد؛ معامله با قیمت سفارشی انجام می‌شود که زودتر در دفتر بوده است. زبان برنامه‌نویسی آزاد است.

id,side,price,qty
1,BUY,100,1000
2,BUY,102,500
3,BUY,101,300
4,SELL,101,600

trades (buy_id,sell_id,price,qty):
2,4,102,500
3,4,101,100

book: BUY 101 x200 (id 3) | BUY 100 x1000 (id 1)

حداقل خواسته

  • هیچ سفارشی گم یا دوبار پردازش نشود و مجموع حجم‌ها با معامله‌ها و دفتر باقی‌مانده جور باشد.
  • اولویت قیمت و زمان حتی زیر بار هم‌زمان رعایت شود.
  • نمونه ورودی و خروجی زیر، به‌عنوان آزمون درستی، پاس شود.
  • تعداد سفارش پردازش‌شده در ثانیه روی سیستم خودت گزارش شود.

امتیاز اضافه

  • گزارش تأخیر (مثلاً میانه و صدک ۹۹)
  • توقف تمیز برنامه بدون از دست رفتن سفارش
  • مقایسه دو طراحی متفاوت برای هم‌زمانی

چه بفرستی

لینک مخزن کد با README که نحوه اجرا، طراحی هم‌زمانی (چطور از تداخل جلوگیری کردی) و نتیجه اندازه‌گیری را توضیح دهد، به‌همراه آزمون‌ها.

هوش مصنوعی و علم داده

صورت مسئله

با داده ساختگی پیوست (۲۰۰ مشتری، ۲۰ نماد در ۵ صنعت، ۶۰ روز معاملاتی)، برای هر مشتری با توجه به آخرین معاملاتش پیش‌بینی کن به کدام نمادها و صنعت‌ها علاقه دارد. سپس برنامه‌ای بنویس که آخر هر روز معاملاتی یک خلاصه آماری از وضعیت بازار، صنعت‌ها و نمادهای مورد علاقه هر مشتری بسازد. همه داده‌ها ساختگی‌اند و به هیچ مشتری واقعی ربط ندارند.

حداقل خواسته

  • برای هر مشتری سه نماد یا صنعتِ محتمل بعدی پیش‌بینی شود.
  • روش ارزیابی‌ات را توضیح بده؛ مثلاً آموزش روی ۵۰ روز اول و سنجش روی ۱۰ روز آخر، با یک معیار مشخص.
  • خروجی نمونه خلاصه روز آخر برای کل بازار، هر صنعت و دست‌کم پنج مشتری ارائه شود.

امتیاز اضافه

  • تشخیص مشتریانی که علاقه‌شان در طول دوره عوض شده است
  • مقایسه یک روش ساده پایه با روش اصلی
  • قالب خوانا برای خلاصه روزانه، مثلاً یک پیام کوتاه یا داشبورد

چه بفرستی

نوت‌بوک یا کد با README، نمونه خروجی و توضیحی حداکثر دوصفحه‌ای درباره روش و نتیجه ارزیابی.

تست نرم‌افزار و تضمین کیفیت

صورت مسئله

روی «سامانه آزمایشی ثبت سفارش» پیوست، با هر ابزاری که دوست داری (مثلاً Playwright، Selenium یا Cypress) تست خودکار رابط کاربری بنویس. قواعد مورد انتظار داخل خود صفحه آمده است و چند خطا عمداً در آن کاشته شده. هدف، پیدا کردن هر چه بیشتر خطاها با تست‌هایی است که خودکار اجرا می‌شوند. صفحه را می‌توانی دانلود کنی و روی سیستم خودت باز کنی.

حداقل خواسته

  • دست‌کم ۱۰ تست خودکار که با یک دستور اجرا شوند.
  • گزارش هر خطای پیداشده: گام‌ها، نتیجه مورد انتظار، نتیجه واقعی و تستی که آن را می‌گیرد.
  • پوشش مرزها، ورودی‌های نادرست و رفتار جدول سفارش‌ها.

امتیاز اضافه

  • گزارش اجرای تست به شکل HTML یا تصویر
  • اجرای تست‌ها در یک CI ساده
  • تست برای نمای موبایل

چه بفرستی

لینک مخزن کد با README و فهرست خطاهای پیداشده.

زیرساخت، شبکه، امنیت و DevOps

صورت مسئله

یک معماری برای محیط پروداکشن یک سامانه معاملاتی پرتراکنش پیشنهاد بده که منابع را درست مدیریت کند. فرض کن در ساعت‌های مشخصی از روز، مثل شروع و پایان بازار، بار بسیار بالاست و در بیشتر ساعت‌ها تعداد تراکنش کم است. بک‌اند یک API با ‎.NET Core‎ و فرانت‌اند React است. فرض کن سرویس روی دیتاسنتر داخلی اجرا می‌شود؛ اگر بستر ابری پیشنهاد می‌کنی، محدودیت‌های دسترسی در ایران را در نظر بگیر.

حداقل خواسته

  • نمودار معماری و انتخاب فناوری‌ها با دلیل
  • راهبرد مقیاس‌پذیری برای ساعت‌های اوج و کم‌بار (پیش‌بینی‌شده و واکنشی)
  • پایگاه داده، کش، صف پیام و پایش (لاگ، متریک، هشدار)
  • بخش امنیت: احراز هویت، محدودسازی نرخ درخواست و حفاظت از سامانه در ساعت اوج

امتیاز اضافه

  • برآورد تقریبی منابع در اوج و کم‌باری
  • راهبرد استقرار بدون قطعی و بازگشت
  • سناریوی خرابی یک جزء و رفتار سامانه

چه بفرستی

سندی حداکثر سه‌صفحه‌ای به‌همراه نمودار. هیچ سامانه واقعی‌ای نباید آزمایش یا اسکن شود؛ این مسیر فقط طراحی است.

تحلیل کسب‌وکار، محصول و مالی

صورت مسئله

یک گزارش محصولی از مقایسه سامانه معاملاتی «کمان» تدبیرپرداز با یک سامانه معاملاتی خارجی به انتخاب خودت بنویس و نقاط قوت و ضعف هر دو را مطرح کن. اگر حساب کاربری کمان نداری، از ویدیوها و راهنماهای عمومی آن استفاده کن و منابعت را ذکر کن.

حداقل خواسته

  • معیارهای مقایسه را خودت تعریف کن؛ مثلاً تجربه کاربر، ثبت سفارش، ابزارهای تحلیل، نمایش کارمزد و هزینه‌ها، آموزش و ورود کاربر تازه.
  • نقاط قوت و ضعف هر دو سامانه با شواهد (تصویر یا توضیح دقیق).
  • سه پیشنهاد بهبود برای کمان، اولویت‌بندی‌شده و با دلیل.

امتیاز اضافه

  • برآورد اثر هر پیشنهاد و سنجه موفقیت آن
  • نگاه مالی: اثر کارمزد و ابزارهای مدیریت ریسک بر رفتار کاربر

چه بفرستی

گزارشی حداکثر چهارصفحه‌ای. تدبیرپرداز می‌تواند از برداشت‌های این گزارش برای بهبود محصولاتش استفاده کند؛ متن و ایده‌های خاص تو بدون اجازه‌ات منتشر نمی‌شود.

قوانین

  1. هر نفر یک ارسال، در یک مسیر. چالش فردی است.
  2. مهلت ارسال:یکشنبه ۱۰ آبان ۱۴۰۵ · ۲۲:۰۰
  3. پاسخ را با لینک بفرست (GitHub، Google Drive یا مشابه) و دسترسی مشاهده را باز کن. تا پایان مهلت می‌توانی دوباره ارسال کنی؛ آخرین ارسال داوری می‌شود.
  4. استفاده از ابزارهای هوش مصنوعی مجاز است؛ در فرم بگو برای چه بخش‌هایی از آن کمک گرفتی. مهم این است که کار را بفهمی: در جلسه دفاع، راه‌حلت را توضیح می‌دهی و یک تغییر کوچک را همان‌جا در آن اعمال می‌کنی.
  5. کپی از کار دیگران بدون ذکر منبع، باعث حذف از داوری می‌شود.
  6. در مسیر تست، فقط روی سامانه آزمایشی پیوست تست بنویس. اجرای تست خودکار روی هر سامانه معاملاتی واقعی ممنوع است و باعث حذف می‌شود. در مسیر زیرساخت هم هیچ سامانه واقعی‌ای را آزمایش یا اسکن نکن.
  7. مالکیت کد و ایده با خودت می‌ماند و تدبیرپرداز بدون اجازه کتبی‌ات از آن استفاده نمی‌کند؛ به‌جز مسیر محصول، که برداشت‌های گزارش می‌تواند برای بهبود محصولات تدبیرپرداز به کار برود.
  8. کارکنان تدبیرپرداز و داوران نمی‌توانند شرکت کنند.

مسیر انتخاب

۱

داوری کتبی

۲داور، بدون دیدن نام
درستی و کیفیت۳۵٪
اصالت و خلاقیت۲۵٪
وضوح توضیح۲۰٪
ارتباط با مسئله واقعی فین‌تک۲۰٪
۲

جلسه دفاع

۶نفر برتر با امتیاز ۳٫۵ به بالا
ارائه ۸′پرسش ۷′تغییر زنده ۵′
۳

روز تجربه

۲نفر برتر
کتبی ۵۰٪دفاع ۵۰٪
بقیه دفاع‌کنندگان: جلسه بازخورد تخصصی و گواهی فینالیست
  1. روز رویدادشروع چالش
  2. روز دهمپایان مهلت ارسال
  3. تا یک هفته بعدداوری کتبی و دعوت از فینالیست‌ها
  4. هفته دومجلسه‌های دفاع و اعلام نتیجه
  5. پس از نتیجهبازخورد کتبی برای همه و هماهنگی روز تجربه

ارسال پاسخ

مهلت ارسال چالش به پایان رسیده است

ممنون از همراهی‌ات.