توی این بلاگ میخوام راجع به تجربهی یک سال گذشتهم توی کافهبازار بنویسم. بخش اول خاطرات و چگونگی ورودم هست، بخشهای بعدی هم کلیاتی راجع به فرایندهای داخل شرکت مینویسم. این نوشته صرفا دیدگاه و تجربه شخصی خودم هست و ممکنه دقیق نباشه.
من یه برنامهنویسم. از حدود ۸ سالگی (۲۲ سال پیش) شروع کردم که پدرم یه commodore 64 خرید. از دوران ماقبل ms-dos رو دیدم و win3.1 و ۹۵ و ۹۸ گرفته تا زمانی که اینترنت dial-up اومد با اون صدای جیغ معروفش. با gw-basic شروع کردم و پاسکال و دلفی و php و داتنت و بعدها نود رو هم قورت دادم. دورانی که gmail اومد رو یادمه، یاهو مسنجر که دیگه دوران مدرن بود، orkut رو هم یادمه و خیلی خاطرات دیگه. هیچوقت اهل درس و مدرسه نبودم و کلا سرم توی کامپیوتر و مجلات کامپیوتر اون زمان بود.
آخرین بار سال ۹۲ تا ۹۴ بود که برای ارشدم تهران بودم و بعدش برگشتم شهرستان و حتی یه مدتی هم برای ریکاوری رفتم یه روستایی تنهایی زندگی کنم و برای دل خودم کد بزنم. دفعه اولم هم نبود، قبل از کارشناسی هم یک سالی رفتم روستا تنهایی زندگی کنم. همیشه با شهرنشینی بخصوص از نوع شلوغ و پر از دودش مشکل داشتم، مترویی که همه در حال دویدن هستن، ترافیکهایی که برای رفتن به هر جایی باید ۲ ساعت تو راه باشی و …
نزدیک عید سال ۹۷ تصمیم گرفتم برای کار برگردم تهران و دوباره تو فضای کار باشم بلکه تجربه عملی بیشتری کسب کنم. بعد از مدتها فاصله گرفتن کلاً توی باغ نبودم، از طریق جابینجا یه چند تا شرکت نوپا اپلای کردم و مصاحبه رفتم. به غیر از یه مورد همگی اوکی دادن ولی با فضای کاریشون نمیتونستم کنار بیام و خودم قبول نکردم. تا اینکه یکی از دوستام کافهبازار رو پیشنهاد داد اپلای کنم. تنها چیزی که به ذهنم میرسید یه لوگوی فندق مانند بود :دی. دوستم تعریف کرد که شرکت خوبیه، رفتم توی سایتش و اپلای کردم.
بعد از مدتی منیره برای ست کردن مصاحبه تلفنی زنگ زد، تصویر آخرین مصاحبهی حضوری که رفته بودم اومد جلو چشمم: یه سری میز مدیریتی مشکی، صندلیهای چرمی قهوهای، یه اتاق که چند تا برنامهنویس پای یه میز رو به دیوار نشستن، یه اتاق که یه مدیر از خود راضی داخلش تنهایی نشسته با یه منشی که بیرون اتاقش نشسته و تلفن دستشه.
خلاصه مصاحبه تلفنی با مهتدی ست شد. تازه خونهم رو تحویل گرفته بودم (تهرانپارس) و مهمون اومده بود که مهتدی زنگ زد و صحبت کردیم (جزییاتش دقیق یادم نیست، بیشتر سوالات فنی بود). بعد از چند وقت دوباره منیره تماس گرفت که برای مصاحبه حضوری برم و اوکی دادم. شب قبل مصاحبه خونه یکی از دوستام بودم و تا صبح بیدار بودیم، روز بعد خسته بودم حوصله مصاحبه رفتن نداشتم و نرفتم (خبر هم ندادم). منیره زنگ زد که چرا نیومدی؟ مکالمه دقیق یادم نیست، ولی یه بهونه آوردم که خونهم دوره و فلان (بعد از مدتی زندگی توی روستا واقعا خیلی برام سخت و دور بود)، قرار شد فکر کنم اگه نظرم قطعی شد خبر بدم که بالاخره میرم یا نه؟ گفت الکی مصاحبه برام ست نشه (فکر کنم از دستم عصبانی هم شده بودن :دی). بعدش یکم فکر کردم دوباره زنگ زدم گفتم یه مصاحبه دیگه ست بشه.
مصاحبه بعدی با ارسطو بود. رفتم محل حدودی شرکت رسیدم، یه ساختمان بزرگ بود. با خودم گفتم بعیده این باشه، اون دور و بر رو نگاه کردم یه ساختمون دیگه دیدم که به اندازه وبسایت کافه داغون بود :دی حدس زدم اونه ولی ورودیش معلوم نبود. آخرش دوباره زنگ زدم منیره پلاک رو پرسیدم که فهمیدم همون ساختمون بزرگهس. وقتی وارد شدم همچنان شک داشتم، با خودم گفتم لابود ساختمون تجاریه و داخلش چند تا شرکت مختلف هستن. صندلیهای رنگی، فضای شاد، آدمهایی که همه تیشرت پوشیدن و … تو همین فکرا بودم که بالاخره ارسطو اومد رفتیم اتاق مصاحبه. یه سری اتاق شیشهای بود که هر کدوم یه میز کوچیک و چند تا صندلی رنگی فانتزی داشت. یکم سوالات فنی، یکم سوالات غیر فنی، خفنترین کاری که کردی چی بوده و فلان. ارسطو هم شخصیت خوشبرخورد و نسبتا پرانرژی داشت و حس مثبت گرفته بودم. در انتهای مصاحبه بهش گفتم ترجیح میدم برای بکند مصاحبه بدم (رزومه هم سافتور فرستاده بودم) گفت میتونه با بچهها صحبت کنه یه مصاحبه بکند برام ست بشه و خلاصه تموم شد رفتم خونه.
چند وقت بعد دوباره منیره زنگ زد، استرس و نگرانی مشکلات شخصی (داستانش طولانیه) همچنان توی ذهنم بود، زیاد دقت نکردم چی میگه و صرفاً تاریخ و ساعت مصاحبه بعدی یادم موند. این بار شب قبل مصاحبه چند تا فریمورک بکندی nodejs نگاه انداختم که آماده باشم اگه پروژهای چیزی دادن دستم سریع باشه. با مهتدی و هاشم بود، وسط مصاحبه مهتدی یهو یه سؤال cssی ازم پرسید، با تعجب پرسیدم مگه مصاحبه فرانته؟؟ گفت آره این مرحله دومشه! (بعدها ایمیلم رو چک کردم دیدم گویا عنوانش هم فرانتاند بوده که نخونده بودم :دی). خلاصه در حدی که یادم بود جواب دادم، در نهایت یه پروژه هم دادن که با ریاکت زدم. هاشم میپرسید چرا با vue نمیزنی؟ (توی رزومه فکر کنم اونو حرفهایتر زده بودم) گفتم تازگی یه پروژه react nativeی انجام دادم و بیشتر آمادگی دارم. آخر مصاحبه راجع به حقوق درخواستی هم پرسیدن. گفتم نمیدونم، رنج پرداختی شما تقریباً چجوریه؟ هاشم گفت فلان تومن، منم گفتم اوکی و خداحافظی کردیم رفتم. یه مدت کوتاهی بعدش زنگ زدن که اکسپت شدی و جلسه آفر ست شد، این بار با وحید بود. اومد یکم از ارزشهای شرکت گفت (اون لحظه با خودم فکر میکردم در حد شعار باشه) و یه توضیحات کلی داد. راجع به تیمی که قرار بود برم گفت و اینکه توقع زیادی ازم دارن که بتونم خوب پیش ببرم. یه مبلغ آفر گفت که از چیزی که هاشم گفته بود بیشتر بود و خلاصه قبول کردم. پرسید از کی میتونی بیای؟ گفتم هفته بعد، شروع به کارم خورد ۱۶ تیر که روز تولدم هم بود.
تا اینجاش کلاً جدی نمیگرفتم، فرضم این بود که فوقش میخوام ۳ ماه اینجا بمونم، هیچوقت نمیتونستم با زندگی کارمندی کنار بیام. روز آنبوردینگ رفتم شرکت. توی لابی منتظر بودم که مهرناز (یه شخصیت فوق خوشبرخورد و خوشخنده) اومد و با چند نفر دیگه که اونا هم تازه استخدام شده بودن کل شرکت رو نشونمون داد. اتاقهای جلسات که شیشهای بود و از بیرون داخلش دیده میشد با همون صندلی رنگیهای فانتزی، هر طبقه یه اتاق استراحت که دو تا تخت داشت، آشپزخونه و کمد وسایل تحریر و سیم و کابل و غیره. غیر از راهروها جایی دوربین نداشت، همه چیز کلا آزاد بود و هیچ کنترل و نظارتی حس نمیکردی. فضا کاملا دوستانه و بر مبنای اعتماد بود، خبری از اون میزهای مدیریتی و آدمهای کت و شلواری نبود، شبیه به چیزی بود که معمولا از فضای کار شرکتهایی مثل گوگل میبینی. مهرناز یه دوربین عکس فوری هم داشت که عکس میگرفتیم و بعدا با اون عکسها استوجیت بازی کردیم.
در انتها باید میرفتم پیش منیره که کارهای قراردادم رو انجام بده، برخورد اول که دیدمش بازم پیشفرض ذهنیم بهم ریخت. مشخصات و تاریخ تولد رو گفتم که تبریک گفت یه سری فرم پر کردم و تموم شد. برعکس خیلی از شرکتهای دیگه حتی چک و سفته و تضمین و از این چیزا هم کسی ازم نخواست. خلاصه این بود فرایند استخدام تا آنبوردینگ.
تیم اولی که داخلش رفتم اکثریت هندی بودن و ریموت کار میکردن. داخل شرکت یه نیرو بکند بود که یه هفته بعد از اومدن من رفت، یه تیملیدر، یه اسکراممستر، یه دیزاینر و من که فرانتاند بودم و قرار بود روی نسخهی وباپ کار کنم. کدی که زده شده بود ریاکتی بود اما به معنای واقعی کلمه کثیف بود، البته وحید هم تو جلسه آفر یه چیزایی گفته بود که هندیا زدن و کدش کثیفه، ولی عظمت ماجرا رو تا وقتی کد رو ندیده بودم درک نمیکردم. از ابتدا پروژه بدون redux استارت زده شده بوده، بعدا redux اضافه شده و یه ریفاکتور جزئی هم شده بود. با اینکه ریداکس بود، همچنان توی خیلی از کامپوننتها پراپرتی پاسکاری میشد. یه جاهایی نمیفهمیدی جریان داده چیه؟ چی از کجا میاد و کجا میره؟
خلاصه بیشتر کارم اونجا به ریفاکتور و بعدش هم باگفیکس گذشت. یه سری daily call داشتیم که هر روز همهی تیم با اسکایپ جلسه داشتن. هر بار که daily call داشتیم یاد تک تک courseهایی میافتادم که به خاطر لهجه هندی بیخیال میشدم و نگاه نمیکردم. تیم هندی جدای از لهجه و سبک کدنویسیشون (که خودشون با هیچکدوم مشکلی نداشتن :دی) آدمای دوست داشتنی و خوبی بودن و بعد از مدتی باهاشون صمیمی شده بودم.
حدودا یک ماه و نیم توی این تیم بودم. توی این دوره زیاد با بقیه بچههای شرکت ارتباط نداشتم. یه دورهی منتورشیپ هم همزمان با ورودم شروع شده بود که منتورم هاشم بود. یه سری داکیومنت فنی آموزشی که باید میخوندم و تمرینها رو انجام میدادم که فکر کنم مجموعا یکی دو هفتهای تموم شد. یه بار هم مهتدی اومد خبرمو گرفت که وضعیت چجوریه و اینا. بعد از یه ماه و نیم این تیم دیسش خورد (مطمئن نیستم این «دیس» از چی میاد یا مخفف چیه، بین بچهها به این معنیه که ترکید و اینا).
توی این تیم که بودم یکی دو جلسه هم با حسام (آرمندهی) داشتیم. اون زمان توی تیم کناری مینشست. با همون سبک میز و صندلی که همهی بچهها داشتن، هیچ تفاوتی نداشت. یه شخصیت آروم و خونسرد و معمولی مثل بقیه.
تیم بعدی که رفتم «رسید» یه اپ انتقال پول بود. روی یه کدبیس react native باید کار میکردیم. این بار همه چیز تمیز و نسبتا مرتب بود، کل این پروژه رو مهتدی نوشته بود و خودش هم owner بود. بکاند و نسخه اندروید بچههای دیگه بودن. این تیم کلا یک ماه بودم، ولی جزو بهترین تیمهایی بود که داخلش بودم. بچهها خیلی صمیمی بودیم، طنز و شوخیهای دوستانه هم زیاد بود. توی این یک ماهی که بودم روی یه فیچر «دعوت از دوستان» کار میکردیم. کارهایی که انجام میدادم همیشه branch جدا بود و به مهتدی merge request میدادم، قسمتهای زیادی رو میگفت اصلاح میکردم. روی تمیزی کد وسواس شدیدی داشت و کلا توی مباحث فنی شوخی نداشت. هر بار سر یه چالشی کسی غر میزد مهتدی یه جمله معروف داشت که «پول میگیریم همین کارهای سخت رو انجام بدیم» (نمیدونم جدی میگه یا شوخی، ولی جمله مورد علاقهم شده هر جا بخاطر چالشی بودن کار کسی غر بزنه منم میگم).
بعد از یک ماه گفتن تیم ویدیو نیاز به نیروی فرانتاند داره، وحید اومد با باقر (تیملیدر رسید) صحبت کردیم گفتن چون تازه جابجا شدی اوکیه اگه خودت دوست نداری دوباره جابجا بشی. واقعا هم حس خوبی نداشتم که برم چون تازه با بچهها صمیمی شده بودم. گفتم باشه یکم فکر کنم با بچهها هم مشورت کنم بعدا نتیجه قطعیش رو میگم. بعدا با مهتدی و باقر صحبت کردم، مهتدی میگفت اگه بری برای رشد خودت بهتره چون روی یه محصول جدا و تازه کار میکنی کارِت بهتر دیده میشه، اما خوب اینجا فقط همون صمیمیت هست. خلاصه قبول کردم و با بقیه بچهها صحبت کردم و یه وداع پرسوز کردیم رفتم به سفر قندهار.. نه چیز، رفتم تیم ویدیو که طبقه پایینی بود.
یک هفته بعد از رفتنم خبرش اومد که دیسِ رسید هم رسید! ماجرا این بود که به اندازه کافی سودآوری نداشت و رقابت با رقبایی که بعضا با رابطه و ضابطه جلوی فعالیت ما رو میگرفتن سخت بود. باقی بچهها هم جابجا شدن به «بلد» و «دیوار» و …
قرار بود محتوای ویدیویی توی اپ «بازار» اضافه بشه. بخش زیادی از بکاند جلو رفته بود و اندروید هم فکر کنم (دقیق یادم نیست) نسخههای اولیهش رو داده بودن. قرار بود توی وبسایت کافهبازار هم امکان تماشای ویدیو اضافه بشه. چالش ماجرا اینجا بود که نسخهی فعلی وبسایت در اون زمان فوقالعاده legacy بود (پایتون و جانگو و اینا). دو تا راه جلومون بود یکی اینکه توی همون کدبیس امکان تماشای ویدیو رو اضافه کنیم یا اینکه کلا بکوبیم از اول بالا بیاریم. منم که قطعا راه دوم رو ترجیح میدادم (با توجه به حسی که به وبسایت اون زمان داشتم).
معمولا چهارشنبهی آخر هر ماه یه مراسم دورهمی کل شرکت هست به اسم چهارشنبگان. همهی بچهها میان پایین و یه سری سوال جواب با حسام داریم و بعدش هم پذیرایی و جوجه و بازی و غیره. سوالجوابها معمولا حول مسائل محصولیه، چی شد رسید رو ترکوندیم؟ چرا ویدیو توی بازار که مخصوص اپ اندروید هست؟ به کاربر فعلی ضربه نمیزنه؟ مسئولیتهای اجتماعی شرکت چیه؟ اینکه حقوق بالا میدیم به استارتاپها ضربه نمیزنه؟ و اینجور مسائل. بازیها هم کنسول و بوردگیم و غیره.
قبل از ورودم به تیم ویدیو توی یکی از همین مراسم چهارشنبگان بود که با هاشم قدم زدیم و کلی صحبت کردیم. راجع به آیندهی وب بازار و کارهایی که میشه انجام داد، فریمورکی که خوبه باهاش پیش بریم و اینجور مسائل. نظر خودم این بود که با ریاکت باشه، اما هاشم میگفت توی بازار باقی محصولات vue هستن و بهتره یکپارچگی داشته باشیم. از طرف دیگه یادگیریش برای بچههای بکند راحتتره و کارهای جزئی رو خودشون میتونن پیش ببرن. راجع به seo و اهمیت ssr هم حرف زدیم، در نهایت قرار شد خودم تحقیق کنم بازم با نظر خودم باشه. رفتم یکم research کردم، برای ssr دو تا فریمورک بود یکی next.js بر پایه ریاکت و یکی هم nuxt.js بر پایه vue. داکیومنت هر دو رو کامل خوندم، چیزی که حس کردم nuxt خیلی کاملتر بود و از طرفی هم حرف هاشم درست بود و vue برای یکپارچگی محصولی بهتر بود. در نتیجه با همین سیستم جلو رفتم.
یه چالش اصلی سر راه این بود که بکند rest نداشتیم و اگه قرار بود ریرایت وبسایت spa باشه باید بکند rest هم نوشته میشد که اوایل مشکلات زیاد بود و کارش کند پیش میرفت، زیاد pend میشدم و بیکار موندن اذیت داشت. در عین حال بعد از یکی دو ماه یه نسخه اولیه ساده درآوردم که دیتا رو mock کرده بودم. با هاشم صحبت کردم و برای اینکه بیکار نمونم پیشنهاد داد همزمان وارد فرایند مصاحبه هم بشم.
این وبسایت جدید تقریبا یکی دو ماه پیش ریلیز شد، اگرچه همچنان کار زیاد داره و ویدیو هم هر از چندی فیچرهای جدید میخواد و اضافه میکنیم.
الان تقریبا نزدیک به یک سال میشه که توی تیم ویدیو و با بچههای بازار هستم. صادقانه بخوام بگم شاید به اندازه «رسید» صمیمیت و اون شوخیهای دوستانه نباشه، ولی شبیه به خانواده دومم شده. الان بعد از این همه مدت دیگه واقعا برام سخته بخوام روزی به رفتن فکر کنم. همینجوریش هم چند روز بچهها رو نمیبینم دلم تنگ میشه و شنبه جزو بهترین روزهاست برای من.
یه زمانی برام سخت بود بخوام حتی یک مزیت برای زندگی توی شهر بزرگ نام ببرم، ولی الان همکاری با آدمهایی که هر کدوم توی یه حوزهای واقعا حرفهای هستن چیزی بیش از لذتبخشه. اینکه آدمهایی باشن که با اطمینان بتونم بگم توی یه زمینهای از من بهترن و میتونم ازشون چیزی یاد بگیرم. تیمهای مختلف، تخصصهای مختلف و … هر جایی یه موضوع جدید برای یاد گرفتن و تجربه کردن هست. و اینهمه مزایا بدون اینکه حتی یک بار حس کنم کارمند سادهای هستم که قراره یه آقابالاسر بهم دستور بده، چیزی که همیشه ازش فراری بودم.
پینوشت: محتوای ویدیویی که داخل کافهبازار قرار داده میشه بصورت قانونی هست و حق تولیدکنندهی اون محتوا پرداخت میشه. شرکتهایی که باهاشون قرارداد داریم، با یه سری شرکتهای توزیع و پخش محتوا قرارداد دارن و اونا هم با تولیدکننده قرارداد دارن. حتی محتوایی که به کاربر بصورت رایگان ارائه میدیم، هزینهی تماشای اون پرداخت میشه.
تقریبا هفتهای ۱۰-۱۵ تا رزومه برای پوزیشن فرانتاند میاد. اوایل فقط مصاحبههای تلفنی بود و دو نفره میرفتیم (با هاشم یا مهتدی) که اگه مسالهای رو رعایت نمیکردم بهم فیدبک بدن. چطور خودمونو معرفی کنیم؟ به سوالات مختلف مصاحبهشونده چه جوابهایی باید بدیم؟ بعد از مصاحبه به چه سبکی کامنت بنویسیم؟ از قبل بپرسیم مصاحبهشونده شرایط مصاحبه رو داره یا نه؟ و خیلی مسائل این سبکی که برای هر موردی معمولا تجربهای بوده که باعث شده چنین تصمیماتی گرفته بشه. بعدا مصاحبههای مرحله یک حضوری رو دو نفره رفتیم و بعد هم مرحله دو اضافه شد. یه دورهای رزومه خیلی زیاد شد و دیگه مرحله یک رو یک نفره کردیم.
پلتفرم مصاحبه سایت workable هست. یه بکند داره، داخلش یه سری پوزیشن هست که هر کدوم یه پایپلاین مشخصی داره. وقتی کسی رزومه ارسال میکنه وارد مرحله اول پایپلاین میشه، یه نفر مسئول بررسی رزومه هست. در صورت تایید مرحله بعد میره و تو صف میمونه تا مصاحبه تلفنی ست بشه (پوزیشنهای دیگه ممکنه متفاوت باشن و مثلا تلفنی نداشته باشن). بچههایی که مصاحبه میرن قبلا توی google calendar تایمهای خالی خودشون رو میذارن و زحمت هماهنگی با مصاحبه شونده رو بچههای hr میکشن. علت اینکه گاهی مصاحبه دیر ست میشه پر بودن تایم بچههاست.
بعد از ارسال رزومه، ورکبل لینک شبکههای اجتماعی رو از داخل رزومه در میاره و یه سری لینکهای دیگه هم تا جای ممکن از داخل همین شبکهها استخراج میکنه. از پروفایلهای تخصصی مثل github و stackoverflow گرفته تا پروفایلهای شخصی اینستاگرام و فیسبوک و غیره. شخصی که رزومهها رو میبینه معمولا همهی فعالیتهای فنی اون شخص رو بررسی میکنه، نمونه کارها، کدهای اوپن سورس، سوالها و جوابهایی که توی stackoverflow داده و reputation فرد و غیره. معمولا باید یک نقطه درخشان پیدا بشه که فرد برای مصاحبه تایید بشه، حالا یا تو شبکههای اجتماعی حرفهای یا سوابق کاری فرد توی شرکتهای مطرح یا نمونهکارهایی که قابل رویت باشه و کیفیتش خوب باشه، یا رتبه خوب در مسابقات معتبر (حداقل پوزیشن فرانت به همین شکل بررسی میشه).
بعد از هر مرحله از مصاحبه، یه کامنت هم مینویسیم که تلاش میشه عین صحبتها و سوال جوابها رو تا جای ممکن بدون پیشقضاوت بنویسیم. خود سوالات الزاما فیکس نیستن و با توجه به مواردی که در رزومه اومده پرسیده میشه (نه تخصص مصاحبهکننده). بعدا این کامنتها توی یه جلسه کمیته فنی بررسی میشه که تعدادی از بچههای فرانت هستن و نظر میدن خوب بوده یا نه؟
اگه روزی درگیر مصاحبه شدین، پیشنهاد میکنم حتما این لینک رو بخونید و به انواع بایاس آگاهی داشته باشین.
توی این مدتی که درگیر این فرایند مصاحبهها بودم تجربهها و داستانها و اتفاقات مختلفی دیدم و شنیدم. مشکلاتی که مصاحبهشوندهها داشتن و بخاطرشون شرکت قبلی رو ترک میکنن یا مشکلات شخصی که تعریف میکنند. یکی همه کارها رو تنهایی میکرده و در نهایت بیاحترامی هم شده، یکی حقوقش رو ندادن دنبال شکایته، یکی استارتاپ قبلی مشکلات قانونی پیدا کرده تعطیل شده، یکی مشکلات خانوادگی داشته و افسردگی گرفته. هزار جور داستان و آدم مختلف که واقعا سخته بیاهمیت از کنارشون رد بشی و حس همدردی نداشته باشی. قسمت سختترش وقتیه که توی کمیته بخاطر ضعف دانش ریجکت کنیم. اوایل که وارد پروسه شدم، بعد از هر مصاحبه فکرم اونقدر درگیر بود که دیگه نمیتونستم یه خط کد بنویسم. بعدا به پیشنهاد هاشم مصاحبههام رو در انتهای روز گذاشتم که بعدش برم خونه. در نهایت هم برای کسی که ضعف دانش فنی داره، جز یه آرزوی موفقیت نمیشه کاری کرد.
مواردی هم واقعا توی مصاحبه به آدم انرژی میدن. یه آدم جا افتاده یا خوش برخورد، یه جوون پر انرژی و پر انگیزه و … این موارد رو قضاوت کردن گاهی سختتر میشه، هنوز چند مورد از آدمهایی که مصاحبه کردیم و در نهایت به خاطر ضعف فنی ریجکت کردیم رو فراموش نکردیم. صحبتش که میشه هنوزم میگیم ولی کاش فلانی رو میگرفتیم.
یه شایعه که زیاد توی لینکدین یا شبکههای دیگه شنیدم اینه که سن پایین میگیریم یا بخاطر درخواست حقوق بالا ریجکت میکنیم. ماجرا اینه که از کسی که تجربه کمتری داره توقع کمتری هم داریم، اما کسی که تجربه بالایی داره (سالهایی که کار کرده) و احتمالا حقوق درخواستی بالایی گفته توقع بیشتری داریم. در مورد حقوق درخواستی بالا باز هم فرایند مصاحبه ادامه پیدا میکنه و فوقش توی مرحله آفر مبلغ کمتری پیشنهاد داده میشه که یا قبول میکنه یا نمیکنه (البته بخاطر درخواست حقوق بالا ممکنه سوالات سختتر و بیشتر بپرسیم که در نهایت بتونیم تصمیم بگیریم چقدر میشه آفر داد؟). اما کسی که تجربه بالایی داره ولی توی بعضی مفاهیم پایه ضعف داشته باشه واقعا نمیشه انتظار داشت در آینده بتونه رفع کنه.
یا مورد دیگه اینکه که مصاحبهشونده مشکلی داشته ولی از نگرانی اینکه ما ناراحت بشیم یا احساس بیاحترامی کنیم کنسل نکرده و با وجود مشکلات اومده مصاحبه. والا بخدا برای مایی که آدم فنی هستیم و دوست داریم پشت مانیتور و سیستم بمونیم، یکی از بهترین خبرها وقتیه که یک مصاحبه کنسل بشه. برای ما صرفا یه تسک هست که یا کنسل شده یا عقب افتاده. در عین حال چیزی که توصیه میکنم اینه که حتما قبلش خبر داده بشه و کاری که خودم یه زمانی کردم رو کسی نکنه :دی
مورد بعدی هم نتیجه دقیق مصاحبه و فیدبک دادن هست که ضعف اون فرد چی بود و چرا ریجکت شد؟ واقعیت اینه که تعداد آدمهایی که در هفته مصاحبه میکنیم خیلی زیاد هستن، همینجوریش تا کامنت رو بنویسیم کلی خستگی فکری داره، فیدبک نوشتنی که بخوایم به صورت پیشفرض به همه بدیم دیگه واقعا طاقتفرساست. چجوری بنویسیم به طرف بر نخوره، چجوری بنویسیم که ضعف طرف رو بگیم و غیره. در عین حال مواردی که درخواست کنن فیدبک میدیم. موردی که همیشه گفته میشه اینه که برای فیدبک خواستن یا هر جور ارتباط باید به ایمیل ورکبل ریپلای زده بشه و همونجا جواب بدیم. (یه مورد رو اوایل نمیدونستم و توی تلگرام جواب دادم داستان شد! شانس آوردم اون زمان عین محتوای حرفاش رو توی ورکبل گذاشته بودم و لااقل داخل شرکت شبههای باقی نموند!!)
از موارد دیگه که بچهها شدیدا حساس هستن وقتی هست که مصاحبهشونده سعی میکنه با کاناال زدن و آشنایی دادن یا گاهی پاچهخواری و اینجور کارها نظر مصاحبهکننده رو جلب کنن! همهی اینجور رفتارها هم دقیقا توی کامنت مینویسیم به یه چند تا علامت تعجب در انتها ختم میکنیم!!! اگرچه باز هم ریجکتی معمولا بخاطر ضعف فنی هست. کسی که واقعا دانش فنی بالایی داره، اون قدر اعتماد به نفس داره که احساس نیاز به چنین رفتارهایی نداشته باشه.
در کل با توجه به زیاد بودن رزومه و مصاحبه هدف اینه که فرایند تا جای ممکن بهینه باشه و وقت کمتری گرفته بشه. اینکه مصاحبه تلفنی انجام میشه هم با هدف فیلتر سریعتر هست. هدفمون این نیست هر کسی که خفن بود رو بگیریم، هدف اینه آدم غیرخفن رو نگیریم. اینو میدونیم که با سیستم فعلی امکان ریجکت اشتباه هست، ولی مطمئنیم که امکان اکسپت اشتباه خیلی کم و ناچیزه.
بعد از مدتی که توی فرایند مصاحبه بودم چند تا نیرو گرفته بودیم و دیگه منتور کم آورده بودیم که وارد فرایند منتورشیپ هم شدم. دورهی منتورشیپ از یک هفته تا ۳ ماه متغیر هست. توی این دوره یه سری محتوای آموزشی داده میشه که فرد باید مطالعه کنه و یه سری تمرینات رو انجام بده. محتوای آموزشی شامل مفاهیم پایه هستن و با شرایطی که استخدام میکنیم معمولا بخش زیادیش رو افراد خودشون بلدن یا کار کردن. هدف اینه اون ریزهکاریهایی که کار نکردن هم مطمئن بشیم یاد گرفتن.
وظیفه منتور شامل پیگیری این فرایند میشه که فرد چیزی رو ignore نکنه یا از روی اون رد نشه. همچنین اوایل که وارد شرکت میشی فضا بزرگه و طول میکشه تا جا بیافتی یا با همه آشنا بشی. اوایل برای ناهار هم با نیروی تازهوارد میریم که زیاد حس تنهایی نداشته باشه. یه سری جلسات یکبهیک هم همیشه داریم که اگه مشکلی کمبودی ناراحتی چیزی بود راحت بگه و برطرف کنیم. باصطلاح فاز طرف رو بگیریم.
در انتهای دوره منتورشیپ هم یه پروژه آموزشی میدیم انجام بده و طی پروژه کیفیت کد رو بسنجیم و best practiceها رو بگیم و استایلگایدهایی که توی همه پروژههای شرکت رعایت میکنیم رو آموزش بدیم. وقتی دوره منتورشیپ تموم شد فرد وارد تیم خودش میشه و از اونجا به بعد ممکنه مسئول رشد و ارتقاء شخص دیگهای باشه.
قدیم یه سری محصولات کوچیک مثل رسید بود که کلا یک تیم بیشتر نبود. در حال حاضر «بازار» و «دیوار» و «بلد» محصولات اصلی شرکت هستن که هر کدوم شامل چندین تیم میشن. مثلا بخشهای مختلف اپ بازار از صفحات «جزییات برنامه» و «پرداخت» و «فهرست برنامهها» گرفته تا تیم «جستجو» و «تبلیغات در جستجو» و … هر کدوم از اینها، تیمهای جدا دارن که میکروسرویسهای خودشون رو توسعه میدن. به تیمهای محصول «بازار» اصطلاحا «قبیلهی بازار» میگیم. و تیمهایی که به این شکل جدا میشن هم Feature Team محسوب میشن.
توی کافهبازار به قول خودمون ساختار flat داریم و اونجور ساختار سازمانی و hierarchy نداریم. اینکه بخوام دقیقش رو توضیح بدم واقعا سخت هست چون توی هر محصول و هر تیم ممکنه متفاوت باشه. سعیام رو میکنم یه توضیح کلی بدم ولی احتمال اینکه جایی اشتباه کنم یا قانون کلی صادر کنم که در حالات خاص برقرار نباشه زیاده. چیزی که مهمه اینه که باید روحیه پیگیری داشته باشی و هر جا لازم شد با چندین نفر صحبت کنی تا خودت کار رو جلو ببری. من هم فقط بچههای فنی رو در جریان هستم و بچههای غیر فنی (پشتیبانی، محتوا، برندینگ، حقوقی، مالی، امکانات، تامینات، آشپزخانه و …) رو زیاد در جریان نیستم.
معمولا توی همهی تیمها (فنی و غیرفنی) یک نفر تیملیدر هست که هفته یا دو هفته یک بار با اعضای تیم جلسه داره. این تیملیدر مسائل و مشکلات انسانی افراد رو باهاشون صحبت میکنه و راهنمایی میکنه. غیر از مسائل فردی، هماهنگیهای گروهی رو هم انجام میده، از رزرو اتاق جلسات گرفته تا رهبری جلسات دیلی و پلنینگ و رترو و …
یه رول Tech Lead هم داریم (که ممکنه توی تیملیدر جمع بشه) که داخل تیم در مورد تصمیمات فنی نظر میده، اینکه چه لایبرری استفاده بشه، دیزاین چجوری باشه و غیره که البته برای این مسائل جلسات تشکیل میشه و همهی اعضای تیم نظر میدن اما نظر نهایی با Tech Lead هست.
فرایند رشد و ارتقاء اعضای هر تیم به عهدهی تیملیدر هست. اینکه بچهها رو راهنمایی کنه به چه سمتی برن و چه چیزایی میتونن بخونن یادگیری داشته باشن تا بعدا بتونن ارتقا بگیرن. در عین حال از اونجا که معمولا تیملیدرها خودشون ممکنه مثلا بکندی باشن، در مورد بچههای غیر بکندی ماجرا چیز دیگهس.
مثلا توی یه محصولی ۷-۸ تا تیم هست، اکثریت این تیمها بکندی هستن اما داخل هر کدوم یا بعضیاشون ممکنه یک نیروی فرانت هم داشته باشن. همهی فرانتاندهای این تیمها با همدیگه یک چپتر رو تشکیل میدن و یک نفر رول Chapter Leader داره که تصمیمات فنی کلی رو هدایت میکنه و همچنین راهنمایی فرایند رشد و ارتقاء رو هم با اعضای چپتر جلو میره و باهاشون جلسات یکبهیک داره. (مسائل انسانی همچنان به عهدهی تیملیدر خودشون هست)
هر تیم یه رول مدیر محصول هم داریم که راجع به فیچرهایی که باید پیادهسازی بشه و سمتشون بریم نظر میده. مدیرمحصولها خودشون جلسات استراتژی و غیره دارن که هماهنگ باشن کل محصول به یک جهت حرکت کنه. جلسات با تیمهای مارکتینگ و محتوا و حسام و غیره هم دارن. ساختار بچههای مدیر محصول از باقی بچههای فنی معمولا جداست، همگی سابقه کار فنی دارن و بحثهای فنی رو کامل شرکت میکنن اما به عنوان مدیر محصول فعالیت فنی کمتری دارن (مگر مواردی که ماهیت محصول زیرساختی باشه که مدیر محصول ممکنه همون تیملیدر یا Tech Lead باشه).
سالی دو بار فرایند ارزیابی عملکرد داریم. به این شکل که فاز اول هر کسی کارهایی که توی ۶ ماه گذشته انجام داده و چالشهایی که برای انجامشون برخورد کرده رو مینویسه و تا ۷ نفر از افرادی که در جریان این فعالیتها بودن و میتونن نظر بدن رو mention میکنه (سامانه مخصوص اینکار داریم). فاز بعدی ارزیابی همکار هست که هر کسی راجع به کارهایی که mention شده نظرشو مینویسه و راجع به کار اونها نظر میده. در فاز سوم یه سری کمیتههای کالیبریشن تشکیل میشه (تیملیدرها، چپترلیدرها، vpها و …) که این ارزیابیها رو میخونن و راجع به افراد نظر میدن که الان توی چه سطحی هست و ارتقاء میگیره یا نه؟
سطحبندی افراد عددی هست و پوزیشنهای مختلف متفاوته، مثلا فرانتاند ۳ سطح صفر و یک و دو داریم، بین این سطوح هم یه سری پلههای بینسطحی داریم. هر پله که بالاتر میری شامل افزایش حقوق یا سهام تشویقی هم ممکنه بشه، ضمن اینکه هر سطحی تعاریف و مصداقهای خاص خودش رو داره. اینکه چه تواناییها و فعالیتهایی باید داشته باشی تا به اون سطح برسی. در عین حال با توجه به پیچیده بودن ماجرا، برای استخدام یه پوزیشن سنیور باز کردیم و اگرچه داخل شرکت کسی رسما از این القاب نمیگیره اما کسی که بتونه به عنوان سنیور وارد بشه احتمالا از سطوح بالاتر شروع میکنه. سطح افراد هم محرمانه هست و غیر از خود افراد فقط شخص درگیر روند رشدشون از سطح اونها خبر داره.
این کلیات روند ارزیابی و ارتقاء بود، در عین حال جزییات زیاد داره.
یه سری شایعات هست همیشه راجع به کافهبازار زیاد میبینیم و میخونیم. معروفترینشون ویروسی بودن بازار هست. این مورد اونقدر بین مردم جا افتاده که حتی بچههایی که میان داخل کافه هم بعضا ممکنه شک داشته باشن که درسته یا نه؟ یه مورد جالبش یکی از بچهها میگفت که وقتی اومده شروع کرده توی همهی کدها رو خوندن و زیر و رو کردن (دسترسی همهچی برای همه بازه) ببینه واقعا کدی برای جاسوسی هست یا نه؟ اصل ماجرا به خیلی سال پیش برمیگرده زمانی که بچهها تصمیم میگیرن اپهای داخل گوگل رو دانلود کنن و توی بازار ارائه بدن. یه سوتی که میدن google services به ازای هر اندرویدی باید نسخه متفاوتی میبوده اما نسخه یکسانی رو برای همه میزاریم. همین اشتباه باعث میشه خیلی از گوشیهایی که بازار داشتن و google services رو آپدیت کردن به مشکل بخورن. بعدها هم که فروشندههای موبایل برای منافع خودشون به این شایعه دامن زدن تا در قبال دریافت مبلغ اضافی، خودشون برای مشتری یه سری برنامه نصب کنن.
یه مورد دیگه وقتی هست که آپدیت یه برنامهی خارجی توی بازار زودتر از google play میاد. یه امکانی که برنامهنویسها دارن امکان stage rollout یا soft release هست که نسخه جدید برنامهشون رو به گروه خاصی ارائه میدن یا کمکم ریلیز میکنن که بتونن جلوی باگهای احتمالی رو بگیرن. توی این موارد احتمالش هست که بازار اون نسخه جدید رو زودتر به همه ارائه بده. (تازگی یه سوتی دیگه داده بودیم که آپدیت تکراری میدادیم و اصلاح شد)
یه سری شایعات مربوط به جاسوسی کردن بازار میشه، اینو مطمئن نیستم از کی و چرا شروع شده، حدس میزنم تحت تاثیر بیاعتمادی رایج مردم باشه. در عین حال گرفتن یه سری از دسترسیها از کاربر باعث سوءظن بیشتر میشه. مثلا دسترسی دوربین که برای اسکن بارکد برنامه از وب گرفته میشده، یا دسترسی لوکیشن که برای پیشنهاد برنامه بر مبنای موقعیت مکانی گرفته میشده، دسترسی خوندن پیامها که برای خوندن کد فعالسازی (بعد از لاگین) گرفته میشده (جدیدا به اندروید یه امکانی اضافه شده که بدون نیاز به این دسترسی بتونیم فقط پیامهایی که خودمون میفرستیم رو بخونیم. احتمالا اون کد عجیب انتهای پیام رو دیده باشین).
تازه یک سال و خوردهای هست که اومدم کافهبازار. خیلی تجربیات جذاب و متفاوتی داشتم، با بهترین آدمهایی که توی زندگیم دیدم همکار بودم، روزهای خوب زیاد داشتیم. نمیگم کافهبازار ایدهآل و مدینهی فاضله برای همهس، ممکنه یکی با این کالچر و فرهنگ سازگار باشه و یکی خوشش نیاد. ممکنه ضعفهایی هم داشته باشیم، اما به قول یکی از بچهها هیچ مشکلی نیست که بیان کنی و قبل از تو کسی بهش فکر نکرده باشه. اینکه هر روز میبینی یه مشکلی حل میشه خودش بهترین حسّی هست که توی فضای کاریت میتونی داشته باشی.
گاهی روزهای سخت هم داریم، شب ریلیز که تا دیروقت ممکنه سر کار بمونیم، یا بعضی وقتها که یه سرویسی down میشه یهو استرس و نگرانی رو توی چشم چند نفر میبینی که لپتاپ به دست از اتاق جلسه به سمت میزشون میرن. تا حالا زیاد شده کسی سوتی بدی بده، ولی مورد نداشتیم کسی بخاطر اشتباهش مثلا توبیخ بشه، توی این یک سال یک مورد هم ندیدم کسی حتی دنبال مقصر بگرده. جملهی «از اشتباهاتمون درس میگیریم» واقعا در حد شعار نبود، در عمل میشه حسّش کرد.
چیزی هم که اینجا نوشتم بیشتر فرایندهای استخدام و رشد و ارتقاء بود برای کسی که از بیرون این نگرانیها رو داره، ولی در عمل خیلی کم پیش میاد ذهنت درگیر اینجور مسائل بشه یا دغدغه داشته باشی. همیشه خیالت راحته که اگه کارِت رو خوب انجام بدی بالاخره دیده میشه و رشد میکنی. همهی همکارانت (فنی و غیرفنی) آدمهای باسواد و با فرهنگی هستن.
کافهبازار برای من بیشتر از محل کار، یه فضای زندگی کردن شده. فعالیتهای تفریحی بین بچهها خیلی زیاده، نه در حدی که زمانمون به بطالت بگذره و حس کنی داری عمرت رو هدر میدی، ولی در حد نرمال که هر از چندی با بچهها بیرون بریم و تفریح کنیم و بالانس خیلی خوبی بین کار و زندگی برقرار باشه. چالشهای فنی و جذاب خیلی زیاد هست و خارج از حوزه کاری خودت هم همیشه چیز جدید میبینی و یاد بگیری.
یه مسالهای که زیاد بهش برمیخوری وقتی هست که چند چیز کوچیک یه اتفاق بزرگ رو رقم میزنه، وقتی در قالب کل یه حرکت منظم و متحد رو میبینی. اگه منظورم رو متوجه نمیشین پیشنهاد میکنم کارتون پاکوچولو رو حتما ببینین. توی وبسایت جدید بازار هم ببینین :دی. اینقدر هم شایعهسازی نکنید، ما اون هیولاهای وحشتناکی که خیلیها میگن نیستیم :دی