شرح موقعیت
ما به دنبال یک برنامهنویس Backend توانمند، مسئولیتپذیر و علاقهمند به توسعه نرمافزارهای پایدار و قابل توسعه هستیم که توانایی طراحی، توسعه و نگهداری سرویسهای Backend، APIها و منطق سمت سرور را داشته باشد. برای این موقعیت محدودیتی روی یک زبان یا Framework خاص نداریم. تسلط مناسب به یکی از تکنولوژیهای Backend مانند Python(Django) و، Node.js و NestJS یا Go برای ما قابل قبول است و آشنایی با چند مورد از این تکنولوژیها مزیت محسوب میشود. فرد موردنظر باید درک مناسبی از معماری Backend، طراحی API، پایگاه داده، امنیت، Performance و توسعه سرویسهای Production داشته باشد. ⸻ ⸻ تسلط مناسب به حداقل یکی از استکهای زیر: آشنایی یا تجربه با بیش از یک استک Backend امتیاز مثبت محسوب میشود. همچنین انتظار میرود فرد موردنظر با موارد زیر آشنایی مناسبی داشته باشد: ⸻ پایگاه داده و ذخیرهسازی تجربه کار با پایگاه داده برای این موقعیت اهمیت بالایی دارد. آشنایی و تجربه در موارد زیر مزیت مهم محسوب میشود: تسلط مناسب به PostgreSQL یا MySQL و تجربه عملی با Redis امتیاز ویژه محسوب میشود. ⸻ مهارتهای تکمیلی آشنایی یا تجربه در موارد زیر مزیت محسوب میشود: ⸻ Frontend این موقعیت شغلی Backend است و تسلط به Frontend الزامی نیست؛ با این حال موارد زیر مزیت محسوب میشوند: ⸻ امنیت و کیفیت نرمافزار ⸻ امتیازات ویژه داشتن تجربه در هر یک از موارد زیر امتیاز مثبت محسوب میشود: ⸻ ویژگیهای فردی موردنظر ما به دنبال فردی هستیم که: ⸻ مزایای همکاری این موقعیت شغلی بهصورت حضوری است و درخواستهای همکاری بهصورت دورکاری بررسی نخواهند شد.
مسئولیتها
- طراحی و توسعه سرویسهای Backend و APIها
- توسعه و نگهداری REST API و سرویسهای داخلی
- طراحی و پیادهسازی منطق کسبوکار
- توسعه قابلیتهای جدید و بهبود پروژههای موجود
- طراحی و مدیریت ساختار پایگاه داده
- بهینهسازی Queryها و عملکرد سرویسها
- پیادهسازی Authentication و Authorization
- یکپارچهسازی با APIها و سرویسهای Third-party
- طراحی و پیادهسازی Webhookها و سرویسهای ارتباطی
- کار با Queue، Cache و پردازشهای Background
- بررسی Logها، Debug و رفع مشکلات نرمافزار
- Refactor و بهبود ساختار کدهای موجود
- نوشتن کد تمیز، قابل نگهداری و قابل توسعه
- همکاری با تیم Frontend، DevOps و سایر اعضای تیم فنی
- مشارکت در طراحی معماری و تصمیمات فنی پروژهها
- توجه به امنیت، Performance، پایداری و Scalability سرویسها
- نوشتن تست و مستندسازی بخشهای مهم سیستم
نیازمندیها
- Python و Django / Django REST Framework / FastAPI
- Node.js و NestJS
- Go و Frameworkها و ابزارهای مرتبط
- طراحی و توسعه RESTful API
- HTTP، JSON و مفاهیم ارتباط Client و Server
- Git و Version Control
- معماری نرمافزار و اصول Clean Code
- Authentication و Authorization
- JWT، Session و مفاهیم امنیتی مرتبط
- Linux و محیط Server
- Debugging و Troubleshooting
- طراحی نرمافزارهای قابل توسعه و نگهداری
- PostgreSQL
- MySQL / MariaDB
- Redis
- طراحی Database Schema
- Indexing و بهینهسازی Query
- Transaction و مدیریت همزمانی دادهها
- Migration و مدیریت تغییرات Database
- Caching و طراحی استراتژی Cache
- آشنایی با ORMها مانند Django ORM، SQLAlchemy، Prisma یا TypeORM
- Docker و Docker Compose
- Nginx
- Linux Server Administration
- GitLab CI/CD یا GitHub Actions
- Redis
- Celery
- RabbitMQ یا سایر Message Brokerها
- Background Jobs و Task Queue
- WebSocket
- Microservices
- Event-driven Architecture
- Async Programming
- Unit Test و Integration Test
- Swagger / OpenAPI
- Logging و Monitoring
- Caching
- Design Patterns
- Software Architecture
- API Gateway
- Rate Limiting
- High Availability و Scalability
- آشنایی با JavaScript یا TypeScript
- آشنایی با Vue.js
- توانایی درک ساختار پروژههای Frontend
- توانایی انجام تغییرات ساده در Frontend در صورت نیاز
- آشنایی با نحوه ارتباط Frontend و Backend از طریق API
- آشنایی با اصول امنیت Web و API
- آشنایی با OWASP و آسیبپذیریهای رایج
- توجه به Validation و Sanitization دادهها
- مدیریت صحیح دسترسیها و Permissionها
- آشنایی با Rate Limiting و جلوگیری از Abuse
- توانایی نوشتن کد امن، پایدار و قابل تست
- آشنایی با Code Review و استانداردهای توسعه تیمی
- Python / Django
- Node.js / NestJS
- Go
- PostgreSQL
- MySQL / MariaDB
- Redis
- Docker
- Microservices
- Message Queue
- REST API
- WebSocket
- سیستمهای پرترافیک و Production
- معماری سرویسگرا
- طراحی و توسعه APIهای Third-party
- CI/CD
- Linux
- Vue.js
- DevOps
- امنیت نرمافزار و API
- قدرت تحلیل و حل مسئله بالایی داشته باشد.
- صرفاً به کار کردن کد اکتفا نکند و به کیفیت و ساختار آن اهمیت بدهد.
- در Debug و پیدا کردن علت اصلی مشکلات پیگیر باشد.
- بتواند بین راهحلهای مختلف فنی تصمیم مناسبی بگیرد.
- به Performance، Security و Scalability اهمیت بدهد.
- قبل از اعمال تغییرات، اثر آنها بر سایر بخشهای سیستم را بررسی کند.
- مسئولیت قابلیتهایی که توسعه میدهد را تا رسیدن به نتیجه بر عهده بگیرد.
- توانایی مطالعه Documentation و منابع فنی انگلیسی را داشته باشد.
- علاقهمند به یادگیری تکنولوژیها و روشهای جدید باشد.
- توانایی کار تیمی و در عین حال انجام مستقل مسئولیتها را داشته باشد.
- حقوق ثابت متناسب با توانمندی و سابقه
- امکان افزایش حقوق بر اساس عملکرد و توانایی فنی
- فرصت رشد فنی و شغلی
- فعالیت روی پروژههای واقعی و متنوع
- امکان مشارکت در طراحی معماری و تصمیمات فنی پروژهها
- فرصت کار با زبانها و تکنولوژیهای مختلف Backend
- امکان یادگیری و توسعه مهارت در حوزه Backend، Architecture و DevOps
- محیط کاری فنی، حرفهای و در حال توسعه
- بیمه تامین اجتماعی از روز اول کاری، حتی در دوره آزمایشی