بازگشت به فرصت‌ها
لوگوی دانش بنیان ایساتیس دانش، تولید، تجهیز | ISPE
فارسی

توسعه‌دهندهٔ ارشد بک‌اند (Django)

دانش بنیان ایساتیس دانش، تولید، تجهیز | ISPE·تهران·۳ هفته پیش

حضوریمیان‌سطحقراردادیتوافقی

دانش بنیان ایساتیس دانش، تولید، تجهیز | ISPE

شرح موقعیت

توسعه‌دهندهٔ ارشد بک‌اند Django با مسئولیت استقرار و نگهداری سرویس به دنبال یک توسعه‌دهندهٔ بک‌اند هستیم که مالکیت کامل سرویس را بپذیرد: از طراحی مدل داده و API تا بیلد ایمیج، پایپ‌لاین، استقرار روی سرور و پایدار نگه‌داشتن آن در محیط زنده. محیط فنی‏ ENVIRONMENT سرویس یک API با Django 5.2 و Django REST Framework است که روی PostgreSQL می‌نشیند، در Docker بسته‌بندی می‌شود و پشت nginx روی سرورهای داخلی مستقر است. دو محیط زنده دارد که هر دو از طریق GitLab CI/CD و به‌صورت خودکار به‌روزرسانی می‌شوند، با دروازه‌های کیفیت و امنیت پیش از هر انتشار. کدبیس بالغ است و قواعد خودش را دارد: قالب پاسخ یکسان برای همهٔ اندپوینت‌ها، مستندات OpenAPI که با تست تضمین می‌شود، مجموعه‌ای نزدیک به ۹۰۰ تست، و دروازهٔ کیفیت کد روی هر مرج. انتظار داریم در همین چارچوب کار کنید و آن را بهتر تحویل دهید. پشتهٔ فنی: Python 3.12 · Django 5.2 · DRF · PostgreSQL · Docker / Compose · GitLab CI/CD · SimpleJWT · drf-spectacular · django-filter · gunicorn · nginx · Linux · SonarQube · Nexus چه کاری قرار است انجام دهید‏ RESPONSIBILITIES ▪ طراحی و توسعهٔ اندپوینت‌های REST: مدل‌سازی داده، سریالایزر، ویوست، فیلتر، جست‌وجو، مرتب‌سازی پایدار و صفحه‌بندی، در چارچوب قرارداد پاسخ یکسان پروژه. ▪ پیاده‌سازی منطق‌های محاسباتی و مشتق: داده‌هایی که به‌صورت خودکار از روی قواعد و آستانه‌ها ساخته، به‌روز و هرس می‌شوند و باید در هر شرایطی سازگار بمانند. ▪ پیاده‌سازی کنترل دسترسی روی دو محور مجوزهای نقش‌محور و محدودهٔ دادهٔ هر کاربر، به‌همراه ثبت رد پای ممیزی (audit log) برای درخواست‌ها. ▪ توسعهٔ عملیات سنگین و اتمیک: ورود گروهی داده، تکثیر ساختارهای بزرگ، و خروجی‌گرفتن فایل — با گزارش خطای دقیق و قابل‌فهم برای کاربر. ▪ نوشتن تست برای هر تغییر و نگه‌داشتن پوشش کد در سطحی که دروازهٔ کیفیت را رد کند. ▪ نگهداری مستندات OpenAPI؛ در این کدبیس یک اندپوینتِ بدون مستند، بیلد را قرمز می‌کند. ▪ بیلد، انتشار و استقرار ایمیج روی محیط‌های زنده از طریق پایپ‌لاین، و رفع اشکال وقتی پایپ‌لاین یا سرویس مستقرشده می‌شکند. ▪ نگهداری سرویس‌های خودمیزبان تیم (مخزن کد، رجیستری و مخزن بسته، سرور کیفیت کد و ابزارهای جانبی) و پایدار نگه‌داشتن آن‌ها. ▪ همکاری نزدیک با تیم فرانت‌اند برای طراحی قرارداد API، و پاسخ‌گویی به گزارش‌های خطای محیط زنده. الزامات فنی‏ REQUIRED تسلط واقعی بر اکوسیستم Django‏ DJANGO & DRF ▪ حداقل ۳ سال تجربهٔ عملی توسعهٔ بک‌اند با Django و DRF در پروژه‌های واقعی و مستقرشده. ▪ تسلط بر ORM: کوئری‌های پیچیده، annotate/aggregate، select_related/prefetch_related، تشخیص و رفع N+1، و کار با ContentType و روابط جنریک. ▪ درک چرخهٔ عمر مدل و تراکنش: بازنویسی save()/delete()، سیگنال‌ها، transaction.atomic و on_commit، و آگاهی از عوارض آن‌ها روی عملیات گروهی. ▪ مهاجرت‌های دیتابیس بدون از دست رفتن داده روی محیط زنده (data migration، مهاجرت‌های برگشت‌پذیر). ▪ احراز هویت مبتنی بر JWT، طراحی نقش و مجوز، و ملاحظات امنیتی OWASP Top 10 در سطح اپلیکیشن. ▪ تست‌نویسی با Django TestCase / TransactionTestCase و تشخیص این‌که کدام‌یک برای کدام سناریو درست است. از کد تا کانتینر روی سرور‏ DOCKER & CI/CD ▪ نوشتن و بهینه‌سازی Dockerfile (لایه‌بندی، کش، ایمیج سبک) و کار روزمره با docker compose. ▪ طراحی و نگهداری پایپ‌لاین در GitLab CI (یا معادل آن): مرحله‌بندی، rules، آرتیفکت، کش، و مدیریت متغیرهای محرمانه. ▪ کار با رجیستری و مخزن خصوصی (Nexus / Artifactory) برای ایمیج‌ها و بسته‌های Python. ▪ استقرار روی سرور Linux، پیکربندی gunicorn پشت nginx، مدیریت فایل‌های استاتیک و مدیا، و تفکیک پیکربندی هر محیط. ▪ آشنایی با ابزارهای کیفیت و امنیت در پایپ‌لاین: pylint، coverage، bandit، pip-audit، SonarQube و اسکن DAST. نگهداری سرویس در محیط زنده‏ OPERATIONS ▪ راحت بودن با خط فرمان Linux: سرویس‌ها، لاگ‌ها، دسترسی‌ها، فضای دیسک و عیب‌یابی شبکه. ▪ مدیریت PostgreSQL در حد پشتیبان‌گیری، بازیابی، بررسی کوئری‌های کند و نگه‌داشتن سلامت دیتابیس. ▪ پیکربندی nginx شامل پروکسی معکوس، TLS و تمدید گواهی، و سرو کردن فایل‌های آپلودی. ▪ پایش و عیب‌یابی: خواندن لاگ‌ها، ردیابی خطای محیط زنده تا ریشه، و مستندسازی راه‌حل. ▪ به‌روزرسانی کنترل‌شدهٔ سرویس‌ها بدون قطعی طولانی، و داشتن نقشهٔ بازگشت وقتی انتشار خراب از آب درمی‌آید. کیفیت و طرز کار‏ CRAFT ▪ کد تمیز و هم‌سبک با کدبیس موجود؛ در این پروژه «چرا»ی یک تصمیم غیربدیهی در کامنت نوشته می‌شود، نه «چه». ▪ Git در سطح حرفه‌ای: شاخه‌بندی، مرج ریکوئست، بازبینی کد و کامیت‌های خوانا. ▪ فارسی‌نویسی درست و یکدست برای پیام‌های کاربر و مستندات، و انگلیسی کافی برای خواندن مستندات فنی. ▪ مسئولیت‌پذیری تا انتهای کار: تحویل یعنی مستقرشده، تست‌شده و مستندشده، نه فقط مرج‌شده. امتیاز مثبت‏ NICE TO HAVE + تجربهٔ کار با Celery و Redis برای کارهای پس‌زمینه و زمان‌بندی‌شده. + تجربهٔ تولید خودکار سند و گزارش (python-docx، openpyxl) یا یکپارچه‌سازی با سرویس‌های ویرایش آنلاین سند. + تجربهٔ راه‌اندازی پایش و هشدار (Prometheus، Grafana، Sentry). + تجربهٔ کار روی سامانه‌های سازمانی با نقش‌ها و سطوح دسترسی متعدد. + مشارکت در پروژه‌های متن‌باز یا نمونه‌کار عمومی قابل بررسی

نیازمندی‌ها

  • Back-end
  • Django
  • Python