работа

работа

О работе.

Чик чик и в продакшен

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

Седые муди

На первой работе я провел 7 с хвостиком лет. На второй—был первым сотрудником-инженером. Раньше мне это казалось крутым. Будучи в компании незнакомых коллег я всегда пользовался возможностью похвастаться "я тут уже Х лет!", "вот этот проект стартовал много лет назад, еще когда тут из вас никого не было!", "я тут первый инженер, а вы не знали? да, вот эти все деплоймент скрипты сделал я". Сейчас...

10x инженер

Что отличает продуктивного инженера от посредственного? Почему один делает задачу месяц, а другой—пару часов? Возьмём бота. По моим оценкам, джун управится с задачей за 40 часов, а прокачанный чел—за 4-8, минимимум в 5 раз быстрее. Я посмотрел историю Toggl и нашел задачу очень схожую с квиз-ботом, которую сделал как раз за 4 часа. За счет чего достигается такая скорость? Первое и самое главное—наличие...

Пет-проект для портфолио миддла и сеньера

Какие могут быть варианты развития маленького чат-бота? В исходном тексте я описал инфраструктурные вещи—усложнение всего, кроме логики бота. Что делать, если хочется программировать, а не фуллстечить, девопсить и разбираться с кубернетесами? Бот работает только в телеграме. Скорее всего, там отсутствует прослойка логики обработки диалогов. Что, если понадобится добавить еще один мессенджер? Для этого нужно добавлять абстракции—диалог, кнопка, событие от мессенджера, контекст пользователя. Выделение такого...

Пет-проект для джуниора. За сколько времени его нужно сделать?

Джуниор должен управиться с базовым чатботом за рабочую неделю, 40 часов чистого времени. Чем я руководствуюсь при такой оценке? Во-первых, 40 часов—это очень много. Это 5 дней напряженной работы, 10 дней обычной офисной работы или 20(!) дней по 2 часа в день. Колоссальное количество времени. Во-вторых, у меня уже есть эмпирические данные: Когда я брал к себе в шлюпку первого джава-джуна, то дал тестовое задание—...

Пет-проект для портфолио джуниора. Реализация

Рассмотрим реализацию квиз-чатбота на примере джавы. Большинство java-вакансий содержат Spring/Hibernate. Этот фреймворк уже давно доминирует на рынке, и если вы его изучите, то потом легко сможете перейти на другой, потому что концепции везде одинаковые. Предположим, что вы уже умеете писать хелловорлд на джаве и знаете все базовые конструкции языка. Как начать делать чатбота? Найти существующих ботов, посмотреть как они работают, чтобы иметь представление о конечном...

Пет-проект для портфолио джуниора. Идея

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

Работа, которая мне не нравится 2/∞

Есть вид задач, суть которых заключается в том, что нужно кого-то переиграть. Например, я много работал со скрапингом данных, это вообще популярная тема. Как вы можете догадаться, не все ресурсы любят, когда их скрапят, и стараются защититься—например ставят себе проверку на клиентский js, подключают сервисы антискрапинга (incapcula), блокируют по IP (самое простое что может быть), делают нечитаемые классы для стилей чтобы труднее было писать xpath...

Отзывчивость

Замечали ли вы когда-нибудь, насколько приятнее работать с банкоматами в который установлен древний софт на ncurses? Они моментально срабатывают на любое нажатие клавиши, не тупят при переходах между экранами. Новые терминалы, на которых (вероятно) открывается что-то типа электрона нереально медленные по сравнению со старыми. Как по мне интерфейсная отзывчивость сильно недооценена. Впрочем я не о программах. Большинство действительно нужной работы, которую я делаю, работается за очень...

Rabbit hole

Это выражение в английском языке примерно обозначает сложности, которые возникают после того как начинаешь решать вроде бы простую проблему и проваливаешься как Алиса в кроличью нору. Думаю что каждому инженеру знакомо то чувство, когда чинишь маленький баг а через день приходишь в сознанение с наполовину отрефакторенным проектом. Такие норы часто непонятны менеджерам и бизнес людям, для которых задача "добавить кнопочку" выглядит работой на 1 час а...

Собеседования в фаангах

Западный интернет очень любит жаловаться на вайтбординг-собесы в больших корпорациях. Там даже ходит шутка, что "в долине проще открыть свою компанию чем устроиться в существующие". Авторы популярных инструментов и библиотек пишут в твиторах о том, что их не взяли в фаанг, хотя они создали продукты, которыми пользуется весь мир. Отечественный интернет не жалуется. Отечественный интернет молча, сцепив зубы, зубрит литкод по вечерам, тщательно готовится и в...

Главные грехи разработчиков: обратная несовместимость

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

Бесполезная работа

Нет ничего хуже, чем работать в стол или делать что-то просто так. На моей первой работе меня и еще одного парня определили разрабатывать модуль к продукту под присмотром пары тимлидов. Требования к этому самому продукту явно не были сформулированы, поэтому делали как считали нужным. Этот модуль прямо сейчас не был нужен никакому клиенту, поэтому делался в стол. Вначале я зарядился (первая работа все-таки!) но потом быстро...

Доменные эксперты

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

Печеньки в офисе

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

О парттайм работе

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