Производительность веб-сервисов

До сих пор люди иногда спорят о скорости программ, написанных на том или ином языке или платформе. Хотя тренд значительно пошел на убыль и редко где услышишь “Java тормозит” или “1 000 000 конкуррентных подключений на node.js” но время от времени все равно этот вопрос подымается. Так вот. У меня в продакшене уже несколько лет крутится куча сервисов, часть на JVM, часть на Rails, часть на Python, часть на PHP, парочка на node.

О стеклянном потолке 3. Оффлайновый бизнес

Предыдущие части: первая, вторая. Многие люди ненадолго погрузившись в сладкие обещания, которые нам вещают со страниц книг, буллитов презентаций, сцен залов всевозможные бизнес-тренеры, рано или поздно задумываются о своем деле. В качестве такого “своего” дела часто выбирается какое-то оффлайновое предприятие — магазинчик китайского барахла, фургончик с фастфудом, СТО или похожие активности. Будущие бизнесмены мечтают о том, как они вложат десяток тысяч баксов, поставят все процессы на поток, а сами укатят на #сказочноебали лежать на пляже и любоваться закатами.

Вранье на собесах

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

Почему нужно нанимать джунов

Я горячий сторонник найма джунов. Нанимал кучу джунов когда работал в большой корпорации, а потом нанимал уже к себе в компанию и платил им из своего кармана. Сейчас не нанимаю, потому что работаю практически сам, да и карманы опустели 😄 Убежден, что любая контора, которая зарабатывает хоть какое-то бабло просто обязана нанимать джунов, и вот почему. Улучшение и формализация процессов. Когда у вас на борту не самые опытные бойцы, такие вещи как CI/CD, статические анализаторы кода, тесты, код ревью и автодеплой становятся просто обязательными.

Идеальный джун

За свою карьеру я нанял большое количество нулячих джунов (без предыдущего опыта). Человек 20 точно будет, не меньше, а то и все 30. Соответственно просмотрел я далеко за сотню разных людей. Довольно давно я сформировал как говорят на западе highly opinionated профиль кандидата согласно которому я автоматически дискриминирую и отсекаю целую толпу народа. Кто же это? Обязательно студент/ка 3-5 очного курса профильного технического факультета. Разнообразные АСУ, ВТ, АУТС, кибернетики, автоматики, безопасность и прочие компьютерные науки.

Зарплата джуна

Сколько денег платить джуну? Сколько денег просить джуну? Я был (и являюсь, лол) сооснователем небольшой аутсорс шлюпки на 10 гребцов (в пике, сейчас уже почти никого не осталось). Большинство из них были джунами, которых я брал вообще без опыта работы. Сколько же платить таким ребятам? Джун — в первую очередь затраты для компании. Наиболее ценный ресурс, который они отъедают — это время более квалифицированных специалистов. Первые несколько месяцев любой джун работает в минус, потому что задачи которые раньше делались быстро и качественно теперь делаются медленно и не очень (требуют правок) или не делаются вообще.

Вакансии в поверпоинте

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

Переключение раскладки клавиатуры 2

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

Переключение раскладки клавиатуры 1

Нам ужасно не повезло — в наших странах используются кириллические шрифты, в то время как в огромной части остального мира — латинница. Приходится держать две раскладки, но мне (и многим другим) не повезло еще больше — половина всего, что я выстукиваю кириллицей — на украинском, поэтому добавляется еще и третья раскладка. Дефолтный вариант с ctrl+shift который нам предлагает Шиндовс, неустойчив к ошибкам. За многие года я так и не научился запоминать, сколько раз мне нужно нажать комбинацию, чтобы переключить раскладку — нужно постоянно смотреть на иконку в трее, это сбивает фокус и снижает скорость печати, особенно если в речь нужно вставлять всякие технические термины на английском.

Фуллстек. Фронтенд для бекендеров 6

Предыдущие серии: 1, 2, 3, 4, 5 Итак, нам нужно было сделать админку. Для этого мною был прособеседован и нанят Rails джун, и мы приступили. Для Rails есть много разных админок, но все они проигрывают по красоте AdminLTE, поэтому, после пары дней исследований было решено велосипедить свое решение, без хитрых генераторов, а для стилей взять вышеупомянутый AdminLTE. Буквально через неделю у нас уже была вполне работающее приложение с базовыми функциями. К таблицам были прикручены сортировки и стили, пагинация, формочки и так далее.

О работе с мудаками 1

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

VR для нищих

Ходили сегодня в VR-“салон” (не знаю как это правильно назвать). Короче такое место в трц, там сделаны такие “клетки” из дерева 2х2 метра, висят окулусы/htc на подвеске сверху, чтобы провода не путались (на вайфай не хватило денег или не рентабельно), дают в руки контроллеры и вперед. Перед этим я был в VR год назад в квест комнате. Там был сидячий вариант (садишься в кресло и не двигаешься, только вертишь головой и руками), зато с трекингом рук, но даже этот простой квест (чё-то там в космосе, надо короче ядерный реактор спасать от взрыва), оказал на меня неизгладимое впечатление.

О сломанных авто/интеграционных тестах

Люблю тесты. Особенно интеграционные или авто (те которые в браузере кликают). Запустил — и сидишь смотришь как у тебя все красиво и все работает. Одна проблема. Такие тесты всегда сломаны. Всегда, просто всегда. Конечно, поначалу, пока сценариев мало, то все красивое и зелененькое. Но как только продукт становится чуть более сложным чем сайт-визитка с формой контакта, то моментально наступает коллапс. Длительность прохождения сценариев увеличивается экспоненциально, количество мест отказа в распределенной системе и комбинаций сбоев разных подсистем так же растет, в итоге мы имеем по факту тесты которые могут сказать только “не работает вообще ничего” (логин отвалился) или требуют квалифицированного QA для анализа того, что же действительно упало.

О неработающем скраме

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

Еда

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

Фуллстек. Фронтенд для бекендеров 5

Одним из партнёров в нашей аутсорс шлюпке был крутой фуллстек парень. Кодил он на js, был большим любителем ноды и к тому же отлично знал PHP. К нам тогда по наследству приехал среднего размера проект как раз написанный на PHP, к счастью, на Laravel (это такой аналог Rails в мире PHP, в целом довольно годный), и он ним занимался. Сам проект (который кстати живет и здравствует до сих пор, только поддерживаю его уже я) состоит из бекенда для мобил и SPA и админки для управления контентом и прочим.