معرفی موقعیت شغلی: ما در حوزه طراحی و توسعه محصولات الکترونیکی و سیستمهای مبتنی بر میکروکنترلر فعالیت میکنیم. در این موقعیت شغلی، مهندس نرمافزار مسئول توسعه و نگهداری نرمافزارهای دسکتاپ و موبایل برای ارتباط با سختافزارهای مبتنی بر MCU، پیادهسازی رابط کاربری، مدیریت ارتباطات شبکه و یکپارچهسازی با سرویسهای مختلف خواهد بود. این نقش نیازمند همکاری نزدیک با تیمهای Firmware و Hardware است. مسئولیتها • توسعه و نگهداری نرمافزارهای دسکتاپ مبتنی بر .NET برای کنترل و مانیتورینگ دستگاههای سختافزاری • پیادهسازی رابطهای کاربری (UI) پایدار و کاربرپسند • پیادهسازی ارتباط بین نرمافزار و دستگاههای مبتنی بر میکروکنترلر از طریق پروتکلهای مختلف • تحلیل، نگهداری و بهبود پروژههای نرمافزاری موجود • پیادهسازی و مدیریت ارتباطات شبکه و تبادل داده با دستگاهها • همکاری با تیم Firmware برای تعریف و پیادهسازی پروتکلهای ارتباطی • مشارکت در مدیریت نسخه و توسعه تیمی با استفاده از Git
مهارتهای فنی مورد نیاز ۱. زبان و پلتفرم • تسلط کامل به C# و .NET • تسلط کامل به ++C • تسلط بر مفاهیم پیشرفته C# • آشنایی با qt 2. توسعه نرمافزار دسکتاپ تسلط به حداقل یکی از موارد زیر: • WinForms • WPF • .NET MAUI 3. ارتباط با سختافزار و دستگاهها • تجربه کار با Serial Port (UART) • برنامهنویسی Socket و کار با TCP / UDP • کار با HTTP Client و REST API • تجربه در ارتباط با دستگاههای مبتنی بر WiFi 4. مدیریت و پردازش داده • تجربه کار با JSON (Serialization / Deserialization) 5. ارتباطات بلادرنگ • آشنایی یا تجربه کار با: • SIP • RTP • WebSocket برای Signaling • API سرورهای VoIP 6. کنترل نسخه و توسعه تیمی: • تسلط به Git • تجربه کار با Branch،Merge و مدیریت نسخه در پروژههای تیمی ۷. نگهداری و توسعه پروژههای موجود • توانایی تحلیلCodebaseهای بزرگ • توانایی نصب و مدیریت Dependencyها • تحلیل ساختار پروژههای موجود • Refactoring کد برای بهبود کیفیت و نگهداریپذیری • عیبیابی و Bug Fix در سیستمهای موجود
شرایط و تجربه مورد نیاز: • حداقل ۳ سال تجربه توسعه با C# • تجربه حداقل یک پروژه در حوزه ارتباط با دستگاه (Device Communication) • تجربه کار با Serial Communication یا Socket Programming • تجربه نگهداری و توسعه پروژههای نرمافزاری موجود