شرح موقعیت
استخدام مهندس نرمافزار (Software Engineer) ما به دنبال یک مهندس نرمافزار باتجربه هستیم که علاوه بر داشتن پایه قوی در توسعه نرمافزار و معماری سیستمها، علاقهمند باشد با نقش هوش مصنوعی در آینده طراحی و توسعه نرمافزارها آشنا شود و در مسیر استفاده از ابزارهای نوین 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 ### فریمورکها و تکنولوژیها Spring Spring Boot Spring Data / JPA
نیازمندیها
- Software Engineering
- PostgreSQL
- SQL
- OOP