شرح شغل
ما در تیم توسعه نرمافزار به دنبال یک توسعهدهنده توانمند و مسئلهمحور هستیم که علاوه بر تسلط بر برنامهنویسی C و درک عمیق از مفاهیم سیستمعامل و شبکه، توانایی توسعه و نگهداری سرویسهای نرمافزاری با استفاده از GoLang را داشته باشد.
در این موقعیت شغلی، مسئولیت توسعه قابلیتهای جدید، بهبود نرمافزارهای موجود، تحلیل و رفع مشکلات فنی و مشارکت در طراحی راهکارهای نرمافزاری امن، پایدار و مقیاسپذیر را بر عهده خواهید داشت.
- توسعه، نگهداری و بهبود نرمافزارهای موجود و پیادهسازی قابلیتهای جدید متناسب با نیازمندیهای محصول
- تحلیل کدهای موجود، درک ساختار و معماری نرمافزار و رفع اشکالات فنی و عملکردی
- توسعه و بهینهسازی مؤلفههای نرمافزاری با استفاده از زبان C و Go
- توسعه سرویسهای سمت سرور (Backend)، طراحی و پیادهسازی APIها و ایجاد ارتباط مؤثر میان اجزای نرمافزار
- تحلیل و عیبیابی مشکلات پیچیده نرمافزاری و شناسایی علت ریشهای خطاها با هدف ارائه راهکارهای پایدار
- توسعه و بهینهسازی سرویسهای نرمافزاری با تمرکز بر امنیت، کارایی، پایداری و قابلیت نگهداری
- کار با مفاهیم سطح سیستم شامل مدیریت حافظه، پردازشهای همزمان و ارتباط با قابلیتهای سیستمعامل
- توسعه و پشتیبانی نرمافزارهای مبتنی بر Windows و استفاده از Windows API در صورت نیاز پروژه
- استقرار، اجرا و عیبیابی سرویسهای نرمافزاری در محیطهای Linux و کانتینری
- مشارکت در طراحی راهکارهای فنی، بهبود تدریجی معماری نرمافزار و اجرای نقشه راه توسعه محصول
- پیادهسازی تستهای نرمافزاری، بازبینی کد و رعایت اصول مهندسی نرمافزار
- تهیه و بهروزرسانی مستندات فنی و همکاری با سایر اعضای تیم برای تحویل بهموقع و باکیفیت قابلیتها
مهارتها و شایستگیهای فنی ضروری
- تسلط عملی بر زبان برنامهنویسی C و توانایی تحلیل، توسعه و عیبیابی کدهای موجود
- تسلط عملی بر زبان برنامهنویسی GoLang و توانایی توسعه و نگهداری سرویسهای نرمافزاری
- درک مناسب از مفاهیم سیستمعامل، مدیریت حافظه، پردازشها، Threadها و برنامهنویسی همزمان
- تسلط بر مفاهیم شبکه، پروتکلهای ارتباطی و معماری کلاینت-سرور
- تجربه توسعه Backend و طراحی و پیادهسازی APIهای نرمافزاری
- توانایی تحلیل مشکلات فنی، اشکالزدایی و یافتن علت ریشهای خطاها
- آشنایی با Git و اصول مدیریت نسخه کد
- آشنایی عملی با Linux و Docker
- آشنایی با اصول Clean Code، طراحی نرمافزار قابل نگهداری و تستپذیری کد
مهارتهای تکمیلی و مزیت رقابتی
- تجربه توسعه نرمافزار در محیط Windows و کار با Windows API و سرویسهای ویندوزی
- آشنایی با مفاهیم امنیت سایبری، امنیت سیستمعاملها و امنیت شبکه
- تجربه توسعه سرویسهای همزمان، شبکهای یا پردازشمحور با GoLang
- آشنایی با Docker Compose و اصول استقرار و مدیریت سرویسهای کانتینری
- تجربه کار با پایگاههای داده و طراحی تعاملات نرمافزار با آنها
- آشنایی با اصول Secure Coding و شناسایی آسیبپذیریهای رایج نرمافزاری
- تجربه مشارکت در توسعه محصولات نرمافزاری از مرحله تحلیل نیازمندی تا استقرار و پشتیبانی