ما در سباسیستم بیش از 10 سال که بصورت تخصصی مشغول تولید و توسعه سیستم ها و اتوماسیون های نرم افزاری حوزه ی حمل و نقل بین المللی هستیم . اگر به دنبال یک فضای دوستانه کاری هستید و از چالش های جدید استقبال می کنید و می خواهید با صنعت جدید و غیر تکراری آشنا شوید خوشحال خواهیم شد که به تیم فنی ما ملحق شوید .
ما در یک مجموعه نرمافزاری فعال در حوزه توسعه سیستمهای سازمانی و لجستیک، به دنبال جذب یک برنامهنویس ارشد Backend با تخصص در NestJS و Node.js هستیم. به دنبال فردی هستیم که علاوه بر تسلط بر تکنولوژیهای Backend، درک عمیقی از اصول مهندسی نرمافزار، طراحی معماری سیستمهای پیچیده و پیادهسازی راهکارهای مقیاسپذیر داشته باشد. تسلط بر مفاهیم Domain-Driven Design (DDD)، Command Query Responsibility Segregation (CQRS)، Design Patterns و معماری نرمافزار از الزامات اصلی این موقعیت شغلی است. مسئولیتها و شرح وظایف
طراحی، توسعه و نگهداری سرویسها و سیستمهای Backend مبتنی بر NestJS.
طراحی معماری نرمافزارهای سازمانی با تمرکز بر توسعهپذیری، نگهداریپذیری و مقیاسپذیری.
تحلیل و مدلسازی دامنههای پیچیده کسبوکار با استفاده از Domain-Driven Design.
طراحی و پیادهسازی معماری مبتنی بر CQRS و تفکیک مسئولیتهای خواندن و نوشتن اطلاعات.
طراحی و پیادهسازی ماژولهای مستقل و با قابلیت توسعه و نگهداری بالا.
طراحی و توسعه RESTful API و سرویسهای ارتباطی بین سیستمها.
طراحی و پیادهسازی معماری Event-Driven و سیستمهای مبتنی بر پیام.
بهینهسازی عملکرد سرویسها، Queryهای دیتابیس و فرآیندهای پردازشی.
طراحی راهکارهای مناسب برای مدیریت تراکنشها، یکپارچگی دادهها و ارتباط بین سرویسها.
بازنگری کدها، انجام Code Review و بهبود مستمر کیفیت کد و معماری.
مشارکت در انتخاب تکنولوژیها، ابزارها و راهکارهای فنی.
همکاری در هدایت فنی تیم توسعه و انتقال دانش و تجربیات به سایر اعضای تیم.
مهارتها و تخصصهای موردنیاز مهارتهای فنی ضروری
تسلط بر JavaScript و TypeScript و مفاهیم پیشرفته آنها.
تسلط بر Node.js و اکوسیستم آن.
تسلط بر NestJS و معماری داخلی، ماژولها، Providers، Guards، Interceptors، Pipes و Middleware.
تسلط بر طراحی و توسعه RESTful API و اصول طراحی API.
تسلط بر مفاهیم OOP، اصول SOLID و Separation of Concerns.
تسلط بر Design Patterns و توانایی انتخاب و پیادهسازی الگوهای طراحی مناسب.
تسلط بر Domain-Driven Design (DDD)، شامل:
Strategic و Tactical Design
Bounded Context
Aggregate و Aggregate Root
Entity و Value Object
Domain Events
Repository Pattern
Domain Services و Application Services
Context Mapping
تسلط بر CQRS و پیادهسازی عملی آن در سیستمهای نرمافزاری.
آشنایی عمیق با Clean Architecture، Hexagonal Architecture و Layered Architecture.
تسلط بر اصول Clean Code و طراحی کدهای قابل نگهداری و توسعه.
تجربه کار با پایگاههای داده رابطهای و طراحی دیتابیسهای پیچیده.
تسلط بر SQL و بهینهسازی Queryها و ایندکسهای دیتابیس.
تجربه کار با ORMها و Data Access Patterns.
تسلط بر مفاهیم Asynchronous Programming، Promise، Event Loop و مدیریت همزمانی در Node.js.
تجربه طراحی سیستمهای توزیعشده و آشنایی با چالشهای ارتباط بین سرویسها.
تجربه کار با Message Brokerها و الگوهای ارتباطی مبتنی بر پیام.
معماری و الگوهای طراحی پیشرفته
تسلط بر الگوهای طراحی حرفهای و توانایی استفاده صحیح از آنها در مسائل واقعی.
آشنایی با الگوهای Enterprise Application Architecture.
تجربه طراحی و پیادهسازی Event-Driven Architecture.
آشنایی با الگوهای Saga، Transactional Outbox و Distributed Transactions.
درک مفاهیم Idempotency، Eventual Consistency و Concurrency Control.
آشنایی با Modular Monolith و Microservices Architecture و شناخت مزایا و محدودیتهای هرکدام.
توانایی طراحی سیستمهای قابل توسعه، تستپذیر و مستقل از جزئیات زیرساختی.
ابزارها و تکنولوژیهای تکمیلی
تجربه کار با Message Brokerهایی مانند RabbitMQ، Kafka یا NATS.
تجربه کار با Redis و مفاهیم Caching و Distributed Locking.
آشنایی با Docker و Containerization.
تجربه کار با Git و فرآیندهای مدیریت نسخه و توسعه تیمی.
آشنایی با Unit Testing، Integration Testing و E2E Testing.
آشنایی با ابزارهای تست مانند Jest.
آشنایی با CI/CD و فرآیندهای استقرار نرمافزار.
آشنایی با Logging، Monitoring، Distributed Tracing و Observability.
آشنایی با مفاهیم امنیت API و استانداردهای احراز هویت و سطح دسترسی.
خصوصیات فردی
توانایی مدیریت زمان، اولویتبندی و مدیریت و پیشبرد مستقل وظایف محولشده.
برخورداری از روحیه کار تیمی و توانایی برقراری تعامل سازنده با سایر اعضای تیم.
علاقهمندی به انتقال دانش و تجربیات فنی و مشارکت در رشد تخصصی اعضای تیم.
انعطافپذیری در مواجهه با چالشهای فنی و توانایی ارائه راهکارهای مناسب بهجای تمرکز صرف بر مشکلات.
محیط و مزایای همکاری در سبا سیستم
محیط کاری دوستانه، صمیمی و مبتنی بر احترام و اعتماد متقابل.
همکاری با تیمی متخصص و باتجربه در حوزه توسعه نرمافزارهای سازمانی.
فرصت یادگیری، تبادل دانش و رشد مستمر مهارتهای تخصصی.
احترام به تخصص، نظرات کارشناسی و استقلال عمل اعضای تیم.
فراهم بودن فرصت ارائه ایدهها و مشارکت در تصمیمگیریهای فنی.
همکاری در توسعه و نگهداری سیستمهای نرمافزاری سازمانی و پروژههای فنی چالشبرانگیز.
فرصت مشارکت در بهبود معماری و ارتقای کیفیت محصولات نرمافزاری.