موقعیت شغلی:
شرکت ما در حال حاضر به دنبال یک توسعهدهنده بکاند با تجربه است که بهصورت حرفهای با Node.js یا پایتون کار کرده و تسلط کافی بر برنامهنویسی سوکت (Socket Programming) داشته باشد. این فرد در تیم فناوری اطلاعات شرکت عضو شده و مسئولیت توسعه، نگهداری و بهینهسازی سرویسهای بکاند را بر عهده خواهد داشت.
وظایف و مسئولیتها:
1. توسعه و پیادهسازی سرویسهای بکاند:
- طراحی و توسعه APIهای RESTful و WebSocket برای ارتباط بین سرویسهای مختلف.
- پیادهسازی سرویسهای Real-Time با استفاده از Socket Programming.
- توسعه ماژولها و کتابخانههای مورد نیاز برای بهبود عملکرد سیستم.
2. بهینهسازی و مقیاسپذیری:
- بهینهسازی کدها و پایگاه داده برای بهبود عملکرد و کاهش زمان پاسخدهی.
- طراحی سیستمهای مقیاسپذیر برای مدیریت ترافیک بالا و درخواستهای همزمان.
-
3. ادغام سیستمها:
- ادغام سرویسهای بکاند با سیستمهای خارجی و داخلی.
- همکاری با تیمهای فرانتاند، DevOps و QA برای اطمینان از یکپارچگی سیستم.
4. نگهداری و عیبیابی:
- نظارت بر عملکرد سرویسها و رفع مشکلات فنی بهصورت پیشگیرانه.
- عیبیابی و رفع باگهای گزارششده توسط تیم QA یا کاربران نهایی.
5. مستندسازی:
- تهیه مستندات فنی برای کدها، APIها و فرآیندهای توسعه.
- ارائه گزارشهای منظم از پیشرفت پروژهها و چالشهای پیشرو.
6. همکاری در طراحی معماری:
- مشارکت در طراحی معماری نرمافزار و انتخاب فناوریهای مناسب.
- ارائه پیشنهادات برای بهبود معماری سیستمهای موجود.
شرایط احراز:
- تسلط به Node.js یا پایتون و چارچوبهای مرتبط (مانند Express.js برای Node.js یا Flask/Django برای پایتون).
- تجربه کاری با Socket Programming و پروتکلهای ارتباطی Real-Time مانند WebSocket.
- آشنایی با مفاهیم RESTful API و طراحی سرویسهای مبتنی بر میکروسرویس.
- تسلط به پایگاهدادههای رابطهای (مانند MySQL, PostgreSQL) و غیررابطهای (مانند MongoDB, Redis).
- آشنایی با سیستمهای پیامرسان (Message Queues) مانند RabbitMQ یا Kafka.
- تجربه کار با ابزارهای کنترل نسخه مانند Git.
- حداقل 3 سال تجربه کاری در توسعه بکاند با Node.js یا پایتون.
- تجربه کار در پروژههای Real-Time و سیستمهای مبتنی بر سوکت.
- مدرک کارشناسی یا کارشناسی ارشد در رشتههای علوم کامپیوتر، مهندسی نرمافزار، فناوری اطلاعات یا رشتههای مرتبط.
3.مهارتهای نرم:
- توانایی کار در تیم و همکاری موثر با سایر اعضای تیم فنی.
- توانایی حل مسئله و تفکر تحلیلی.
- توانایی مدیریت زمان و اولویتبندی وظایف.
- مهارتهای ارتباطی قوی برای تعامل با تیمهای مختلف.