ما یک Startup Studio هستیم که همزمان در حال طراحی، توسعه و رشد چندین محصول نرمافزاری هستیم و به دنبال یک Performance & Scalability Test Engineer هستیم تا در ارزیابی، اندازهگیری و بهبود Performance، Stability و Scalability محصولات ما نقش کلیدی داشته باشد.
محصولات ما عمدتاً با تکنولوژیهای زیر توسعه داده میشوند:
Python / Django
TypeScript / NestJS
React / Next.js
PostgreSQL
و برخی از آنها با حجم بالای Request، کاربران همزمان، پردازشهای Background و معماریهای Distributed مواجه هستند.
در این موقعیت، تمرکز اصلی روی Performance Engineering است؛ یعنی صرفاً اجرای چند Load Test کافی نیست. انتظار داریم فرد بتواند ظرفیت سیستم را اندازهگیری کند، Bottleneckها را شناسایی کند، رفتار سیستم را در شرایط فشار تحلیل کند و با تیمهای Development، DevOps و Architecture برای بهبود واقعی Performance همکاری کند.
مسئولیتها
طراحی و اجرای Performance Test Strategy برای محصولات مختلف
طراحی سناریوهای Load، Stress، Spike و Soak Test
تعیین Performance Baseline برای سرویسها و APIها
اندازهگیری و تحلیل ظرفیت سیستم
شناسایی Bottleneckهای Application، Database و Infrastructure
بررسی رفتار سیستم در شرایط High Traffic
بررسی Scalability سیستم با افزایش Load و Concurrent Users
تحلیل Response Time و Throughput سرویسها
تحلیل Error Rate در شرایط مختلف Load
بررسی رفتار سیستم در شرایط Resource Saturation
تست رفتار سیستم هنگام Failure یا Slowdown سرویسهای وابسته
بررسی Recovery سیستم پس از Stress یا Spike
طراحی و نگهداری Automated Performance Test Scripts
اجرای Performance Regression Test
مقایسه Performance نسخههای مختلف محصول
تحلیل Performance قبل و بعد از تغییرات معماری یا Featureهای مهم
طراحی Performance Quality Gate برای Releaseها
همکاری با DevOps برای مانیتورینگ Resource Consumption
همکاری با Developers برای تحلیل Root Cause مشکلات Performance
ارائه پیشنهادهای فنی برای بهبود Scalability و Efficiency
تهیه Performance Report و ارائه نتایج قابل اندازهگیری به تیم فنی
نمونه آزمونهای مورد انتظار
Load Testing
فرد باید بتواند رفتار سیستم را تحت Load واقعی یا شبیهسازیشده بررسی کند. سناریوها میتوانند شامل افزایش تدریجی Concurrent Users، Requests Per Second، Transactions Per Second و Data Volume باشند. هدف، مشخص کردن رفتار سیستم در شرایط Normal و Peak Traffic است.
Stress Testing
اجرای Stress Test برای تعیین Maximum Sustainable Load، Breaking Point، Resource Saturation Point، Failure Behavior، Degradation Pattern و Recovery Behavior. انتظار داریم فرد بتواند مشخص کند سیستم تا چه ظرفیتی سالم کار میکند، از چه نقطهای Degrade میشود و در چه شرایطی Failure رخ میدهد.
Spike Testing
بررسی رفتار سیستم در افزایش ناگهانی (اسپایکی) ترافیک. برای مثال: 500 RPS → 2,000 RPS → 10,000 RPS و تحلیل Response Time، Error Rate، Queue Growth، Database Load، Worker Saturation، Autoscaling Behavior و Recovery Time.
Soak / Endurance Testing
اجرای تستهای طولانیمدت برای شناسایی مشکلاتی مانند Memory Leak، Connection Leak، File Descriptor Leak، Queue Accumulation، Database Connection Exhaustion، Resource Exhaustion، Cache Degradation و Gradual Performance Degradation.
Scalability Testing
بررسی رفتار سیستم هنگام افزایش User، Request، Transaction، Data، Worker و Application Instance و ارزیابی اثربخشی Horizontal Scaling، Vertical Scaling، Load Balancing، Caching، Worker Scaling و Database Scaling. فرد باید بتواند مشخص کند افزایش Resource تا چه حد واقعاً منجر به افزایش Capacity سیستم میشود.
Performance Metrics
توانایی تحلیل شاخصهای زیر ضروری است: Response Time، p50/p90/p95/p99 Latency، Requests Per Second، Transactions Per Second، Throughput، Error Rate، Concurrent Users، Queue Time و Timeout Rate. صرفاً Average Response Time معیار کافی برای ما نیست.
Infrastructure Analysis
فرد باید بتواند نتایج Performance Test را با رفتار Infrastructure مرتبط کند؛ از جمله CPU Utilization، Memory Utilization، Disk I/O، Network I/O، Container Resources، Worker Utilization، Thread/Process Utilization، Connection Pool Utilization و Queue Depth. هدف این است که Performance Test فقط اعلام نکند «سیستم کند است»، بلکه مشخص کند چرا کند شده است.
PostgreSQL Performance
با توجه به استفاده گسترده ما از PostgreSQL، توانایی تحلیل Performance در Database اهمیت زیادی دارد. فرد باید بتواند مشکلاتی مانند Slow Queries، N+1 Queries، Missing Indexes، Inefficient Indexes، Sequential/Full Table Scan، Lock Contention، Deadlock، Connection Pool Exhaustion، Long Running Transactions، Query Timeout، High Database CPU و Database Bottleneck را شناسایی کند. آشنایی با EXPLAIN، EXPLAIN ANALYZE، Query Execution Plan، PostgreSQL Indexing، pg_stat_statements و PostgreSQL Monitoring مزیت مهم محسوب میشود.
Application Performance
توانایی تحلیل Performance در Application Layer برای ما اهمیت دارد. آشنایی با Backendهای مبتنی بر Python، Django، Django REST Framework، FastAPI، Celery، TypeScript، NestJS و Node.js مزیت محسوب میشود. فرد باید بتواند مشکلاتی مانند Blocking Operations، Inefficient Algorithms، Excessive Database Calls، N+1 Queries، Poor Caching، Slow External APIs، Excessive Serialization، Worker Saturation و Queue Bottlenecks را شناسایی و تحلیل کند.
ابزارهای Performance Testing
تجربه عملی با حداقل یکی از ابزارهای زیر ضروری است: k6، Locust، JMeter یا Gatling. توانایی نوشتن Performance Test Script با Python، JavaScript یا TypeScript مزیت مهم محسوب میشود.
Monitoring & Observability
آشنایی با ابزارهای Observability و Monitoring اهمیت زیادی دارد. تجربه کار با Grafana، Prometheus، OpenTelemetry، Sentry و APM Tools مزیت محسوب میشود. فرد باید بتواند Metrics، Logs و Traces را برای پیدا کردن Bottleneck با یکدیگر مرتبط کند.
Performance Quality Gate
Performance نباید فقط بهصورت دستی پیش از Release بررسی شود. انتظار داریم فرد با تیم DevOps و Development برای تعریف Performance Quality Gate همکاری کند. برای مثال Release در صورت موارد زیر میتواند متوقف شود: افزایش قابلتوجه p95/p99 Latency، کاهش Throughput، افزایش Error Rate، کاهش Capacity سیستم، افزایش غیرعادی CPU یا Memory Consumption، ایجاد Database Bottleneck و کاهش Performance نسبت به Baseline قبلی.
مهارتهای فنی موردنیاز
الزامی
حداقل 3 سال تجربه در Software Performance Testing یا Performance Engineering
تجربه عملی Load Testing
تجربه Stress Testing
تجربه Performance Analysis
تجربه یکی از ابزارهای k6، Locust، JMeter یا Gatling
توانایی طراحی Performance Test Scenario
توانایی تحلیل Performance Metrics
تسلط مناسب بر HTTP / HTTPS
درک مناسب از RESTful APIs
درک مناسب از Web Architecture
آشنایی با SQL
تجربه کار با PostgreSQL
توانایی Root Cause Analysis
دانش برنامهنویسی
این نقش صرفاً Tool-Based نیست. انتظار داریم فرد بتواند Script بنویسد و در صورت نیاز بخشهایی از Application Code را برای پیدا کردن Bottleneck مطالعه کند. آشنایی مناسب با حداقل یکی از زبانهای زیر مورد انتظار است: Python، JavaScript، TypeScript. آشنایی با Django یا NestJS مزیت مهم محسوب میشود.
مزیت محسوب میشود
تجربه Performance Engineering
تجربه سیستمهای High-Traffic
تجربه Distributed Systems
تجربه Microservices Architecture
تجربه PostgreSQL Performance Tuning
تجربه Load Balancerها
آشنایی مناسب با Linux
آشنایی با Docker
آشنایی با CI/CD
توانایی خواندن Application Logs
توانایی تحلیل Infrastructure Metrics
ویژگیهایی که برای ما مهم است
تفکر تحلیلی قوی
توانایی Root Cause Analysis
علاقه به اندازهگیری و تحلیل داده
توانایی پیدا کردن Bottleneckهای پنهان
حساسیت نسبت به Performance و Scalability
توانایی طراحی Scenarioهای واقعی
توانایی مستندسازی نتایج
توانایی تبدیل Test Result به Technical Recommendation
توانایی ارتباط موثر با Developer، Tech Lead و DevOps
مسئولیتپذیری و Ownership بالا
علاقهمند به یادگیری مستمر
توانایی فعالیت در محیط Agile
توانایی کار همزمان روی چند محصول
فرهنگ فنی تیم ما
Performance بخشی از Architecture است، نه مشکلی که بعداً حل شود.
Performance Test باید براساس سناریوی واقعی Business طراحی شود.
فقط Average Response Time را اندازهگیری نمیکنیم.
p95 و p99 برای ما اهمیت دارند.
Performance Regression میتواند Release را متوقف کند.
Bottleneck باید تا Root Cause تحلیل شود.
Application، Database و Infrastructure با هم بررسی میشوند.
Performance Testها تا حد امکان Automated و Repeatable هستند.
Capacity سیستم باید قبل از رشد Traffic شناخته شده باشد.
Development و DevOps در حل مشکلات Performance همکاری میکنند.
از AI در فرآیند Software Engineering و تحلیل مشکلات فنی استفاده میکنیم.
یادگیری، انتقال دانش و Continuous Improvement بخشی از فرهنگ تیم ماست.
مزایا
حقوق رقابتی و پرداخت منظم
همکاری روی چندین محصول واقعی و High-Scale
فرصت رشد در حوزه Performance Engineering
فرصت رشد به سمت Senior Performance Engineer / Performance Engineering Lead
محیط Engineering-Driven
فرصت یادگیری فناوریها و ابزارهای روز