شرح موقعیت
ما برای توسعه و تکمیل یک پلتفرم آنلاین چندمنظوره در حوزههای پروفایل تخصصی، رسانه، آموزش، مارکتپلیس و تبلیغات، به دنبال همکاری با یک توسعهدهنده ارشد فولاستک (Senior Full-Stack Developer) باتجربه، مسئولیتپذیر و مسلط به اصول مهندسی نرمافزار هستیم. در این موقعیت، طراحی صفحات، مسیرهای کاربری و نمونههای اولیه محصول در قالب پروتوتایپ، دمو یا مستندات نیازمندی در اختیار شما قرار میگیرد. مسئولیت اصلی شما تبدیل این خروجیها به یک محصول نرمافزاری واقعی، پویا، امن، تستشده و آماده انتشار خواهد بود. انتظار داریم بتوانید فرایند توسعه را از تحلیل نیازمندیها و انتخاب معماری مناسب تا پیادهسازی فرانتاند، بکاند، دیتابیس، APIها، پنل مدیریت و استقرار محصول بهصورت مستقل و ساختارمند پیش ببرید. استفاده از ابزارهای هوش مصنوعی و AI-Assisted Development برای افزایش سرعت و بهرهوری توسعه مورد استقبال ماست؛ با این حال، کیفیت کد، امنیت، تستپذیری، مستندسازی و قابلیت نگهداری محصول از اولویتهای اصلی ما هستند. شرح وظایف و مسئولیتها ۱. تحلیل نیازمندیها و طراحی معماری نرمافزار بررسی پروتوتایپها، دموها و مستندات محصول و تبدیل آنها به نیازمندیهای فنی و اجرایی. طراحی و انتخاب معماری مناسب برای فرانتاند، بکاند، دیتابیس و زیرساخت. طراحی ساختار دیتابیس، مدل دادهها، روابط و بهینهسازی عملکرد. طراحی APIها، منطق کسبوکار، احراز هویت و سطوح دسترسی کاربران. در نظر گرفتن توسعهپذیری، مقیاسپذیری و قابلیت نگهداری محصول. ۲. توسعه و پیادهسازی محصول تبدیل طرحها و دموهای استاتیک به رابطهای کاربری پویا و تعاملی. توسعه فرانتاند، بکاند و اتصال کامل سرویسها به دیتابیس. طراحی و پیادهسازی پنل مدیریت برای مدیریت کاربران، محتوا و فرایندهای عملیاتی. پیادهسازی فلوهای اصلی محصول، اعتبارسنجی دادهها و مدیریت خطاها. توسعه یا یکپارچهسازی قابلیتهای مرتبط با مدیریت، پردازش و پخش ویدئو و فایلهای رسانهای. ۳. امنیت و کیفیت نرمافزار رعایت اصول امنیت نرمافزار در تمامی مراحل طراحی و توسعه. شناسایی و پیشگیری از آسیبپذیریهای رایج مطابق OWASP Top 10. پیادهسازی اصولی احراز هویت، مجوزدهی و کنترل دسترسی در سمت سرور. بررسی امنیت وابستگیها، محافظت از اطلاعات حساس و رفع آسیبپذیریهای احتمالی. رعایت استانداردهای کدنویسی تمیز، قابلتست و قابلنگهداری. ۴. تست، استقرار و نگهداری طراحی و اجرای تستهای Unit، Integration و End-to-End متناسب با نیاز محصول. تعریف معیارهای پذیرش و بررسی عملکرد صحیح قابلیتهای توسعهیافته. استفاده از Git، Code Review و فرایندهای کنترل کیفیت کد. آمادهسازی و مدیریت محیطهای Development، Testing، Staging و Production. پیادهسازی فرایندهای استقرار، مدیریت نسخهها، مانیتورینگ و رفع مشکلات فنی. ۵. توسعه ساختارمند با استفاده از ابزارهای هوش مصنوعی استفاده مؤثر از ابزارهای AI-Assisted Development و Vibe Coding برای تسریع فرایند توسعه. تبدیل نیازمندیهای محصول به تسکهای مشخص، قابلاندازهگیری و مرحلهبندیشده. بررسی و بهینهسازی کدهای تولیدشده با هوش مصنوعی از نظر کیفیت، امنیت و عملکرد. مستندسازی معماری، دیتابیس، APIها و تصمیمهای فنی. ارائه خروجیهای قابلتست، قابلارزیابی و قابلتحویل در هر مرحله از توسعه. مهارتها و توانمندیهای موردنیاز تجربه عملی و تسلط بر توسعه Full-Stack و توانایی پیادهسازی مستقل فرانتاند و بکاند. سابقه مشارکت مؤثر در معماری، توسعه و انتشار محصولات نرمافزاری واقعی. تسلط بر طراحی دیتابیسهای رابطهای و بهینهسازی عملکرد آنها. آشنایی عمیق با اصول امنیت نرمافزار، تست و دیباگ. تجربه کار با Git، مدیریت نسخه و Code Review. آشنایی عملی با Docker، CI/CD و فرایندهای استقرار نرمافزار. توانایی تحلیل مسائل فنی، انتخاب راهکار مناسب و ارائه دلایل روشن برای تصمیمهای معماری. تجربه استفاده هدفمند از ابزارهای هوش مصنوعی در فرایند توسعه نرمافزار. توانایی همکاری مؤثر با تیم محصول و تبدیل نیازمندیهای کسبوکار به راهکارهای فنی. تکنولوژیهای موردنظر تجربه کار با فناوریهای زیر مزیت محسوب میشود: Frontend: React، Next.js، TypeScript، Tailwind CSS Backend: Node.js، NestJS یا فریمورکهای حرفهای مشابه Database: PostgreSQL، MySQL Testing: Jest، Vitest، Playwright و ابزارهای تست API DevOps: Git، Docker، CI/CD Video & Media: FFmpeg، HLS، Object Storage، CDN تسلط به تمامی فناوریهای ذکرشده الزامی نیست. انتخاب پشته فنی نهایی بر اساس نیازهای پروژه، تجربه عملی و تصمیمگیری مهندسی انجام خواهد شد. ویژگیهای فردی تفکر سیستمی، قدرت تحلیل و توانایی حل مسئله. مسئولیتپذیری و تعهد نسبت به کیفیت و نتیجه نهایی کار. نظم، دقت و رویکرد ساختارمند در توسعه نرمافزار. توانایی مدیریت مستقل وظایف و اولویتبندی فعالیتها. روحیه همکاری، تعامل سازنده و ارتباط مؤثر با تیم محصول. علاقهمندی به یادگیری، بهبود مستمر و استفاده از فناوریهای جدید. نحوه ارزیابی و ارسال رزومه برای ما، تجربه عملی، کیفیت پروژههای اجراشده و توانایی تصمیمگیری فنی اهمیت بیشتری نسبت به صرفاً آشنایی با ابزارها و فناوریهای مختلف دارد. از متقاضیان محترم درخواست میکنیم همراه رزومه، نمونه پروژههای مرتبط و در صورت امکان لینک GitHub یا نمونهکارهای خود را ارسال کنند. همچنین توضیح مختصری درباره نقش و مسئولیت خود در پروژههای قبلی، بهویژه در زمینه معماری نرمافزار، طراحی دیتابیس، توسعه، تست و استقرار، ارائه دهند. اگر تجربه تبدیل طرحها و پروتوتایپها به محصولات نرمافزاری واقعی را دارید و میتوانید یک پروژه را از تحلیل اولیه تا توسعه و انتشار اصولی پیش ببرید، مشتاق آشنایی و همکاری با شما هستیم.
نیازمندیها
- Full-stack
- Git
- Node.js