استخدام توسعهدهندهٔ ارشد بکاند (Django)
شرح موقعیت شغلی
توسعهدهندهٔ ارشد بکاند 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).
+ تجربهٔ کار روی سامانههای سازمانی با نقشها و سطوح دسترسی متعدد.
+ مشارکت در پروژههای متنباز یا نمونهکار عمومی قابل بررسی
به دنبال یک توسعهدهندهٔ بکاند هستیم که مالکیت کامل سرویس را بپذیرد: از طراحی مدل داده و 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
حداقل سابقه کار
- بیش از شش سال
جنسیت
- مهم نیست
وضعیت نظام وظیفه
- مهم نیست