ما به دنبال یک مهندس نرمافزار باتجربه هستیم که علاوه بر داشتن پایه قوی در توسعه نرمافزار و معماری سیستمها، علاقهمند باشد با نقش هوش مصنوعی در آینده طراحی و توسعه نرمافزارها آشنا شود و در مسیر استفاده از ابزارهای نوین AI در توسعه نرمافزار فعالیت کند.
### مهارتها و تجربیات فنی موردنیاز
### توسعه نرمافزار (Software Engineering)
* چند سال تجربه عملی در توسعه و نگهداری نرمافزارهای واقعی و Production * تجربه قوی در توسعه Backend و آشنایی عملی با توسعه Frontend (وب و/یا موبایل) * تجربه در طراحی و پیادهسازی سیستمهای نرمافزاری چندلایه، ماژولار و قابل نگهداری * تسلط بر مفاهیم معماری نرمافزار، Clean Architecture، Clean Code و Design Patterns * دانش قوی در تحلیل، طراحی و برنامهنویسی شیگرا:
* Object-Oriented Analysis (OOA) * Object-Oriented Design (OOD) * Object-Oriented Programming (OOP) * آشنایی با مفاهیم Generic Programming و Functional Programming * تجربه در تست، Debug، Refactoring، Code Review و نگهداری سیستمهای نرمافزاری موجود
### معماری و طراحی نرمافزار (Software Architecture & Design)
* توانایی تبدیل نیازمندیهای کسبوکار و فنی به راهکارهای نرمافزاری ساختاریافته * تجربه در تصمیمگیریهای معماری و طراحی فنی سیستمها * درک عمیق مفاهیمی مانند:
* Separation of Concerns * Modularity * Abstraction * Dependencies * Interfaces * Maintainability * توانایی تحلیل مزایا و معایب راهکارهای مختلف فنی و انتخاب بهترین روش بر اساس شرایط پروژه، نه صرفاً استفاده از تکنولوژیها یا الگوهای آماده
### پایگاه داده (Databases)
* تجربه عملی در طراحی دیتابیس و Data Modeling * تسلط عملی به SQL * تجربه کار با دیتابیسهای رابطهای مانند:
* PostgreSQL * MySQL * Oracle
### توسعه نرمافزار با کمک هوش مصنوعی (AI-Assisted Software Development)
* علاقه جدی به روشهای جدید توسعه نرمافزار با کمک هوش مصنوعی * علاقهمندی و آمادگی برای یادگیری و استفاده از ابزارهای AI Coding مانند:
* Claude * Codex * علاقه به مفاهیمی مانند:
* Prompt Engineering * Context Engineering * Agent-Based Software Development * توانایی ایجاد Workflowهای جدید که در آن تجربه مهندسی نرمافزار در کنار ابزارهای هوش مصنوعی باعث افزایش کیفیت و سرعت توسعه شود * توانایی ارزیابی انتقادی خروجیهای تولیدشده توسط AI بر اساس اصول استاندارد مهندسی نرمافزار * تجربه قبلی کار با ابزارهای توسعه مبتنی بر AI مزیت محسوب میشود، اما الزامی نیست
### نیازمندیها و همکاری تیمی
* تجربه در تحلیل نیازمندیها (Requirements Engineering) و تبدیل آنها به راهکارهای فنی * تجربه کار با ابزارهایی مانند:
* Jira * Confluence * یا ابزارهای مشابه مدیریت پروژه و مستندسازی * توانایی انتقال مفاهیم فنی، تصمیمات معماری و Trade-offهای تکنیکی به شکل واضح و قابل فهم
### زبانهای برنامهنویسی موردنیاز
* تسلط بالا به زبان Java * تجربه کار با TypeScript و/یا Python