شرح موقعیت
ما به دنبال یک Senior Python Developer توانمند و باتجربه هستیم که علاوه بر تسلط بر توسعه بکاند، بتواند در تصمیمگیریهای فنی، طراحی معماری نرمافزار و توسعه سرویسهای مقیاسپذیر نقش مؤثری داشته باشد. در این موقعیت، با تیم محصول، توسعه فرانتاند و سایر اعضای تیم فنی همکاری خواهید کرد تا راهکارهای نرمافزاری باکیفیت، قابل نگهداری و قابل توسعه طراحی و پیادهسازی شوند. مسئولیتهای اصلی طراحی، توسعه و نگهداری سرویسها و APIهای بکاند با استفاده از Python مشارکت در طراحی معماری نرمافزار و انتخاب راهکارهای فنی مناسب طراحی و پیادهسازی APIهای امن، پایدار و قابل توسعه طراحی و بهینهسازی ساختار پایگاه داده و بهبود عملکرد Queryها شناسایی و رفع مشکلات فنی، خطاها و گلوگاههای عملکردی رعایت اصول Clean Code، کدنویسی قابل نگهداری و طراحی ماژولار نوشتن تستهای خودکار و مشارکت در بهبود کیفیت کد انجام Code Review و کمک به ارتقای کیفیت فنی تیم همکاری نزدیک با تیم Frontend برای طراحی و یکپارچهسازی APIها همکاری با تیم Product برای تحلیل نیازمندیها و ارائه راهکارهای فنی مشارکت در تصمیمگیریهای فنی، تخمین زمان توسعه و برنامهریزی تحویل مستندسازی تصمیمهای معماری و بخشهای کلیدی سیستم مزیت محسوب میشود ویژگیهای مورد انتظار اگر به توسعه نرمافزار باکیفیت، حل مسائل فنی پیچیده و مشارکت در ساخت محصولات دیجیتال علاقهمند هستید، خوشحال میشویم رزومه شما را دریافت کنیم.
نیازمندیها
- تجربه حرفهای و عمیق در توسعه نرمافزار با Python
- تسلط بر مفاهیم برنامهنویسی شیءگرا و اصول طراحی نرمافزار
- تجربه عملی در توسعه بکاند و طراحی RESTful API
- تسلط بر کار با پایگاههای داده رابطهای و بهینهسازی Queryها
- آشنایی با طراحی سیستمهای قابل توسعه و مقیاسپذیر
- تجربه تستنویسی و بهبود کیفیت نرمافزار
- تسلط بر Git و فرآیندهای توسعه تیمی
- توانایی تحلیل مسائل پیچیده و انتخاب راهکارهای فنی مناسب
- تجربه کار با محیط Linux و آشنایی با Docker
- توانایی همکاری مؤثر با تیمهای فنی و محصول
- مسئولیتپذیری، استقلال در انجام کار و توانایی پیشبرد تسکها از ابتدا تا تحویل
- تجربه کار با Django، FastAPI یا چارچوبهای مشابه
- تجربه طراحی و توسعه سیستمهای مبتنی بر Microservices
- آشنایی با Redis و سیستمهای پردازش غیرهمزمان
- تجربه کار با Message Brokerهایی مانند RabbitMQ یا Kafka
- آشنایی با CI/CD و فرآیندهای استقرار نرمافزار
- تجربه مانیتورینگ، Logging و بهینهسازی عملکرد سرویسها
- تجربه توسعه محصولات در محیطهای استارتاپی و تیمهای کوچک
- توانایی تصمیمگیری فنی با در نظر گرفتن کیفیت، زمان و هزینه توسعه
- نگاه مسئلهمحور و توانایی ارائه راهکارهای عملی
- استقلال در حل مسائل و پیگیری مسئولانه کارها
- توانایی انتقال دانش و همکاری سازنده با اعضای تیم
- توجه به کیفیت کد، امنیت، پایداری و نگهداری بلندمدت سیستم