استخدام برنامهنویس ارشد بکاند (Golang)
شرکت: شریف کلینیک
موقعیت: تهران، دانشگاه شریف | نوع همکاری: حضوری، تماموقت
در شریف کلینیک، ما از تکنولوژی برای حل چالشهای پیچیده در حوزه سلامت بهره میبریم. تیم بکاند ما مسئول ساخت زیرساختهای قدرتمند، مقیاسپذیر و امنی است که راهکارهای نوآورانه ما را به حرکت درمیآورد. برای این نقش کلیدی، به دنبال یک مهندس ارشد بکاند (Golang) هستیم که نه تنها یک برنامهنویس برجسته، بلکه یک معمار و استراتژیست فنی باشد و در طراحی و پیادهسازی این سیستمهای حیاتی، نقشی پیشرو ایفا کند.
شرح وظایف و مسئولیتها:
- طراحی و توسعه میکروسرویسهای کارآمد، قابل تست و با قابلیت نگهداری بالا با استفاده از زبان Golang
- پیادهسازی معماریهای Event-Driven و اطمینان از ارتباط پایدار بین سرویسها
- طراحی Schemaهای پایگاه داده، بهینهسازی کوئریها و انتخاب تکنولوژی مناسب برای ذخیرهسازی داده
- مشارکت فعال در تصمیمگیریهای معماری، انتخاب تکنولوژیها و تدوین Best Practiceها
- اطمینان از قابلیت اطمینان (Reliability) و مانیتورینگ (Observability) سیستم از طریق پیادهسازی ابزارهای مناسب
- همکاری نزدیک با تیمهای دیگر برای تعریف و پیادهسازی APIهای کارآمد و امن
نیازمندیهای کلیدی (انتظار میرود در این حوزهها قوی باشید):
1. تسلط بر زبان Go و اصول برنامهنویسی:
- درک عمیق از Concurrency Model (Goroutines, Channels)، Runtime و ویژگیهای مدرن مانند Generics.
- توانایی نوشتن کدهای Idiomatic و قابل تست طبق اصول Effective Go.
2. معماری و طراحی نرمافزار:
- تجربه عملی قوی با معماری میکروسرویس، Event-Driven و الگوهایی مانند Domain-Driven Design (DDD).
- تسلط بر طراحی و پیادهسازی APIهای RESTful و gRPC.
3. پایگاههای داده و سیستمهای ذخیرهسازی:
- تجربه عمیق با یکی از پایگاههای داده رابطهای (PostgreSQL یا MySQL)، شامل طراحی Schema، ایندکسگذاری و بهینهسازی.
- تجربه کار با سیستمهای Cache مانند Redis و آشنایی با مفاهیم پایگاههای داده NoSQL.
4. سیستمهای پیامرسان (Messaging):
- تجربه کار با حداقل یکی از ابزارهای Kafka, RabbitMQ یا NATS و درک مفاهیم Pub/Sub و Stream Processing.
5. زیرساخت ابری و DevOps:
- تسلط بر کانتینرسازی با Docker و ارکستریشن با Kubernetes (K8s).
- تجربه با ابزارهای CI/CD (مانند GitHub Actions) و زیرساخت به عنوان کد IaC (مانند Terraform).
6. مانیتورینگ و قابلیت اطمینان (Observability & Reliability):
- آشنایی عملی با سهگانه مانیتورینگ: Metrics (Prometheus), Logging (ELK/EFK Stack), Tracing (OpenTelemetry/Jaeger).
- تجربه در نوشتن تستهای مختلف (Unit, Integration, End-to-End).
موارد زیر مزیت بسیار بزرگ محسوب میشود:
- تجربه با الگوهای پیشرفته مانند CQRS / Event Sourcing.
- آشنایی با الگوهای Resiliency مانند Circuit Breaker, Saga, Outbox.
- تجربه عملی در پیادهسازی امنیت در سطح سرویس و API (OAuth2/OIDC, mTLS).
- مشارکت در پروژههای متنباز Go.
ویژگیهای فردی مورد انتظار:
- روحیه کار تیمی و توانایی به اشتراکگذاری دانش.
- تفکر سیستمی و توانایی دیدن تصویر کلان (Big Picture).
- نتیجهگرایی و تعهد به ارائه کدهای باکیفیت.
- مدیریت زمان و اولویتبندی در محیطی پویا.
اگر شما یک مهندس باتجربه هستید که به دنبال یک چالش فنی عمیق و تأثیرگذار میگردد، مشتاقانه منتظر دریافت رزومه شما هستیم.