Как меня увольняли и прочие байки

[Об авторе: Владимир Железняк — 17 лет в отрасли, много всякого повидал, был многократно уволен, взлетал и падал.]

Здесь я собрал лёгкое новогоднее чтиво в формате коротких историй. Часть из них смешная, часть — грустная, часть — полезная. И здесь будут личные и болезненные истории, чем поделиться для меня было сложно.

Если вы ищете чистого знания в концентрированном виде — начните лучше отсюда. Все эти истории были со мной, и не все вошли в официальное резюме. Если вы узнали здесь себя, а помните что-то иначе — я спорить не буду. Часть историй уже была у меня в FB.

Скучная вводная

Школу я закончил забитым аутсайдером из бедной проблемной семьи. Я убегал от реальности в компьютер, друзей у меня не было, и всё чему я научился в общении и прочим софтскилам — это уже целенаправленно после школы и ХНУРЭ.

Первую прогу я написал в 1991 на МК-61, потом были ZX, Агат-7, Корветы и прочие БК0010-0100. Потом ВУЗ и первая работа.

Вместе к Марсу

В начале 1991 я вышел в финал всесоюзного конкурса «Вместе к Марсу». Сто человек финалистов лет по 13-16, представители НАСА и живые космонавты. На сцену выходит девочка, суть её проекта «как бы не заразить Марс земной микрофлорой».

Она произносит: «Нужно по дороге на Марс космонавтов стерилизовать». Зал замирает, космонавты краснеют. Она видит, что что-то пошло не так, и торопливо добавляет: «А на обратном пути стерилизовать еще раз!».

Мне кажется, присутствующие космонавты не одобрили.

Свидание на работе

Был я тогда интерном в офисе софтверного гиганта. По сути, использовал любую возможность поработать на компе, т.к. компы тогда были для частных лиц практически недоступны по деньгам.

Так вот, к нашему синьору, суперспециалисту, пришла поздно вечером девушка. Очень красиво выглядела, вкусно пахла и, вообще, я ему завидовал... Он начал показывать ей особенности работы Excel и пару багов в работе Delphi 1.0 c различием с MS VC. Видать, она ожидала чего-то совсем другого от этого вечера, я до сих пор помню её ошарашенное выражение лица.

Конфликт ожиданий — страшная штука, что в личной жизни, что на работе.

Комп не включается

Как-то осенью прихожу в офис первым, в офисе, как всегда, холодно. Клац обогревателем, клац компом. Комп не грузится, пишет про проблемы с питанием. Лезу в биос, там жалоба на температуру проца. Нипонял? Говорит, минус два. Врёт, говорю грузиться и пофиг на температуру. Клац чайником — а там лёд! Таки комп не врал — холодные окна и холодные батареи сыграли свою роль.

Конечно, потом от старших товарищей нагорело за такое принудительное включение.

Зима близко

В сентябре пришли тепловики, проверили батареи и ушли со словами «как заплатите за прошлый год — включим». Владелец здания ответил «денег нет». Тепловики ушли. В конце октября ушла часть арендаторов. Владелец заплатил тепловикам, те включили батареи. Как выяснилось, трубы уже лопнули, и кипяток пролился через несколько офисов. Тепловики отключили батареи и ушли со словами «как заплатите за ремонт — включим». Владелец ответил «я уже вам заплатил, денег нет». Мы замёрзли, не стали дожидаться окончания и переехали.

Потом там от перегруженной обогревателями проводки пожар был, и владелец сменился. Экономичность и конструктивная позиция — наше всё.

Девушки

Не складывалось у меня с девушками. Ну совсем сплошная френдзона. Вот потенциальным тёщам очень нравился, а толку... В институте это еще плюс-минус терпимо было, а вот на первой работе в режиме «дом-работа, работа-дом», где на работе пятеро мужиков — совсем тоскливо.

От безнадёги пошел в клуб практической психологии, а в какой-то момент начал бегать на пять встреч с тремя разными девушками за неделю. Научился общаться, выбрал, с тех пор прошло 17 лет, всё хорошо.

Лифт

Прихожу в офисное здание советской постройки в субботу. Вахтерша радостно: «А у нас по приказу директора лифт на выходных выключен». Ну ок, поворачиваюсь к лестнице на десятый. Мне в спину: «за 50 копеек могу включить».

Способы самоутверждения мелких начальников очень разнообразны, а способы контроля низового персонала часто глючат.

Игра с ИИ

На первой работе мне сказали: «Мы пишем игру, а ты должен написать искусственный интеллект для неё. Юниты должны сами познавать мир и выводить законы этого мира, нейронные сети, генетические алгоритмы, всё такое». Интернет уже какой-то был, что-то нашёл, прочитал, сделал. Как-то додумался (джун), что несмотря на красивые слова в описании нейросетей, начинать нужно с малого. Ок, ставим в ряд десять генномодифицированных юнитов, не знающих физику, и даем задачу кидать камни в мишень. Рассчет был на то, что они экспериментально выведут закономерности баллистической траектории, а на следующем этапе — нейросеть вообще будет управлять не углом и силой броска, а непосредственно мышцами.

Так вот, все десять юнитов кинули камни строго вверх, и, спустя короткое время, погибли. Мораль — рандомизируйте исходные.

Задача для железячников

Приходит дизайнер к тимлиду: «Что-то у меня глаза сегодня болят, пойду-ка я домой». Тут сразу несколько человек хором: «И у меня тоже сегодня такое!» Начинаем разбираться — на всех мониторах раз в две секунды изображение на долю секунды расфокусируется. Практически незаметно, очень быстро, но каждые две секунды. У всех в команде высшее образование, ТОЭ, радиотехника и прочие доставшиеся с трудом редкоиспользуемые знания. Ессно, сразу же думаем на наводки — ЭЛТ мониторы к ним чувствительны. Эксперименты показали, что глючат все мониторы синхронно, а переход на UPS от беды не спасает. Здание — обычное жилое в центре, на первом этаже — наш офис и магазин. Вызов трех разных бригад электриков тоже ничего не дал.

Поиск источника проблемы у нас занял несколько месяцев. Если есть желание почесать извилины — предлагайте эксперименты. Если нет — я потом выложу подсказки и решение.

Экономика игры

У нас не было ни тасктрекера, ни репозитария — про них тогда вообще никто у нас не слышал. PM сконцентрировался на технологии, её и пилил. Многие идеи опережали конкурентов на годы. Но у нас даже общей концепции игры не было. Мы демократически спорили, какого жанра она должна быть — шутер, стратегия и т.д. Демократически договориться не получалось, мы откладывали решение дальше и дальше...

Я в эйфории ничего плохого не замечал — первая работа, интересный код, первая зарплата, которая больше чем суммарная родителей. Впервые за многие годы у меня обувь недырявая появилась.

Владельца у нас было два: один наш интеллигентный вариант Нового Русского и американец. Первый как-то сказал: «Ну сколько разработка потянет? Ну 10к зелени? Если не выгорит — то столько за день зарабатываю. А если выгорит — то будем миллионерами». Про 10к — преувеличивал, конечно, но пофигизм к нам точно был.

Тут пришёл крах доткомов, и американец вышел из проекта. Оставшийся владелец напрягся и выдал: «Денег есть на полгода, максимум — год. Релизьтесь быстро!» Мы целыми днями спорили о геймдизайне, а разработка почти остановилась.

На 13:00 30-е декабря назначили большое совещание с задачей чётко сформулировать цель. В 13 начальника нет. В 14 — нет. В 14:30 таки отправили sms, очень дорого было. В 15 он появился: «Биг босс заболел, провел две недели в больнице с воспалением лёгких. К моменту выздоровления у него родственники отжали 5/7 собственности. Денег и помещений на проект больше нет. До 18:00 — забэкапить, отформатировать, сдать железо, получить последнюю зарплату». Так меня уволили в первый раз. Как сейчас бы сказали, стартап лопнул. Шок, ужас перед возвращением в бедность, неуверенность ни в себе, ни в будущем.

Купи-продайка

Звонит друг: «У тебя же диплом по защите информации? Тут у моих знакомых база полетела, отчет сдавать через неделю, а у них разработчик уехал то ли в Австрию, то ли в Австралию».

Прихожу: полуподвал в центре, узкие проходы между заваленными бумагами столами. Показывают «превышен лимит операций, обратитесь к разработчику». Сколько с них взять? Ну пусть будет $5 задатка и еще столько же по окончании.

Дебаггером нашел проблему: счетчик на количество записей в одной таблице. Увеличил порог в условный миллион раз, проверил, полез смотреть записи в базе. Тааак, купили эшелон нефти, продали его же, прибыль охрениальд долларов. Купили три башенных крана, продали, прибыль офигительна. И тут я их спас за десять баксов. Обидно, и дураком себя чувствуешь.

Переездец

В одной компании мы переезжали в новый офис. Директор решил, что электрику и локалку мы протянем сами. Для этого позвал самых доверенных сотрудников. Самых доверенных — это самых долгоработающих: тимлидов и пиэмов с самой высокой зарплатой. Но есть нюанс: хороший программист и менеджер не всегда хороший электрик. В результате, мы три дня провозились, а другие сотрудники к нам бегали с рабочими вопросами.

Думаю, это было экономически провальное решение. С другой стороны, я не знаю всех обстоятельств, да и ошибаются все.

Электростанция

Предлагали мне проверенные знакомые работу на электростанции. Командировка на полгода. По возвращении — много денег. Достаточно для покупки большой квартиры в престижном районе, машины, полгода отдохнуть и еще оставалось на открыть свой бизнес.

Но был один нюанс — электростанция рядом с российской военной базой. Кстати, жить как раз на этой базе. Рядом — военная база НАТО. Кругом — Ирак и затухающая «Буря в Пустыне».

Риск, вроде бы, небольшой. С другой стороны — квартира у меня есть (родительская), машинами не увлекаюсь, к своему бизнесу не стремлюсь. Зато есть любимая жена, и полгода командировки вряд ли упрочат наши отношения.

Тогда я понял, что не все деньги стоит зарабатывать, — и отказался.

Нулевая розетка

В новейшем офисе класса А было холодно. Автономная бойлерная пыхтит вовсю, кодим в перчатках. Тепловики говорят: «Мы рассчитывали на нормальные стены».. Строители: «Мы рассчитывали на нормальное отопление». Измерили температуру в розетке за гипсокартоном — ноль. По итогу, зимой промальпинисты обшивали здание утеплителем за большие деньги.

Не только в IT бывают нестыковки и кривое проектирование, и исправление часто дорого стоит.

Джуниор в возрасте

В самом начале века, когда такого кадрового пылесоса еще не было, к нам устроился джун в возрасте. Заметно старше, чем мы все, буквально тридцатидвухлетний старик. Теорию сдал, практику худо-бедно написал, по резюме — пять лет опыта по профессии. Пять лет опыта — и джун?! Это могло бы удивить, но мы слишком задумались над возрастом.

Загадка раскрылась чуть позже. Человек понимал, что такое переменная, операторы, циклы... Но концепцию массива мы донести не смогли. Пробовало несколько человек — никак. Уволили через неделю. Редчайший случай, когда терпения и труда не хватило для преодоления низкого IQ. Редчайший.

Книжное знание

На собеседовании джун-кандидат весьма хорошо сдал теорию, наверное даже на миддла. Потом сел писать практику — чувствую, что-то не так. Присмотрелся — а он клавиатуру не знает, кнопки по одной очень медленно ищет.

Не спать!

Был сотрудник, вполне толковый парень. С одним недостатком — безынициативный. Совсем. Если не дать ему задачу вовремя или не проконтролировать выполнение — так и сидел без дела. И поймал его как-то директор на сне на рабочем месте. Разбудил, рассказал, что на работе спать нельзя, и ушел.

Сотрудник понял и осознал. На следующий день я его поймал за тем, что он смотрит немигающим взглядом на пустой десктоп.

«Время на рабочем месте» — самый популярный и один из самых дурных KPI.

Гений

Один коллега, когда знакомился с проектом и читал код, ткнул пальцем в строчку — и сказал «Вот тут мы объект освобождаем, а вот тут, через пять строк, — опять используем. Если за это время компилятор что-то запишет по этому адресу — будет ой». Этот код до него пилило пять человек и использовали десятки тысяч конечных пользователей. Никто не мог воспроизвести, хотя раз в несколько месяцев кто-то видел странный Access Violation.

Этот коллега видел на много ходов вперед и был на грани гениальности. При этом он раз в час ходил курить минут на 20-30 и забирал при этом с собой своего друга. За внешностью не следил даже по айтишным стандартам и с удовольствием лез на конфликт с обществом. Например, он дочку назвал в честь прошлого проекта и с гордостью показывал паспорт с её именем. Имя необычное, я больше таких ни разу не слышал.

Через полгода его уволили, и никакие навыки программирования не смогли перевесить его стиль общения.

Подоконник

Как-то летом в офисе, глядя в окно, разговорились с сотрудниками. И от одного прозвучала фраза «я ни за что не соглашусь переночевать там снаружи, на подоконнике».

Начали выяснять, есть ли какие-то условия, при которых он согласится? Например, если по зданию будет ползать ядовитая эфа, и подоконник будет единственным способом спастись?

Слово за слово, и выяснилось, что за месячную зарплату он таки согласится. Еще и за свои деньги купит в альпмагазине обвязку и веревку для страховки.

Категоричность — это всегда ужасная ошибка! ;)

Пароль на тестовый сервер

Пришёл к нам как-то программист на работу устраиваться. Первое впечатление — вроде толковый, теорию ответил хорошо. Перешли к практике. Практика — это несколько простеньких законченных примеров по работе с базой данных. Дали задание, предупредили, что все шесть заданий делать необязательно и вряд ли вообще возможно, добавили традиционное «чай — там, туалет — там, будут вопросы — обращайся» и оставили его работать.

Примерно через час подошли к нему. Как и ко всем остальным, просто на всякий случай.

На вопрос «ну как?» последовал ответ, что «не получается». Как выяснилось, на нашем сервере сменился пароль к тестовой базе, и кандидат этот час пытался пароль подобрать перебором.

Сиквел

Парня из предыдущей истории мы таки взяли. Работа с ним требовала особых умений. Главное — не ошибиться в исходных и часто контролировать. А это — время.

Умение задавать вопросы — для меня это один из критериев для разделения синьоров и мидлов. Синьоры обычно знают свои силы и не боятся выглядеть глупо. А тут...

С другой стороны — он не боялся нудной работы. Мог неделями выполнять однообразные действия и не уставать. Иногда у меня вообще было желание взять у него кровь на анализ. Вдруг — не человек?

Переспорить верующего

Был у нас истинно верующий — новообращенный в одну из экзотических ветвей христианства. Мы его как-то вопросами и логикой загнали в угол. Он и сказал: «Я не знаю, как это совместить непротиворечиво». Умный парень. На следующий день он сходил к своему наставнику и притащил нам ответ: «так, так и так. А хотите подробнее — вот книжка с развернутым ответом. А еще лучше — давайте я наставника к нам в офис приглашу». Мы еле отмахались.

После этого я с интересом слушаю споры C++ vs Pascal, Linux vs Windows, Android vs Apple etc. Обычно предмет спора меняется быстрее, чем мнение фанатов.

Верующего не переубедить логикой. И не важно, во что он верит.

Почему так долго?

На одном продуктовом проекте у нас эстимейтинг выглядел так: команда подготавливает оценку сроков, а директор затем проверяет, задает вопросы и уточняет. Хорошая идея, а вот реализация звучала как «Тю! почему так долго?! Вы что, вот в этой фигне будете копаться целую неделю?!» Эти слова действовали, и сроки сильно сокращались еще на этапе планирования.

Потом мы не успевали к назначенному сроку, и я получал выговор. Я переживал по этому поводу и за несколько лет очень здорово приловчился записывать эстимейт на старте проекта и сравнивать с реальным результатом. Да, это трудоемко, но с числами в руках проще разбираться в причинах. Всегда получалось соотношение около 1 к 3. Для меня это было ужасно, и я старался каждый раз на старте предусмотреть все нежданчики. А потом узнал, что на соседних проектах такой же коэффициент выходит, и успокоился. Держал два эстимейта — для директора и для себя. Большого бизнес-смысла в оценке всё равно не было — продуктовая компания всё-таки.

ИБД

Знаете, есть такая модная идея — работать стоя? Так вот, на соседнем проекте PM освоил практику работать лёжа. Для этого достаточно сесть в обычное офисное кресло, облокотиться на спинку и чуть-чуть сползти вниз. Потом еще чуть-чуть. Продолжать до тех пор, пока лопатки не окажутся на сидушке.

Прикольно было наблюдать, как новые сотрудники его отдела перенимали эту практику. Первые дни сидели ровно, а потом недели за две тоже сползали вниз.

Этот PM вовсю практиковал Имитацию Бурной Деятельности по запросу начальника. Т.е. он всегда мог рассказать, почему эта задача занимает именно столько и пойти дальше читать книжку. Он вообще гордился своими навыками ИБД.

Это продолжалось несколько лет, потом он сменил работу и ИБД забросил. По отзывам — сейчас очень неплохой менеджер.

Три по пятьдесят

Была у нас такая практика — приходит сотрудник к директору и говорит: «Хочу больше зарплату», и если таки да, то директор отвечал: «Ну ок, со следующего месяца у тебя будет +$50, еще через месяц — еще +$50, и потом еще +$50». По числам само +$150 тогда было вполне хорошо. Вот только получал ты их в полном объеме через три с половиной месяца. Вроде и повысили, а вроде и фигвам. Демотивировало жутко.

Note: я не знал экономического состояния фирмы. Может, там выше просто нельзя было.

Код, который можно петь

Нашел коммерческий код со своего старого проекта в публичном доступе. Причем на баше. Очень необычное чувство.
Этот кусок кода можно не только читать, но и петь...

Param := TDAParam.Create(TParams(Params));
Params.AddParam(Param);
TParam(Param).Value := AValue;

Сложные переговоры

На одном сложном продуктовом проекте я проработал семь лет. Среди клиентов были очень знаменитые компании, огромное количество пользователей, и каждый баг моментально становился заметен. Мы придумали и внедрили автотесты и автобилды, чего в середине нулевых еще ни у кого здесь не было. В результате, багов было мало, да и после крупного релиза число свежеобнаруженных стремительно падало.

Были и проблемные места, по которым я много спорил с директором. Задолбало меня это уже очень сильно, я уже года три был в состоянии внутреннего увольнения. В итоге, я подготовил ультимативный список из трех организационных пунктов типа «нанять админа на 40 человек», ну и до кучи — попросил прибавки процентов в 20. По первым трем пунктам мы месяца три спорили и практически обо всём договорились, хотя и без четких сроков.

— А что по зарплате?
— В этом году повышения не дам, может в следующем.
— Ок, я начинаю искать другую работу.

Работу нашел. Плюс 25%. Говорю директору:

— Через две недели я выхожу на новое место. Как передать дела?
— Так особо и некому, все заняты. А давай я тебе таки дам +20% через два месяца?

Я уже принял новый оффер и ушел со старой работы с криком «Я свободен!»

А мой коллега-заместитель получил +много к своей зарплате и через месяц получал вдвое больше, чем моя старая зарплата. Дальше гуглить по слову bus-factor.

Delphi

Так получилось, что я был на Delphi с первой беты. Первая версия была классной. Вторая — супер. Третья — лучше второй. Четвертая — прогресс. Пятая, шестая — замечательно. Седьмая — примерно как шестая. Восьмая вышла с задержкой и была глюкава до полной бесполезности. Девятая, десятая, одиннадцатая — очень и очень слабы.

Сообщество фанатиков-приверженцев таяло, а те, что оставались, — озлабливались на весь мир и рассказывали, что даже несколько ошибок не могут перечеркнуть классный продукт.

Мой вывод: ошибаются все, и да — серия ошибок может скинуть с пьедестала любого. Сейчас с интересом смотрю на реакцию эппл-сообщества на выход новых продуктов. Какие-то аналогии прослеживаются, хотя пока рано говорить.

Выбор

На Delphi предложений работы почти не было. За несколько лет рынок труда для делфистов схлопнулся.

В одном месте мне предложили должность PM со словами «ну вы же понимаете, вы просите очень высокую зарплату, мы готовы дать вам такую сумму только авансом, мы ждем от вас больших свершений». Ну и нюансы с отзывами на фирму типа «у нас тут каждый программист работает на двух проектах, и менеджеры соревнуются между собой за программерское время». Я это как-то пропустил тогда мимо ушей, как сейчас думаю — зря.

В другом месте предложили за ту же зарплату должность Junior .Net developer. Это сразу после Product Manager. Дауншифтинг резкий, зато без всяких заморочек.

Я колебался. Чашу весов переломил встреченный в коридоре первой фирмы старый знакомый — он там менеджерил. Он мне не нравился, и я задал себе вопрос: «готов ли я с ним работать даже на соседних проектах?». Не готов.

Я таки выбрал дауншифтинг. Читая потом отзывы на первую фирму, я понял, что это было очень правильное решение. Кстати, они звонили: «Вы нам отказали из-за зп? Ну давайте еще +15%». И это после того, как вы мне объяснили, что и прежнюю мне даете авансом?!

На новом месте было очень непривычно — зона ответственности схлопнулась с «за весь проект» до «вот тебе задача, пили её вот таким способом». Да и коллектив был дружным, хотя я в него так и не смог влиться. Софтскилы подкачали.

MMORPG и эффект домино

На проекте был синьор. Он был хорошим программистом и яркой личностью. Однажды он не получил четкого ответа от заказчика на вопрос о текущей задаче. Поэтому в ожидании ответа тихо запустил онлайн-рубилово. Так он ждал день, а ответа все не было, ждал два — а заказчик молчал... Синьору очень не хотелось задавать вопрос повторно, ведь при этом пришлось бы рассказывать о том, что он два дня ничего не делал. Ждал неделю, а заказчик так и не вспомнил. А может, вообще не понял, что от него ждут ответа. Синьору уже совсем не хотелось говорить с заказчиком. Через две недели заказчик начал домогаться результатов работы. Сначала аккуратно, потом все настойчивей. А их не было. Совсем не было. Ну не считать же результатом переход на 76-й уровень? В итоге, после нескольких проигнорированных попыток достучаться до синьора, заказчик спросил напрямую коллегу «А здесь ли Вася?» — «Да, здесь» — «Попроси его взять трубку». Тут Вася громко и вслух послал Заказчика и с криком «та не хочу я с ним общаться», выбежал из комнаты.

Васю уволили на следующий день. Это было начало кризиса 2008-го, работу он не нашел и полгода просидел на шее у жены.
Заказчик ушел от нас через два месяца.

В конце кризиса фирма была продана, а все руководство, включая директоров этого филиала, — были уволены.

Выводы:
— Я не был непосредственным участником. Я пробовал достучаться до PMа где-то на третий день, но он был занят и на домыслы джуна не отвлекся. Не знаю, чтобы было, если бы я обратился к директору. Наверняка, ситуацию тот бы вытянул. С другой стороны — стукачество у нас не любят, а пока гром не грянул — ситуация выглядела как мелкая шалость.
— «Имей мужество признать свои ошибки» — банальщина, но абсолютно все бывают в пассивно-депрессивно-убегающем состоянии. В нём сложно принимать конструктивные решения.
— Менеджерам таки нужно следить за происходящим. Те же стендапы должны были предотвратить ситуацию. Да и чем человек занят — тоже хорошо видно, даже если у него монитор хорошо спрятан.

Точка контроля

На долготянущемся небольшом проекте PM/техлид был по совместительству с другим проектом и не особо вникал в этот. Всё общение с заказчиком взял на себя QA.

В принципе, хорошая практика — QA из первых рук узнавал требования. Но был один нюанс...

QA считал заказчика неспециалистом. Хуже того, заказчик действительно плохо разбирался в разработке софта. Еще хуже — QA загонял вопросами заказчика в ловушку, находил противоречия и объяснял заказчику, почему тот не прав. Ну и заодно обсуждал с командой все провалы заказчика.

Я не был в курсе переписки, но, как мне кажется, — QA было важно доказать, кто здесь настоящий специалист и кто должен принимать решения. А заказчику наверняка казалось, что его саботируют и над ним издеваются. В итоге, он проект закрыл.

С моей точки зрения, если бы вместо фиксации на проблемах и противоречиях была фиксация на «можно сделать так и так, или вот так» — то проект можно было и вытащить.

Legacy-код

К нам зашел на допиливание проект — написанный несколькими командами до нас огромный комок кода, отягощенный баглистом, и без всяких тестов и доки. Одних только проектов в сборке было 14. Мы очень-очень осторожно начали его фиксить, потихоньку выпиливая ошибки. Понять этот код было нереально за короткое время, поэтому все действия — на касаниях, как при разминировании. Любые идеи «а давайте отрефакторим» жестко пресекались — без понимания было очень страшно трогать. Через несколько недель тимлид нашел константу — количество дней в месяц. «30». Ой, а как же февраль и т.д.?" — подумали мы и дописали баг в тасклист. На следующий день мы нашли константу «месяцев в году». «13». ТехДир озверел, заперся в кабинете и на следующее утро в сборке осталось 6 проектов из 14 — остальные вообще не использовались никак.

Оптимизация

Пришла жалоба от юзера на то, что один отчет генерируется больше десяти минут. Да, отчет редкий. Да, проект второстепенный. Закапываюсь — а там дикое месиво из SQL и десятки тысяч запросов к серваку. Иду к PM:

— Так и так, нужно это всё переписать.
— Сколько на это уйдет?
— Ну, месяц.
— Улучшится ли ситуация, если сервак помощнее поставить?
— Да, раза в три получим прирост, если память и сеть проапгрейдим.
— Через сколько окупится твой месяц работы при нынешней цене железа?
— ... понял, ухожу.

Английский

В нашей столовой приехавшие познакомиться с командой заказчики выбирают еду. Рядом же директор и PMы с техлидами — все с отличным английским. И тут заказчики начинают задавать вопросы «а что это за блюдо? из чего оно сделано?». И тут внезапный провал — топ-менеджмент не знает таких слов. Учили давно, ни разу не использовали.

То, что ты специалист в одной области, еще не значит, что ты крут даже в соседних.

(Не)везение

Дорос я в этой компании до техлида. Вообще, для меня это характерно — прийти программистом и дорасти до менеджера. И в середине кризиса-2008 мне директор говорит, что вот этот проект сейчас заканчивается, и, похоже, следующего для тебя не будет. В общем, будет тебе выходное пособие и время на подучиться перед следующей работой.

Тревожно, страшно, жена беременна вторым ребенком. Работу я таки через пару месяцев нашел.

А через еще месяц наш филиал внезапно продали. У покупателя уже был офис в нашем городе, и ему был нужен только один большой проект, ну еще может пару других мелких-вкусных. А остальные — не нужны. Поэтому 2/3 всех сотрудников — на выход прямо сегодня, включая директорат. Корпоративный счет заблокировали одновременно с покупкой, директор смог выцарапать последнюю зарплату для сотрудников только спустя несколько месяцев. Про выходное пособие или предупреждение об увольнении заранее и речи быть не могло. Особенно сильно влипли те, кто был в загранкомандировке. Внезапно обнаружить, что у тебя заблокирована карточка, нет юридической поддержки и туманное будущее — это шок.

Так состоялось моё второе увольнение, и мне очень повезло. Хотя тогда я так не думал.

Многоэтапное собеседование

Устраиваюсь в одну небольшую фирму. Сначала устное собеседование на час по телефону, потом личное техническое собеседование в офисе, потом домашнее задание на сутки, потом еще одно личное собеседование. «О, как в гугле, круто!» — подумал я.

На втором собеседовании:

— Мы ищем самых лучших сотрудников, которые будут с нами в течение долгого времени. Насколько надолго Вы готовы к нам?
— Если я приму оффер, то как минимум на год.

Прошел техническое, прошел дз. Финальный разговор-оффер:

— Как Вы видите, у нас очень жесткий фильтр. Мы нанимаем к нам на работу только одного из семи тех, кому позвонили. И даже после этого у нас есть испытательный срок в три месяца, во время которого зарплата будет ниже.

Я согласился. Несортированный список того, что повлияло на мое решение:
— Кризис — сложно найти работу. Беременная вторым ребенком жена и маленькие накопления усугубляют ощущения.
— Лесть — «мы берем только лучших, и вы нам подходите».
— Коммитмент — «я уже столько вложил, жалко отступать».

Обратите внимание на ловушку: я обещал работать долго, а они оставили за собой право уволить меня в любой момент.

Многоэтапная ловушка

Опыт работы в этой компании я использовал в разделе «Вторая бизнес-модель» про овертаймы. Это цикл «даешь задачу — продавливаешь жесткий эстимейт — человек проваливается — давишь на чувство вины — человек работает больше — ошибается — давишь на вину еще».

Особенности работы:
— Обратная связь — каждый день.
— Скайп — только корпоративный. Экраны видны всем. Идея посмотреть личную почту воспринимается как преступление.
— Проекты на несколько человеко-месяцев.
— Есть ядро из 4 человек: дир, зам-HR, бух, техдир. Остальные быстро меняются.
— Обед желательно «пока компилируется».
— Очень хорошо поставлена работа с PR. Похоже, HR не реже раза в день ищет в сети новые упоминания фирмы.

Отзывы о фирме на сайтах работы такие, что только держись. Сначала они пробовали агрессивно публично спорить с отзывами. Это не сработало, и они стали публиковать вакансии без указания названия фирмы. Это не сработало, и теперь старые поганые отзывы топятся в слащавых отзывах то ли от ботов, то ли от тех, кто там работает первый день. Вообще, на них отзывов гораздо больше, чем обычно для компании «до 20 человек». Побочный эффект — компания в топах рейтингов. Нужно будет как-нибудь написать про способ определения фейковых данных по двугорбому распределению отзывов.

Я там за два месяца написал два проекта. Первый провалил — не справился с утечками памяти в IE при написании расширений. Второй сделал в срок, заказчик даже принял его с опережением.

Как раз тогда у меня родилась дочка. Я всерьез думал, стоит ли об этом говорить — ведь подумают, что я теперь буду меньше овертаймить и уволят. Сказал, и через месяц меня таки уволили с формулировкой «нам нужны настоящие профессионалы». На этом увольнении я вздохнул с облегчением, такие нагрузки да еще и с непрерывным чувством вины — ну их нафиг.

Продолжение следует

Итак, за примерно десять лет я прошел от интерна до Product Manager и дауншифтился в Junior .Net Developer. Писал на C++, Delphi и C#. Был программистом в лопнувшем стартапе и менеджером во взлетевшем, пощупал продуктовую разработку и аутсорс.

На этом первую часть заканчиваю, продолжение следует где-то через неделю-две.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному0
LinkedIn



Найкращі коментарі пропустити

Прочла на одном дыхании! Интересные байки и истории, спасибо. Пишите еще в таком стиле. Картинки вы рисовали специально для статьи?

115 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.
Улучшится ли ситуация, если сервак помощнее поставить?
Да, раза в три получим прирост, если память и сеть проапгрейдим.
Через сколько окупится твой месяц работы при нынешней цене железа?
... понял, ухожу.

Не совсем понятна логика.
Вынесем за скобки вопрос наплевательского отношения к оптимизации кода — это в принципе современный тренд и здесь логика вполне ясна. Однако стоимость нормального, не БУ, пускай даже одноюнитового сервака DELL, ну или HP + стоимость активного сетевого оборудования + модернизация сети + процесс миграции на новое железо + лицензия на ту же серверную винду (ентерпрайз линукс какбы тоже денег стоит, между прочим, если хотим чтобы всё чотенько было) + стоимость гипервизора с минимальным набором фич + оплата соответствующих специалистов, развертывания и обслуживания >> месячной зарплаты синьйора и пээма вместе взятых. Ну а ежели лепить из говна и палок — то оно конечно...

Давно было. Если правильно помню, то там проблема решалась втыканием планки памяти и, если прижмет, более быстрой сетевухи вместо дефолтной.

А в качестве «сервака» служила чутка более мощная рабочая станция? Потому что в сервак втыкать левую планку регистерэд ецц дим, даже подобрать похожую — та еще лотерея, к тому же втыкать нужно кратно количеству каналов. Ну а сетевых там по дефолту от двух гигабитных штук, забинденных кстати на мониторинг, в биосе и драк. Ноунеймы тоже как бы не отстают: по 2-4 сетевухи, меньше даже в далеких двухтысячных не видел. Одна для подсети менеджмента/мониторинга обычно используется, но можно и агрегацию или балансировку замутить...

Не помню, знал ли я когда-то про это вообще. Совсем не моя тема была.

Отлично !!! Прочитал с удовольствием :)) Надо попробовать написать что-то подобное...

Тот случай, когда IT — лишь временный этап карьеры. Когда автору будет за 50, точно без работы не останется, будет творить креатив.

Лишь бы знание мат.части не подвело. Писать-то умеет, а вот не писать там где не разобрался — это редкость, и автора явно не касается (посмотрите другие его статьи).

Респект! Классно описано. У меня было много похожего в биографии — юношеское задротство, крах доткомов, увольнение из стартапа, тянул локалку(в те времена когда считалось прпрограммист должен решить любой технический вопрос), Дельфи и тд

Стоя тоже работал. Это когда мы в стартапе экономили на всем, сервера стояли в стойках, мониторы и клавы тоже в стойке над сервером так что работать приходилось на весу. И все это в подвале без окон.

На самом деле сталкивался где то с 80% описанных ситуаций.
Но все равно, как то мне кажется что образ автора собирательный, а не реальный.

Можем созвониться, покажусь в видеоскайпе)

Вы здорово пишете о полезном. Продолжайте, пожалуйста! За иллюстрации отдельное спасибо :)

По поводу Delphi возражение — 1-я класс, 2-я отстой, 3-я прорыв, на 4ку даже не садился, 5-ая -бомба! А далее... согласен.

Спасибо, Влад. Отличная статья! Ждем продолжения.

vladimirz, привычка работать полулежа осталась и 10 лет спустя :)

Олег, а как шея-спина-голова? Удается компенсировать? И если «да» — то насколько много физкультуры нужно?

Все норм, если не сильно ложиться на стул :) никакой физкультуры не надо

Напомнило книгу «Вы, конечно, шутите, Мистер Фейнман!».

Благодаря этому комменту я ее таки поставил в ридлист и недавно прочел. Ага, чувство юмора очень знакомое. Фокус с дверями, со взломом сейфов... :)

Я тут завис на некоторое время, пытаясь понять как /bin/bash это выполнит! :)

Нашел коммерческий код со своего старого проекта в публичном доступе. Причем на баше.
Param := TDAParam.Create(TParams(Params));
Params.AddParam(Param);
TParam(Param).Value := AValue;

Спасибо, полезно иногда почитать чужой жизненный опыт. Свой легче переосмыслить.

Задача для железячников
треба підказка.

Вот тут долгое обсуждение, подсказка и решение — www.facebook.com/...5/posts/10209876555702553

Прикольно было читать, т.к. у меня по некоторым пунктам были похожие истории. В свое время собирался с Дельфи разобраться, но судьба всегда подкидывала проект на другой технологии :-)
Еще мне повезло, что меня никогда не увольняли :-) Думаю, что это очень неприятно.

Был случай, когда в помещении было так холодно, что компьютеры висли при загрузке Windows. Придумали тогда заходить сразу в БИОС, давать компьютеру прогреться минут 10-20 и после этого можно было нормально работать (в куртках и перчатках).

С расфокусированием мониторов тоже был случай. Проблема была из-за того, что в соседнем офисе проводили сварку.

Как-то про религию спорили с одним сотрудником (он считал, что бог есть). Я минут через 20 понял, что это бесполезно и пошел работать, а еще один мой коллега (такой же атеист, как и я) продолжил спор. В итоге через пару часов пришел шеф и вежливо объяснил, что споры про религию и другие вещи, не связанные с работой, надо проводить после работы.
Еще как-то выяснилось, что многие, вроде бы умные люди, не могут понять парадокс Монти Холла.
К сожалению, есть некоторые товарищи, с которыми и по рабочим моментам очень сложно разговаривать, т.к. логика на них не действует.

Пожалуйста :)

Спасибо, некоторые истории вспомнил по рассказам вживую :-)

Оттуда и появилась идея это таки опубликовать :-)

так а с мониторами то что было?

Основное обсуждение развернулось здесь — www.facebook.com/...5/posts/10209876555702553
Причем умными вопросами приблизились к разгадке.

Прикольно :-) Обычно при отгорании нуля техника выходит из строя и поэтому ситуацию сразу исправляют. А тут видимо как-то удачно отгорел, что так долго не могли понять в чем причина.

Про ліфт забавно. Космічна 21?

Точно, 21а, в 2007-му на 7-й такса 1 гривню була)))

Спасибо! Особенно за истории про увольнения. Думаю, это требует мужества — публично рассказыывать о тревогах и сложных временах. Но читать, как люди справляются со сложностями, очень полезно и вдохновляет, и, думаю, не только меня :)

Спасибо за поддержку. Вторая часть будет эмоционально сложнее :)

Написано классно — ждем продолжения не взирая на сложности :)

Я очень ценю людей, которые не боятся рассказывать о сложностях и своих ошибках, и вообще общаться открыто. Мне кажется, это признак зрелости личности — как упомянутые в статье синьоры, которые не боятся выглядеть глупо. Рассказов об успехах всегда много, открой фейсбук — и там все такие умные, красивые, успешные, и тяжело понять, сколько в этом правды, а сколько понтов и фотофильтров. На этом фоне искренность и саморефлексия очень выделяются и вызывают симпатию.

Эх, аж ностальгия нахлынула :) хотя байки не сильно веселые. Я честно говоря, думал, что при поглащении нанимали всех девелоперов, которые сами не ушли

Не. Там было пару человек, с которыми порвали окончательно...

С одной стороны смешно, а с другой стороны так все жизненно

А по моніторах напевно не було заземлення?

Настоящей земли в здании не было. Пробовали заземлить (на батарею) и занулить на счетчик — безрезультатно.

Мониторы были ЭЛТ? Возможно, наводка шла не от вашей электропроводки, а откуда-то извне. Маловато данных для анализа.

Мощное обсуждение пошло тут — www.facebook.com/...5/posts/10209876555702553
там данных много

земли тогда не было нигде. А вешаться на батарею было стремно — не факт что у соседей там земля).

Фейсбук в соседней вкладке. Или жежешечка. Там самое место таким побасенкам, листам гнева, et cetera. Лайков наставят, «аффтар пешы исчо» — ляпота.

Вернадский, проснись, ноосфера трещит по швам уже от этой бугагашеньки.

так, заполняйте ноосферу-то. Заводите толковые статьи, продвигайте ценные темы для обсуждений! Вперед!

Даю отдохнуть своему фонтану и другим советую. Особенно что до студеных былин про космонавтов и ЭЛТ-мониторы.

Прочла на одном дыхании! Интересные байки и истории, спасибо. Пишите еще в таком стиле. Картинки вы рисовали специально для статьи?

Пожалуйста!
Да, маму попросил — она нарисовала под статью

маме — респект и уважуха ©

Делфи в свое время убило не столько низкое качество продукта сколько кажущийся низким порог вхождения и неправильное позиционирование на рынке...

Увы, ничего не могу сказать по поводу порога вхождения — я слишком давно его изучал. Да и про позиционирование я тогда не задумывался.

Я тоже начинал с беты — до сих пор дока лежит ворованная прямо из борланда с плейсхлдерами вместо картинок и редакторскими примечаниями :).
Но типичный диалог на собеседовании году эдак в 2003-м выглядел так:
— Что такое абстрактный метод?
— ... ????
— Зачем нужен TApplication?
— ... ????
— Чем SendMessage отличается от PostMessage?
— ... ????
— Позвольте, ноу Вас тут написано 3 года стажа разработки на Дельфи!
— Так а что там — на форму кнопок накидал...
Ну и позиционирование... «Убийцу ВБ» убил C# . А позиционировать надо было как конкурента VC. + попытка сделать кросс-платформу. + прощелканный взрыв в потребностях в дешевых разработчиках кот-й поддержал тот же C# и Java.

кот-й поддержал тот же C#
Ну дык там сам создатель перешёл в мелкософт и тут же ж засел за си-шарп упс оно и заработало а там откуда ушёл упс и не заработало странно даже...

Не совсем соглашусь.
* Позиционирование было правильным: отработка трендов DOS->Windows, необходимость в разработке новых и миграции старых клиент серверных решений, где большая часть бизнес логики отрабатывалась на стороне клиента. Вытеснение условного CLIPPER-а.
* Любой инструмент косвенно снижает порог входа и здесь нет разницы: Delphi, JQuery, Angular, Spring etc.
...
А вот правильный пивот Borland не смогли сделать, метнулись в область кроссплатформенности, упустили web 2.0. Таких примеров много — Nokia, RIM.
...
Лично для меня, Borland Delphi ступенька, которую пока не удалось перешагнуть ни одной экосистеме разработки ПО. Да, мы скоро увидим лучшие решения. Но ту планку, которую они задали в базисе компонентной моделя для WYSIWYG (What You See Is What You Get), даже M$ смогла только скопировать.

Вытеснение условного CLIPPER-а.
Вот! Делфи позиционировали как Клипперо-убийцу, ВБ убийцу. А на самом деле это был инструмент вполне себе системного программирпования уровня VC но без родового проклятья C и C++.
Любой инструмент косвенно снижает порог входа и здесь нет разницы: Delphi, JQuery, Angular, Spring etc.
Вот не соглашусь. Такой простоты создания win приложений я больше не видел. Чувак нибунь-бунь не понимающий как оно раблтает мог слабать работающую прогу. Правда при попытке сделать что-то покруче облом происхордил жесточайший. Самый вопиющий сл-й я встретил на Rent-a-Coder — чувак с понтом писал интсрумент украшательства окон и в оконный хук передавал.... указатель на модуль (unit). А дико удивлялся а почему все крешится и что за гавно эта ваша Дельфя. Ни что такое указатель, ни что такое DLL, ни как работает этот хук он не понимал.
Лично для меня, Borland Delphi ступенька, которую пока не удалось перешагнуть ни одной экосистеме разработки ПО. Да, мы скоро увидим лучшие решения. Но ту планку, которую они задали в базисе компонентной моделя для WYSIWYG
Вот это да. + стройная и понятная модель модулей и стремительный билд с оптимизирующим компилятором и сборщиком. Ээээх... Жаль покойника...
Вот не соглашусь. Такой простоты создания win приложений я больше не видел
Здесь скорее всего уже вопрос в «тонких гранях восприятия» простоты порога входа. Я то начинал свой путь с Рихтера и слом при объяснении что такое WM_GETMINMAXINFO у Uber-Senior-Delphi-Developer-800$-в-месяц-в-2001 наблюдал неоднократно )))
Хотя и сегодня не редкость, Java-хочу-5000$+ не может на простом примере объяснить что же такое deadlock хотя уже 5 лет пишет высоконагруженные серверные приложения для компаний с мировым именем. Но тут скорее инфляция тайтлов и постоянный спрос на разработку ПО делают такую ситуацию стабильной.
+ стройная и понятная модель модулей и стремительный билд
Компонентная модель и сам Object Pascal образовывали достаточно стройный симбиоз. Мне всегда это напоминало что-то из мира Smalltalk, хотя и не такое безбашенно динамическое.
Ээээх... Жаль покойника...
Я думаю история сделает еще один цикл и мы увидим WYSIWYG систему нового уровня с соответствующей инструментальной обвязкой. Тем более в ИТ это много проще.
Здесь скорее всего уже вопрос в «тонких гранях восприятия» простоты порога входа. Я то начинал свой путь с Рихтера
«Да вы что, нафига мне ваш Рихтер — я складские программы бизнесюкам лабаю одной мышкой! SQL? А что это?» — практически цитата по памяти.

Попадались мне уникумы, делающие поиск в таблице методом перебора строк. А че, работает же

эх были времена, Дельфи это нечто гениальное. Помню, позвали в майкрософт на пресентацию по .net , показали этот убогий фреймфорк и такое жалкое подобие дизайнера из дельфи. Я еще тогла подумал в 1995 году борланд был на голову круче со своей Дельфи 1.0

так то оно так, но оказалось что одного языка было недостаточно. ide, все тулзы и библиотеки играли огромную роль. Как вспомню дот нет, первые версии, так самых простых, часто использованых вещей небыло. А про редактор и как работал дизайн рантайм, связывание компонент между собой, так тут вообще майрософт наверно недотягивает. Имхо борланд реально была инновативной компанией, а майрософт — продавцы — копирователи

кажущийся низким? Именно таким он и был. Больше всего ворчали сишники.)

Кажущийся потому что серьезно что-то делать не зная Win32, OOP, SQL нельзя. А Делфи создавали иллюзию что можно.

Спасибо за статью. А можете еще рассказать про собственные лайфхаки повышения своей продуктивности труда в качестве программиста и менеджера? На протяжении всей вашей работы были ли спады с концентрацией, внутренней мотивацией? Как с этим справлялись? В большинстве случаев советуют стандартный набор: спорт, еда, отдых, метод Pomodoro, но интересно узнать об не очевидных моментах, на которые было бы полезно обратить внимание.

Конечно, спады были. Неочевидный момент — из всего набора решений самым эффективным оказалось десяток часовых сеансов у психотерапевта по скайпу. После этого все остальные техники пошли куда легче. Завтра постараюсь себе в фейсбук выложить график рабочей продуктивности за 8 лет.

все більше чую таких відповідей від колег, варто спробувати і собі

Круто) Цікаво написано, приємно читати, в деяких ситуаціях впізнавав себе на тих чи інших ролях.
Можливо, теж напишу щось подібне через рік-два.

Разрешите «поставить лайк», жизненно

Эх, это еще второй части нет... Вот там уже более серьезные вещи были...

Чувак это крутейшее что я читал про айти. Тебе стоит книгу издать

Спасибо, хотя я своим шедевром считаю цикл dou.ua/…​enta/columns/tips-for-pm

и выгорал неоднократно, кстати, тоже

Сочувствую. Из депрессии выходить сложно, и лучше со специалистом.

Методичка — Как помочь человеку справиться с депрессией
ru.wikihow.com/...у-справиться-с-депрессией

До похода к психиатру,приёма лекарств из спец аптеки и стационара ещё нужно человека довести и убедить его это регулярно делать.К тому же,без поддержки,этому человеку будет труднее,особенно на стационаре.

Спорт, бабы, психолог — именно в такой последовательности.

не факт что психиатр будет вас,в такой последовательности, лечить только от депресии )

Ни чего сложного. Проходил через это, выбрался. Требуется время и понимание того, что как забрался не в один момент, так и выбираться будешь не в один момент. ИМХО, лучше всего использовать нечто, противоположное тому, что повергло в депресняк. Находить и подмечать свои микроуспехи, радоваться простым вещам, не подписываться на то, что приводит к психологическим проблемам. Если это означает фриланс, или просто смену деятельности — значит так и надо поступить. На пол года уйти в условные «дворники»: пойти хоть кочегаром в котельную, главное, чтобы не было психологического пресса. Заняться фотографией, завести знакомства. Еще важно поставить предохранитель на переживания: здоровый пофигизм. Чужое мнение, расхожие понятия, прочая фигня — все не важно, по сравнению со здоровьем. Через год будешь бодрячком. Осознано подходить надо к проблеме. Она решаема.

Ну, запрещать точно никто не будет.

М пол года работая условным «дворником» вскакивать по ночам от того, что отстаешь от своей профессии и что с каждым проведенным в «дворниках» днем ты все больше отстаешь от паровоза. Если честно, трудновато с такими мыслями справляться с депрессией.

Вы не сильно успеваете в вашем состоянии за профессией в любом случае. Мозг переваривает и усваивает информацию в моменты отдыха. За пол года отдыха вы продвинетесь в ПХП больше, чем за год судорожного обучения. Ну, не брать в руки ПХП — такого условия не стоит. Ппросто это все в режиме отдыха, или игры происходить должно.

Айти-психиатрия новое перспективное направление 😆

Психиатрия здесь одна для всех, как и статистика. Но есть нюанс, если для шизофрении бедность является одним из диагностических факторов (см вики и т.д.), то для айтишника таки есть шанс найти деньги на психиатра и современные лекарства.

Я бы в качестве бенефита предлагал бесплатную консультацию (оплачиваемую фирмой)

Можно и так. Давно не пробовал устроиться в фирму с большим соцпакетом, включающим и медицину тоже. Психиатрия, в отличие от психологии — это медицина.

Мама рисует по моему заказу

Ну а фирма-то с чувством вины как называется? Страна должна знать своих героев

Вопрос в том массовое ли это явление. Одного начальника можно построить, всех — нет

Ты не понял, в моем случае это не прокатывает. Но чтобы итогом не было увольнение важно, чтобы это не было политикой фирмы. Отдельного начальника можно ломать

Так замечательно, я как раз и хочу в начальники и много денег

Обещал не называть прямо. Имхо, по подсказкам в неё так не вступишь. Да и не одна она такая.

По тексту і лінкедіну TC виглядає що це LuckyWarePro :)
Так як 3 місяці (чи ± стільки) він тільки там і працював.

Я там за два месяца написал два проекта
Как раз тогда у меня родилась дочка. Я всерьез думал, стоит ли об этом говорить — ведь подумают, что я теперь буду меньше овертаймить и уволят. Сказал, и через месяц меня таки уволили
+
Вообще, на них отзывов гораздо больше, чем обычно для компании «до 20 человек»

А сколько ты там отзывов видел?

Підписатись на коментарі