<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های علی سپهری خامنه</title><link>https://virgool.ir/feed/@ali.sepehri.kh</link><description></description><language>fa</language><pubDate>2026-11-12 05:35:49</pubDate><image><url>https://files.virgool.ir/upload/users/38165/avatar/55zq3b.png</url><title>علی سپهری خامنه</title><link>https://virgool.ir/@ali.sepehri.kh</link></image><item><title>چطوری با شرکت‌های خارجی مصاحبه کنیم؟</title><link>https://virgool.ir/@ali.sepehri.kh/چطوری-با-شرکت-های-خارجی-مصاحبه-کنیم-b74simjgev3u</link><description>Photo by Jordan Sanchez on Unsplashبا یه شرکت آلمانی کار می‌کردم که قرار بود با همون شرکت هم برم آلمان، اما چند وقت پیش تصمیم گرفتم از شرکت جدا بشم. شرکت Doctolib رو بیشتر از یکسال بود که میشناختم و تو ذهنم خیلی شرکت خوبی بود، تصمیم گرفتم برای یکی از پوزیشن‌های باز این شرکت اپلای کنم و این دفعه می‌دونستم که تجربه‌هایی که از مصاحبه‌های قبلی دارم خیلی کمک می‌کنه تا بتونم این پوزیشن رو بگیرم. به خودم قول دادم که اگر این پوزیشن رو بگیرم، هر تجربه‌ای که تو این سه سال از مصاحبه بدست آوردم رو یه جایی بنویسم تا هم بتونم به چند نفر کمک کرده باشم و هم اینکه بقیه کمک کنن که این تجربیات کامل‌تر بشن.تو این نوشته، باکس‌هایی مثل این باکس پایینی رو می‌بینین که نکته‌ای مرتبط با موضوع، و مستقل از محل قرارگیری توش نوشته شده؛ و مهم‌ترینش رو همین اول میذارم.انتظار عادلانه بودن مصاحبه‌ها رو نداشته باشین، ممکنه شما برای یه موقعیت شغلی کاملا مناسب باشین ولی اون شرکت شما رو ریجکت کنه. اما این جمله باعث نشه که هر وقت ریجکت شدین یه فحش به شرکت بدین و بدون اینکه فکر کنین چرا ریجکت شدین، برین سراغ مصاحبه بعدی. در اکثر مواقع ما خودمون مصاحبه رو خراب می‌کنیم، پس هر بار بعد از ریجکت شدن به این فکر کنین که چرا ریجکت شدین.نوشتن رزومهمیشه گفت اولین گام برای پیدا کردن کار، نوشتن رزومه‌ست. من تو این مقاله نمیخوام بگم که یه رزومه خوب باید چطوری باشه، چون نه سوادش رو دارم و نه فضای کافی براش داریم. فقط باید این رو بدونیم که رزومه خوب با تغییرات پیوسته بدست میاد. مثلا برای من اینجوری نبود که یه رزومه بنویسم و همه مصاحبه‌ها رو با همون رزومه‌ای که روز اول نوشتم برم جلو، و هر موقع احساس می‌کردم که باید چیزی بهش اضافه کنم، رزومه‌م رو آپدیت می‌کردم.اگر کسی مثلا تو لینکداین شما رو به مصاحبه دعوت کرد، این به این معنی نیست که اون شرکت شما رو میخواد و حالا منتظر نظر شما هستن. وقتی پیامی از یه نفر برای کار تو یه شرکت میگیرین، تنها چیزی که فرق خواهد کرد، اینه که شما معمولا دیگه نیازی ندارین فرم اپلیکیشن رو پر کنین و بقیه مراحل رو باید کاملا عادی و مثل بقیه طی کنین.خوندن فرصت‌های شغلییکی از مفیدترین کارها برای اینکه بدونین شرکت‌ها دنبال چه توانایی‌هایی هستن خوندن توضیحات فرصت‌های شغلی(Job Post) هستش. تک‌تک جملاتی که تو توضیحات هست رو با دقت بخونین. برای پیدا کردن جاب‌پست از سایت‌های زیادی می‌تونین استفاده کنین. برای مثال من معمولا از Stackoverflow و LinkedIn استفاده می‌کردم. برداشت من این بود که شرکت‌های خوب سعی نمی‌کنن با جاب‌پست‌هاشون تکنولوژی‌هایی که کار می‌کنن رو به رخ بقیه بشکن و خفن بودنشون رو نشون بدن و تمام سعی‌شون اینه که نزدیک‌ترین توضیحات رو با شخصی که میخوان جذب کنن بنویسن تا بیشترین جذب رو داشته باشن.معمولا چون بیشتر آدم‌ها دوست دارن که ویترین خوبی از خودشون به نمایش بذارن، به همین خاطر وقتی کسی یه آفر میگیره ما خیلی از ریجکت شدن‌هاش خبر نداریم، ولی واقعیت اینه که قطعا برای گرفتن یه آفر، مثل من باید کلی ایمیل ریجکتی تو اینباکس‌تون باشه.انتخاب فرصت شغلیاولین نکته اینه که فله‌ای اپلای نکنین! شاید یکی پیدا بشه و بگه که «من کردم، شد»، اما واقعیتش اینه که با فله‌ای اپلای کردن، خیلی وزنه شانس رو برای پیدا کردن کار، بزرگ‌تر می‌کنین و هیچوقت تو تکنیک مصاحبه اونطور که باید پیشرفت نمی‌کنین. حتی اگه شانس بیارین و به مصاحبه دعوت بشین، شرکت‌ها تو روند مصاحبه سوال‌هایی دارن (جلوتر در موردشون نوشتم) که می‌تونن متوجه بشن که شما اون شرکت رو هدف قرار دادین یا اینکه یکی از صد شرکتی بودن که رزومه شما رو دریافت کردن.به نظر من مصاحبه کردن یه تکنیکه، و برای بهتر شدن تو مصاحبه باید تمرین کرد و مطالعه کرد. پس فکر نکنین اگر رزومه خوبی دارین(تجربه زیادی دارین) می‌تونین برای فرصت‌های شغلی خوب اقدام کنین و همون اول بگیرینشون. پس اگر تجربه زیادی تو مصاحبه کردن ندارین، من پیشنهاد می‌کنم که همون اول برای شرکت‌های خوب اپلای نکنین و اون فرصت‌ها رو نسوزونین، مخصوصا اگه کشور یا شهر خاصی رو هدف قرار دادین (مثلا یکی فقط میخواد بره سوئد)در حوزه استخدام، recruiterها کسایی هستن که یک پوزیشن باز بهشون سپرده میشه و اونا نیروی مناسب اون پوزیشن رو پیدا می‌کنن. اما بعضی از recruiterها که مستقل از یک شرکت کار می‌کنن، و شرکت‌ها مشتری‌هاشون حساب میشن، می‌تونن شما رو به بیشتر از یدونه شرکت معرفی کنن.برای مثال سایت Honeypot می‌تونه یک recruiting agency باشه که چند recruiter توش کار می‌کنن و مثل یک بنگاه میخوان که نیروی مناسب رو به شرکت مناسب وصل کنن.*اپلای کردن برای فرصت شغلیهمون اول فرم درخواست کار (فرم اپلیکیشن) رو پر نکنین! موقع اپلای کردن هدف اینه که از ما برای مصاحبه دعوت بشه، پس ما باید کاری کنیم که احتمال دعوت شدن ما به مصاحبه بالاتر بره.بعد از انتخاب فرصت شغلی، هرچقدر که می‌تونین در مورد شرکت و اون فرصت شغلی بخونین و اطلاعات جمع کنین. هر چیز مربوط به شرکت که پیدا می‌کنین رو چک کنین؛ سایت شرکت، پروفایل لینکداین، یوتوب، اینستاگرام، بلاگ، کامنت‌های سایت‌هایی مثل Glassdoor و در نهایت جاب‌پست رو با دقت بخونین و برین سراغ Talent Acquisitionهای اون شرکت که می‌تونین از طریق LinkedIn پیداشون کنین(تو پروفایل شرکت برین به قسمت People و دنبال این آدم‌ها بگردین). باهاشون کانکت بشین و خیلی صادقانه بهشون بگین که از چه چیز شرکت خوشتون اومده و برای کدوم پوزیشن میخواین اپلای کنین و در نهایت ازشون بپرسین که راهنمایی‌ای در این مورد می‌تونن انجام بدن یا نه. اگر جواب بدن، دو حالت پیش میاد ۱. یا میگن که رزومه‌ت رو بفرست و اگر اوکی بودن دعوت به مصاحبه‌تون می‌کنن(برا من پیش اومده که بدون گرفتن رزومه هم به مصاحبه دعوت شدم) ۲. یا اینکه میگن اپلیکیشن فرم رو پر کنین، که در این صورت می‌تونین فرم رو پر کنین و بعد از چند روز از طریق همین آدم پیگیر نتیجه‌ش بشین.نکته ۱: اون پیامی که به Talent Acquisition میفرستین و یا اون Cover Letterی که موقع اپلای می‌نویسن رو جدی بگیرین و سعی کنین رفته رفته انگیزه‌تون برای کار تو اون شرکت رو بهتر به طرف مقابل منتقل کنین؛ و اینجوری نباشه که متن بنویسین و برای ۱۰۰ تا شرکت از اون استفاده کنین.نکته ۲: ارتباط با یکی از آدم‌هایی که کارش پیدا کردن نیرو برای شرکت هستش، به طرز قابل توجهی درصد به مصاحبه رسیدن من رو افزایش داد.انتظار نداشته باشین بدون اینکه خودتون رو خوب پرزنت کنین، شرکت متوجه توانایی‌های شما بشه.مرحله اول: مصاحبه کوتاههر شرکتی روال خاص خودش رو داره و به همین خاطر نمیشه گفت که مصاحبه اول چه نوع مصاحبه‌ای خواهد بود، اما معمولا مصاحبه اول یه مصاحبه نیم‌ساعته‌ست که تو اون میخوان بدونن شما کی هستین و چه تجربیاتی دارین؟ چقدر شرکت رو میشناسین؟ چرا این شرکت رو برای کار انتخاب کردین؟ حقوق درخواستی‌تون چقدره؟ و چه سوالاتی در مورد شرکت تو ذهنتون هست؟حتما قبل از مصاحبه به تک‌تک این سوالات فکر کنین، و براشون جواب آماده کنین. هر کدوم از این سوالات رو که سرچ کنین، کلی مطلب در موردشون هست که باید چطوری جواب بدین، اما منابع درست و حسابی ذهن شما رو بازتر می‌کنن که به چیزهای بیشتری فکر کنین و با مثال ذهنتون رو تمرین میدن و هیچوقت برای شما جمله آماده نمی‌نویسن که اونو در جواب بگین، چون در نهایت این شما هستین که باید با صداقت جواب سوالات رو بدین. دلیل اینکه میگم با صداقت، اینه که جملاتی که با صداقت گفته میشن معمولا درصد مقبولیت بالاتری دارن.وقتی با یه زبانی به غیر از زبان‌هایی که بهشون تسلط کامل داریم مصاحبه می‌کنیم(برای مثال انگلیسی)، باعث میشه نتونیم کامل خودمون رو پرزنت کنیم، چون درصدی از مغزمون موقع صحبت‌کردن مشغول پیدا کردن کلمه و جمله‌بندی هستش. این قضیه رو اگر فارسی زبان مادریتون نباشه، اون اوایل فارسی صحبت کردنتون حتما حس کردین؛ و با تمرین و تکرار، مغز درصد کمتری رو به ساختن جمله اختصاص میده و بیشتر موقع صحبت‌کردن می‌تونین فکر کنین. پس بدونین که اصلا غیرعادی نیست اگر فقط می‌تونین ۷۰ درصد خودتون رو تو مصاحبه انگلیسی ارائه کنین.مرحله دوم: پروژه ارزیابی یا Assessmentانجام دادن تمرین برای ارزیابی شاید تو شرکت‌های ایرانی خیلی رایج نباشه و اگر یه شرکت این کار رو انجام بده شاید ما بهمون بر بخوره :) اما تقریبا تمام شرکت‌های خارجی‌ای که من باهاشون مصاحبه کردم این تمرین رو داشتن. در مورد انجام دادن تمرین، من تو ذهنم چندتا نکته خیلی مهم دارم که فکر می‌کنم به شما هم کمک کنه:تمرین رو جدی بگیرین و بدونین که تو انتخاب شما خیلی خیلی موثر خواهد بودهر چقدر که وقت اجازه میده رو تمرین کار کنین و سعی کنین بهترین خروجی شما باشهحتما حتما پروژه‌تون تست‌های خوبی داشته باشه و نحوه اجراشون رو تو Readme توضیح بدیناز اون ور بوم نیفتین و over engineer نکنین. برای مثال معمولا از شما پروژه‌ای نمیخوان که توش Kafka استفاده کنین و به اندازه معقول از کتابخونه‌ها و toolهای دیگه استفاده کنین.سعی کنین فقط scopeی که خواسته شده رو انجام بدین، اما اگر فکر می‌کنین ایده‌های خیلی نابی دارین که خیلی حیفه اگر ارائه ندین، می‌تونین یه جایی اونارو بنویسین و براشون بفرستین که همچین فکرهایی هم داشتم.حتما دستورعمل برای اجرای برنامه رو تو Readme پروژه بذارینکامیت و کامیت‌مسیج‌های تر و تمیز داشته باشین. این به این معنی نیست که پروژه رو تموم کنین و بعد کامیت‌ها رو جوری بسازین که انگار از اول شما فکر همه چیز رو کردین و همه فایل‌ها از همون اول در حالت نهایی خودشون ساختین :) هیچ اشکالی نداره که شما کامیتی داشته باشین که یه مشکلی رو که همون اول ندیدین رو توش حل کرده باشین.از دوستاتون بازخورد بگیرینمرحله سوم: مصاحبه فنی و توضیح تمرینبعد از اینکه شما نمره قبولی رو از تمرین گرفتین، معمولا جلسه‌ای تشکیل میشه که از شما قراره در مورد تمرینتون سوال کنن و شاید در ادامه‌ش یه سری سوالات فنی هم ازتون بپرسن. معمولا بین انجام تمرین و این جلسه بیشتر از یک هفته فاصله میفته که باعث میشه آدم، کُد و منطق انجام کارهایی که تو پروژه انجام داده رو رو فراموش کنه. چیزی که به نظرم خیلی به من کمک می‌کنه اینه که چندین بار تمرینی که انجام دادم رو مرور کنم و منطق هر تصمیمی که گرفته بودم رو با خودم مرور کنم.در مورد بخش دوم مصاحبه، که سوالات فنی‌ هستش، انقدر طیف این سوالات می‌تونه وسیع باشه که خیلی نمیشه پیش‌بینی کرد چه سوالاتی قراره پرسیده بشه. چند سال پیش سوالات شئ‌گرایی سوالات خیلی رایجی بودن که پرسیده میشدن، اما اخیرا حس می‌کنم این نوع سوالات تو مصاحبه‌ها کم‌رنگ‌تر شدن.نکته: قبل از مرحله آخر، هر شرکتی با توجه به روند خودش می‌تونه مراحل مختلفی داشته باشه. مثلا من یه مصاحبه داشتم که اسمش «System Design» بود که خیلی هم دوسش داشتم (اگر در موردش سرچ کنین، میبینین که مصاحبه رایجی هم هست).مرحله آخر: آفرو در نهایت آفر :) که به شما میگن که قبول شدین، شرکت چه حقوقی رو برای شما در نظر گرفته، و شرکت چه مزایایی رو به شما میده.انتظار نداشته باشین برای پیدا کردن کار، شانس تاثیر نداشته باشه، اما شما با آماده کردن خودتون شانس خودتون رو بالاتر می‌برین. مثلا من سه سال پیش یه آفر گرفتم برای ریلوکیشن، اما چون اون موقع تصمیم رفتن برام جدی نبود، نرفتم و باهاشون نزدیک دو سال ریموت کار کردم، اما بعدش که خودم میخواستم یه موقعیت برای ریلوکیشن پیدا کنم، کلی مصاحبه رو ریجکت شدم و بعدش تونستم یه شرکتی رو پیدا کنم. میخوام بگم اگر کسی آفر میگیره، معنیش این نیست که اون بلده چطوری مصاحبه کنه و شما بلد نیستین، و در بعضی مواقع شانس تاثیر خودش رو میذاره. اما با یادگرفتن تکنیک مصاحبه، دیگه نیازی نیست منتظر یه شانس باشین، با هر شرکت که دوست داشتین مصاحبه می‌کنین و قطعا می‌تونین شرکت بهتری رو پیدا کنین.اگر این مقاله رو خوندین و حس کردین که چیزی غلطه، جا افتاده، یا جاییش خوانا نیست، کامنت بذارین و کمک کنین که بهترش کنیم تا هم به من و هم به اونایی که این مقاله رو می‌خونن کمک کنیم. از طریق این اکانت توییتر هم می‌تونین با من در ارتباط باشین!* در مورد این قسمت، نیلوفر تو توییتر یه سری توضیحات بهم داد و کمک کرد که تصحیحش کنم.</description><category>علی سپهری خامنه</category><author>علی سپهری خامنه</author><pubDate>Wed, 01 Sep 2021 10:58:03 +0430</pubDate></item><item><title>چگونه برای دسترسی به گیت‌هاب هربار دستور ...eval رو اجرا نکنیم؟</title><link>https://virgool.ir/@ali.sepehri.kh/چگونه-برای-دسترسی-به-گیتهاب-هربار-دستور-eval-رو-اجرا-نکنیم-uo8bhroekenr</link><description>این روزها با بسته شدن چندباره اکانت ما ایرانی‌ها تو GitHub شاید شما هم مثل من با مشکل اینکه نمی‌تونین با اکانت جدیدتون pull یا push کنین مواجه شده باشین:fatal: Could not read from remote repository.&#xA;&#xA;Please make sure you have the correct access rights&#xA;and the repository exists.و برای حلش مجبورین بعد از باز کردن هر باره ترمینال دستورات زیر رو اجرا کنین:eval &#34;$(ssh-agent -s)&#34;&#xA;ssh-add ~/.ssh/keyبعد از اینکه این اتفاق برای من افتاد، یه جستجوی گذری انجام دادم و به راه‌حلی نرسیدم! چند روزی رو اینجوری سپری کردم‌. یه روز به خودم گفتم: خجالت بکش این چه کاریه؟! دوباره دنبالش گشتم و بدون اینکه دلیل مشکل رو بفهمم یه راه‌حل براش پیدا کردم و بعد از چند روز، اون راه‌حل هم دیگه کار نکرد. سمت راست، چپ و پشت خودمو نگاه کردم، کسی نبود و همون دستورات رو تکرار کردم و تا یکی دو ماه همونجوری با تکرار دستورات کارم رو ادامه دادم.سناریوی مشکلشما می‌تونین چندین جفت ssh key همزمان تو سیستمتون داشته باشین. وقتی جایی ssh می‌زنین، دستور ssh از کلیدهایی که توسط ssh-add به لیست اضافه شدن، برای برقراری ارتباط استفاده می‌کنه (لیست این کلید‌ها رو می‌تونین با دستور ssh-add -l ببینین). حالا فرض کنین شما یک اکانت به اسم account_1 تو گیت‌هاب دارین و روی این اکانت دسترسی یک پروژه به شما داده شده. برای دسترسی به اکانت account_1 از جفت کلید key_1 و key_1.pub استفاده می‌کنین. یه روز از خواب بیدار میشین و اون پیغام کمرشکن رو می‌بینین و مجبور میشین یه اکانت جدید بسازین(account_2). روی اکانت جدید، دوباره به شما دسترسی به پروژه داده میشه و دوباره میخواین که key_1.pub رو به اکانت جدید گیت‌هابتون اضافه کنین و گیت‌هاب ارور میده که این کلید تکراریه و شما میرین جفت جدید key_2 و key_2.pub رو میسازین و از کلید جدید استفاده می‌کنین.اما همونطور که می‌بینین وقتی میخواین push یا pull کنین، با ارور دسترسی مواجه میشین و هر بار بعد از باز کردن ترمینال باید قبلش دستورات زیر رو اجرا کنین:eval &#34;$(ssh-agent -s)&#34;&#xA;ssh-add ~/.ssh/key_2دلیل مشکلترمینال رو بازکنین و تو مسیر پروژه‌تون دستور git remote -v رو بزنین، متوجه میشین که این url چه با اکانت قبلی و چه با اکانت جدید، هیچ فرقی نکرده. خب وقتی می‌خواین تو یه پروژه داخل گیت‌هاب پوش کنین، گیت‌هاب از کجا باید بفهمه این کسی که داره پوش می‌کنه کیه؟ وقتی دارین از ssh استفاده می‌کنین تنها راه اهراز هویت برای گیت‌هاب public key شماست.دستور ssh تو لیستش دوتا کلید داره(key_1 و key_2) که متناظر با دو اکانت جداگانه تو گیت‌هاب هستن. و موقعی که شما میخواین push کنین، اگر ابتدا از key_1 استفاده بشه، گیت‌هاب اکانت شما رو account_1 تشخیص میده و چون اون اکانت دیگه به پروژه‌تون دسترسی نداره، شما با ارور دسترسی مواجه میشین.راه‌حل مشکلبعد از فهمیدن دلیل مشکل، کارهای زیادی رو می‌تونین برای حلش انجام بدین که من تو این قسمت یک راه‌حل برای حالت خاص و یک راه‌حل کامل رو نوشتم: کلید‌ key_1.pub رو از account_1 حذف کنید. این راه‌حل برای موقعی که می‌خواین هر دو اکانت رو داشته باشین نمی‌تونه استفاده بشه.برای حل همیشگی این مشکل می‌تونین از کانفیگ فایل ssh استفاده کنین و سرور گیت‌هاب رو برای مثال با اسم github-work به این لیست اضافه کنین. فایل config رو باز کنین و کانفیگ زیر رو به انتهای فایل اضافه کنین:# ~/.ssh/config&#xA;...&#xA;&#xA;Host github-work&#xA;  HostName github.com&#xA;  User git&#xA;  IdentityFile ~/.ssh/key_2بعد، ترمینال رو باز کنین، برین به مسیر پروژه و دستورات زیر رو اجرا می‌کنین:git remote remove origin&#xA;git remote add origin git@github-work:your_organization/your_repo.gitهمونطور که می‌بینین، به جای github.com از github-work استفاده کردیم و حالا می‌تونین بدون مشکل از گیت‌هاب استفاده کنین.پ.ن: چند روز پیش، کتاب در حال خوندن نداشتم، اینترنت نداشتم و بعد از تموم شدن ساعت کاری می‌خواستم برم خونه، وقتی صف طولانی تاکسی‌های شهران رو دیدم نمی‌دونستم چیکار کنم، تصمیم گرفتم شروع کنم به نوشتن این متن که چند وقتی بود تصمیمش رو داشتم. تمام این متن رو اون روز تو صف تاکسی و تو مسیر خونه نوشتم و تو تلگرام برای خودم فرستادم تا سر یه فرصت اینجا منتشرش کنم.</description><category>علی سپهری خامنه</category><author>علی سپهری خامنه</author><pubDate>Thu, 14 Nov 2019 22:28:37 +0330</pubDate></item></channel></rss>