بررسی و ارزیابی معماری فعلی نرمافزار و شناسایی گلوگاهها (bottlenecks)
- بازطراحی و بهبود معماری برای مقیاسپذیری (پشتیبانی از تعداد بیشتر دوربین و استریم همزمان)
- بهینهسازی مدیریت threadها و pipeline پردازش ویدیو
- بهبود مدیریت حافظه و هماهنگی بین ماژولها
- اجرا و مستندسازی تستهای عملکردی مرحلهبهمرحله
- مستندسازی تصمیمات معماری
مهارتهای مورد نیاز
الزامی:
- تسلط به C++
- تجربه عملی با Qt (Signal/Slot، QThread، QTimer، مدیریت memory)
- تجربه کار با استریمهای ویدیویی و کتابخانههایی مانند FFmpeg یا GStreamer
- تسلط به مفاهیم multi-threading و concurrent programming
- آشنایی کافی با الگوهای معماری نرمافزار (MVC، MVVM، Layered Architecture)
ترجیحی:
- تجربه کار با ONNX Runtime (یا سایر فریمورکهای یکپارچهسازی) و کتابخانههای پردازش تصویر/گرافیک (OpenCV, OpenGL)
- آشنایی با ابزارهای Profiling و راهکارهای بهینهسازی مصرف CPU/GPU/Memory
- آشنایی با معماری و نیازمندیهای سیستمهای مدیریت ویدیو (VMS)
- آشنایی با پروتکلهای امن شبکه و رمزنگاری ارتباطات (TLS/SSL و Secure Streaming)
- آشنایی با اصول Secure Coding و تکنیکهای محافظت از سورسکد
- تجربه پکیجینگ نرمافزار و ساخت Installer در ویندوز
شرایط ایدهآل متقاضی
- حداقل 3 سال سابقه کار با C++/Qt (ترجیحاً در پروژههای real-time/Desktop)
- حداقل یک پروژه مرتبط با پردازش ویدیو یا سیستمهای real-time در پورتفولیو
- توانایی code review و ارائه بازخورد سازنده به تیم
- مسئولیتپذیر و توانایی مستندسازی دقیق