С первым местом работы мне повезло, хотя я просто пошел, куда взяли. Сейчас понимаю — если бы ошибся, то потерял бы бесценное время. Прошло 15 лет, и я сам руковожу компанией, куда приходят собеседоваться джуны. Их критерии выбора такие же легкомысленные, как у меня когда-то. Поэтому я расскажу о том, какие бывают it-компании, и как проходить собеседования, чтобы потом ни о чем не жалеть.  На фундаментальном уровне всю отечественную digital-индустрию делят между собой три типа компаний. Конечно, встречаются представители, которые совмещают в себе разные черты и находятся на своеобразном стыке, вроде IT-отделов банков, но о них я здесь говорить не стану.  При упоминании IT у людей, не связанных с этой сферой, перед глазами всплывают гиганты из Кремниевой долины вроде Майкрософт и Эппл. Крутые офисы с гамаками, бесплатным кейтерингом, спортзалом, массажистами и неиссякаемыми запасами смузи — именно так им видится работа в техсфере. Всё это верхушка айсберга, которую мы знаем благодаря сериалам, блогам и публикациям в СМИ. Самые яркие представители в России — компании из экосистемы Яндекса, лаборатория Касперского, Mail. ru Group и другие. Объединяет их то, что они разрабатывают востребованный цифровой продукт для конечных пользователей. Отсюда и название.  Помимо крутого офиса, продуктовые компании привлекают своим творческим духом. Здесь возможна работа по настоящему аджайлу с сертифицированным скрам-мастером и сопутствующими ритуалами вроде грумингов бэклога, стендапов и ретроспектив. К плюсам относят гибкий график — от вас не потребуют ходить к четкому времени, а физическое присутствие возможно потребуется только на упомянутых митингах.  Среди недостатков принято выделять багфиксинг и поддержку легаси, но джуниор-разработчику не стоит об этом переживать, потому что в хорошую продуктовую компанию невозможно попасть с нуля. Разработка ведется в сильной зависимости от рынка и требует быстрой проверки гипотез, а для этого нужны программисты с большим опытом. Ведь чтобы держаться на плаву, продукт должен быть лидером на рынке, следовательно, качественным, поэтому нянчиться с джунами здесь не станут.  По стечению обстоятельств джуниор-разработчика могут взять в стартап, но большинство таких компаний умирают, не дожив до запуска MVP. В один день компания не получит очередной раунд инвестиций, вы и латте допить не успеете, как на дверь офиса повесят амбарный замок. Примеров этому масса — компания, которой мы расширяли IT-отдел, внезапно не получила денег от купившей её Mail. ru Group и закрылась. Даже опытному специалисту не очень приятно внезапно оказаться на рынке труда, что же говорить про джуниоров.  В отличии от продуктовых компаний, продакшны занимаются заказной разработкой для клиентов. Здесь проекты разного масштаба, типа и сложности — сегодня вы делаете онлайн-магазин, а завтра — мобильную игру. Программирование для продакшнов — ключевая компетенция, поэтому большинство сотрудников будут вместе с вами писать код. Программисты занимают разные должности по вертикальной структуре: есть техдиры, архитекторы, тимлиды, аналитики, тестировщики.  Сюда реально попасть без опыта коммерческой разработки. В продакшнах бывают собственные программы обучения, наставники, внутренние аттестации. Для молодого специалиста составят индивидуальный план развития с чекпоинтами и выделят ментора, который будет проверять все коммиты, проводить код ревью и подсказывать лучшие практики. Поначалу вас посадят на несложный проект, скорее всего, это будет техническая поддержка существующего ПО. По мере роста компетенций вам начнут доверять вещи посерьезнее.  В конечном итоге продакшн продает часы разработчиков, поэтому времязатраты по каждой задаче должны быть абсолютно прозрачными. В таких компаниях принято вести строгую систему отчетности — долго медитировать над задачей не позволят. 
Некоторые аутсорсинговые компании работают по аутстаф-модели, это значит, что продавать будут не ваши часы, а конкретно вас, подобно тому как плантаторы продавали негров клубы продают футболистов. Это может сильно деморализовать.  Digital-агентства работают по принципу «одного окна» — клиент приходит сюда с каким-то запросом по развитию бизнеса. Агентство может заниматься созданием концепции бренда, выстраиванием системы интернет-продаж, графическим дизайном, айдентикой, продвижением, маркетингом, консалтингом, разработкой и внедрением ПО. Такая компания может предлагать все услуги из этого списка, а может работать только по двум-трём направлениям, а остальные отдавать на аутсорс.

Во главе угла здесь клиентский сервис, поэтому digital-агентства умеют работать с крупными заказчиками. Работа над проектом для известного бренда — хороший повод похвастаться перед друзьями в баре. Но у этой медали есть и обратная сторона — агентства стремятся выстраивать долгие отношения с клиентами, и не исключено, что по условиям тендера придется сидеть на техподдержке одного проекта годами.  Внутри компании вы будете работать бок о бок не только с программистами, но также с менеджерами, дизайнерами, тестировщиками. Находить общий язык придется не только с коллегами — вас также будут брать на переговоры со стейкхолдерами из финансового и маркетингового отдела заказчика. В результате soft skills будут неизбежно улучшаться.  Уровень hard skills тоже повысится при условии, что в компании стабильный стек технологий и есть время в них углубиться. Главное, чтобы в команде были более опытные разработчики. Дело в том, что российские агентства любят делать вид, что все работы ведутся инхаус и заявлять о 25 штатных разработчиках, а на самом деле иметь только 5 менеджеров и отдавать почти всю работу на фриланс низкого качества. Или, если речь идет о компаниях специализирующихся на SEO, то стек будет очень разнородным и углубиться ни в одну CMS или фреймворк не получится.  Независимо от типа компании, вы неизбежно столкнетесь с переработками. Перед вами будут ставить несдвигаемые дедлайны, вся разница только в том, кто определяет сроки. В заказной разработке это стейкхолдеры, а в продуктовой — инвесторы. Все чем-то рискуют — агентства и продакшны беспокоятся о своей репутации, стартап боится не получить следующий транш инвестиций.  Об этом не принято говорить, на собеседовании этот момент постараются сгладить или вовсе умолчать о нем. Некоторые работодатели маскируют овертаймы всевозможными «плюшками» — к примеру, содержат менеджеров по счастью, которые должны развлекать программистов, а также раздают стейки на ужин и развозят сотрудников по домам на такси.  Дело в том, что в жизни любой компании наступают моменты, когда скорость становится важнее результата, и требуется понизить качество, чтобы все успеть. Можно ныть, что компания — галера, а кругом неэффективные менеджеры, но разработка ПО по своей природе — стрессовое занятие. Будьте к этому готовы.  Если вы в первую очередь программист, и не видите себя в управлении, то лучше всего идти в аутсорс-продакшн, так как в крутой продукт федерального масштаба вас всё равно не возьмут. Если хотите руководить процессами и общаться с людьми, то идите в агентство.  Снеки, настольные футболы и плейстейшены в офисе не должны быть решающим фактором при выборе первой компании. Намного важнее понять, дадут ли вам расти на новом месте. Поэтому перед собеседованием посмотрите сайт работодателя, чтобы определить, какой у него портфель услуг, кто типовой клиент и какие технологии используются. Изучите страницы в соцсетях, чтобы понять, подходит ли вам корпоративная культура.  Перед техническим собеседованием настройтесь на то, что придется выполнить небольшое практическое задание. Не переживайте, если не будет получаться — в первую очередь здесь смотрят на ход ваших мыслей, главное не молчать. Не спешите радоваться, если вопросы легкие — возможно в этой компании вы быстро достигнете потолка. Не стесняйтесь спросить у эйчара, будет ли наставник и план развития, как будет меняться зарплата в первый год, какими задачами будете заниматься первые три месяца. 

И помните, невозможно стать крутым разработчиком только на рабочих задачах, нужно постоянно вкладываться в саморазвитие, читать книги и разбираться с инструментами в свободное время. Всё обязательно получится. Аутсорс-продакшн