برای توسعه و نگهداری Backend یک فروشگاه آنلاین بزرگ، به یک برنامهنویس Senior Golang Backend Developer نیاز داریم.
این پروژه یک فروشگاه اینترنتی ساده نیست؛ هدف ما ایجاد یک Backend حرفهای، پایدار، امن و مقیاسپذیر برای کسبوکاری با حجم بالای محصول، کاربر، سفارش و تراکنش است.
تیم Frontend پروژه در حال حاضر فعال است و دو نیروی Senior Frontend روی توسعه آن کار میکنند. همچنین تیم DevOps در بخش زیرساخت، Deployment و Production در کنار تیم توسعه فعالیت خواهد کرد.
به دنبال فردی هستیم که علاوه بر توسعه Backend، بتواند در طراحی معماری، تصمیمات فنی، Performance، امنیت و آمادهسازی سیستم برای Production نقش جدی داشته باشد و در ادامه نیز به یکی از نیروهای اصلی تیم برای نگهداری و توسعه محصول تبدیل شود.
مسئولیتها
- طراحی، توسعه و تکمیل Backend پروژه با Golang
- طراحی و توسعه APIهای مورد نیاز Frontend
- طراحی معماری Backend با قابلیت توسعه و مقیاسپذیری بالا
- توسعه ماژولهای اصلی فروشگاه شامل: کاربران و احراز هویت، محصولات و دستهبندیها، موجودی و انبار، سبد خرید، سفارشها، پرداخت، تخفیفها و کمپینها، ارسال، مدیریت کاربران و سطح دسترسی، گزارشها، Notification و سایر سرویسهای مورد نیاز کسبوکار
- طراحی و بهینهسازی Database
- بهینهسازی Queryها و Performance سیستم
- پیادهسازی Cache و Queue در بخشهای مورد نیاز
- طراحی سیستمهای مناسب برای حجم بالای Request و Order
- پیادهسازی Authentication و Authorization
- رعایت اصول امنیتی در طراحی و توسعه API
- نوشتن کد Clean، قابل تست و قابل نگهداری
- Unit Test و Integration Test در بخشهای ضروری
- Code Review و استانداردسازی کد
- رفع باگ و مشکلات Production
- تحلیل و رفع مشکلات Performance و Bottleneckها
- همکاری نزدیک با تیم Frontend و DevOps
- همکاری در فرآیند Deployment و Production در کنار تیم DevOps
- مانیتورینگ و بررسی مشکلات Backend در محیط Production
- مستندسازی معماری، APIها و بخشهای مهم سیستم
- مشارکت در تصمیمات فنی و انتخاب تکنولوژی مناسب
- ادامه توسعه، نگهداری و بهبود Backend پس از Launch
مهارتهای الزامی
- Golang / Backend
- حداقل 4 سال تجربه حرفهای در Backend Development
- حداقل 3 سال تجربه عملی و حرفهای با Golang
- تسلط بالا به زبان Go
- تسلط به Goroutine و Concurrency
- درک عمیق از Channelها و الگوهای Concurrency
- تجربه طراحی و توسعه RESTful API
- تجربه کار با HTTP و Web Serviceها
- تسلط مناسب به معماری Backend
- تسلط به Git
- تجربه کار با PostgreSQL یا MySQL
- تسلط مناسب به Database Design
- تجربه Query Optimization
- تجربه کار با Redis
- تجربه کار با Queue / Message Broker
- تجربه کار با Docker
- آشنایی مناسب با Linux و محیط Production
- درک مناسب از Backend Security
- تجربه Debugging و Performance Optimization
معماری و مقیاسپذیری
انتظار داریم فرد انتخابشده صرفاً یک Developer نباشد و بتواند در طراحی و تصمیمگیری معماری سیستم نیز مشارکت کند.
آشنایی و تجربه عملی در موارد زیر امتیاز مهمی محسوب میشود:
- Clean Architecture
- SOLID
- Design Patterns
- Domain-Driven Design
- Microservices
- Event-Driven Architecture
- Distributed Systems
- Caching
- Queue Systems
- Message Brokers
- Horizontal Scaling
- Load Balancing
- Database Optimization
- High Availability
- Fault Tolerance
- Observability
مزیت مهم: تجربه Full-Stack
تخصص اصلی این موقعیت Backend / Golang است؛ اما اگر در کنار Backend تجربه حرفهای در Frontend نیز داشته باشید، یک مزیت جدی محسوب میشود.
بهخصوص تجربه در: React، Next.js، TypeScript، JavaScript، API Integration، SSR / SSG و Frontend Performance امتیاز محسوب خواهد شد.
توجه: تیم Frontend پروژه جداگانه و متشکل از نیروهای Senior دارد و این موقعیت جایگزین تیم Frontend نیست؛ اما داشتن دید Full-Stack باعث میشود همکاری و تصمیمگیری فنی بین Backend و Frontend بسیار بهتر انجام شود.
ویژگیهای فردی مورد انتظار
- مسئولیتپذیر
- اهمیت دادن به کیفیت و خوانایی کد
- توانایی کار مستقل
- مشارکت فعال در حل مسئله و تحلیل مسائل پیچیده Backend
- توانایی پیدا کردن و برطرف کردن Bottleneckهای سیستم
- Debugging حرفهای
- جدی گرفتن مستندسازی
- توانایی کار تیمی با Backend، Frontend و DevOps
- توانایی تحلیل سریع و منطقی مشکل در شرایط Production
- علاقهمند به همکاری بلندمدت و ساخت محصول واقعی و بزرگ
شرایط همکاری
- همکاری به صورت تماموقت
- همکاری بلندمدت
- مشارکت در توسعه یک پروژه واقعی با مقیاس بالا
- همکاری مستقیم با تیم Senior Frontend و DevOps
- امکان تبدیل شدن به یکی از اعضای اصلی تیم فنی پس از Launch
- امکان افزایش مسئولیت و نقش فنی در پروژه
- حقوق و مزایا متناسب با سطح Seniority و توانایی فنی
اگر Golang را حرفهای میدانید، تجربه ساخت Backend واقعی دارید، با Concurrency و سیستمهای مقیاسپذیر راحت هستید و میتوانید علاوه بر کدنویسی درباره معماری، Database، Performance، Security و Production تصمیم بگیرید، این موقعیت میتواند مناسب شما باشد.