Архив недели
Понедельник
🙋♂️ Привет, я Николай Крылов, лид Android из Альфа-банка. Помимо работы учусь в школе искусств Родченко, увлекаюсь фотографией и генеративным артом. Найти меня можно в инсте instagram.com/nklkrlv/
Пока планы на неделю такие:
- расскажу чем занимаются лиды в Альфе
- как мы переформатировали процесс технических собесов
- как я попал в школу искусств и к чем это привело
- про генеративный арт и фотографию
Надеюсь получится интересно :)
Android-разработкой я начал заниматься в далеком😨 2012 году, хотелось узнать много ли тут олдов 👴 ?
🤔
32.1%
Застал Android 2.1🤔
28.3%
Android 2.3-4.x🤔
25.2%
Android 4.x и далее🤔
14.5%
от Android 5 и вышеВ Москве вечер, пожар в рабочих чятиках утихает, значит настало время для первого треда — "Чем занимаются лиды в Альфе"
Мой стандартный день — это куча созвонов, уйма чятиков, где постоянно что-то пишут, бесконечное код-ревью и пермаментное тушение пожаров 😂😂😂😂 но обо всем по порядку 😅
С конца прошлого года в Альфе началась реструктуризация мобильной разработки, центры компетенций Android и iOs объединили в единый центр мобильной разработки и разграничили по бизнес-направлениям.
У каждого бизнес направления есть руководитель - менеджер, которые управляет наймом, зарплатами, взаимодействием с бизнесом и решает различные оргвопросы. Руководитель направления отвечает одновременно за обе платформы.
Так же есть роль лида — это нечто среднее между техлидом и тимлидом, у нас как менеджерские функции, так и технические. Лид отвечает за одну платформу — Android или iOs. За каждым лидом закреплено несколько продуктовых команд — в среднем от 6 до 9.
У меня сейчас 7 продуктовых команд, одна из моих задач заключается в том, чтоб помогать этим командам проектировать технические решениях в их фичах.
По необходимости я подключаюсь на грумминг и помогаю команде спроектировать архитектуру, декомпозировать задачи и сформировать бэклог.
Некоторые команды более зрелые — там мое участие минимально.
Другие команды наоборот собраны недавно и требуют больше внимания и погружения в их процессы.
Так же я ежденевно делаю код-ревью. Для прохождения ревью у нас надо набрать 4 аппрува, 3 от любого члена команды и 1 от "обязательного" — в основном "обязательными" аппруверами как раз являются лиды. А сколько аппрувов нужно у вас?
🤔
6.8%
Нет ревью 😎🤔
40.5%
Одного достаточно 👻🤔
51.4%
от 1 до 4 🦾🤔
1.4%
Больше 4 🙈Ещё я провожу 1-2-1 с разработчиками, для каждого заранее поставлена в календаре встреча, с периодичностью раз в три недели.
Период для 1-2-1 определил эмпирически 😂 если ставить чаще - то часто нет тем для обсуждения, если реже - то наоборот можно упустить какую-то проблему, либо вопросов для обсуждения накапливается немерено 😅
Ещё я помогаю разработчикам составлять индивидуальный план развития. У нас есть карьерная модель, в которой вполне прозрачно описаны уровни и их критерии , на ассесменте мы определяем на каком уровне сейчас разработчик и куда он хочет двигаться дальше.
Правда пока мои разработчики не слишком активно горят желанием составлять индивидуальные планы развития 😅😅😅
Так же я помогаю разработчикам ставить технические цели на квартал и в конце квартала провожу оценку выполненных задач.
Пока писал это - понял, что очередной квартал на исходе, а значит скоро надо будет оценивать процент выполнения техзадач.
Периодически участвую в проведении технических собесов, о них расскажу в отдельном треде.
Ещё принимаю участие в проектировании общемобайловских архитектурных решений, внедрении новых библиотек/фреймворков
Плюс пермаментные созвоны по поводу и без повода и тушение пожаров — куда ж без этого 😅😅😅
И иногда у меня остается немного свободного времени - тогда я пишу код. Правда такое случается довольно редко 😭 😭 😭
Тред (Николай Крылов)
Вторник
@mobileunderhood Как сохранять высокий уровень кода, когда пишешь довольно редко?
Спасибо за вопрос, начал писать ответ и понял, что все мысли не помещаются в один твит 😅 Поэтому стартуем тред twitter.com/sagus_helgy/st…
Первое время, как я перешёл в лиды в Альфе, меня постоянно тревожила мысль, что пишу мало кода и поэтому деградирую, как специалист 🙈
Когда я был в продуктовой команде у меня был вполне определённый бэклог, конкретные цели, работа была более предсказуемой и проще было оценивать свой вклад в проект
Когда я стал лидом - задач стало больше, они разнообразнее и кажется, что целый день ты что-то делаешь, но при этом ты не сделал нифига полезного :) Постоянные созвоны и чятики, у всех все горит и все сломалось 🤡
Какое-то время это даже довольно сильно меня демотивировало, я смотрел на других разработчиков и завидовал им, вот они пишут код по кайфу, а я в очередной раз сижу на какой-то скучной встрече 😂😂😂
Однако поразмыслив на эту тему некоторое время, я понял, что на самом деле не все так плохо, как кажется на первый взгляд
Я постоянно провожу довольно много код-ревью, это позволяет мне быть в курсе изменений в проекте, правда я тут уже больше не "писатель", а скорее "редактор" :) Но все равно ежедневная работа с кодом имеется имхо
Приобретая что-то -- ты всегда чем-то жертвуешь, в сутках 24 часах и мой ресурс ограничен, невозможно успевать всё, везде и сразу
Я смирился с тем, что теперь не буду успевать следить за всеми новыми фичами, фремйворками, библиотеками. Это вполне нормально, что среди твоих разработчиков есть более сильные чуваки в техническом плане, не стоит пытаться их перегнать.
Кто-то старается кодить во вне рабочее время, пилить пет-проекты, но это не мой путь, мне не хочется чтоб вся моя жизнь состояла только из работы, поэтому я просто выдохнул и отпустил ситуацию
Получается в каком-то смысле я потерял в "качестве кода", но должен же я был что-то приобрести взамен по закону сохранения энергии ? 😂😅 Что же я приобрел?
Сейчас я прокачиваю навыки управления командой, решения конфликтных ситуаций, организации людей и процессов
Так же я прокачиваю навык проектирования технических решений - превращаю размытые требования от бизнеса в четко сформулированные задачи, которые потом можно отдавать в разработку, помогаю другим разработчикам грумить и декомпозировать задачи
Прокачивается навык выбивания решения "техдолгов" с продактов 😂Плюс я заметил, что теперь могу лучше сформулировать и донести до бизнеса почему нужно потратить несколько дней на проектирование решения, а не сделать сейчас и на коленке за один день.
Мне кажется, что вышеперечисленные навыки более универсальны и меньше подвержены девальвации на рынке, чем конкретные фичи языка, фреймворки или сдк. Да, теперь я менее сфокусирован на технике, но не так уж это и плохо, ведь открываются другие возможности.
Получается это не деградация, а скорее новый этап развития в карьере. Тут уж каждый для себя решает сам куда ему интереснее двигаться, думаю места на рынке хватит для всех.
В Альфе кстати это заложено в карьерную модель - ты можешь либо больше погрузиться в технику и пилить core-фичи, разивать технический слой, либо больше менеджемента и заниматься тем, чем занимаюсь я 😎
Вопрос для лидов, а сколько кода пишете вы?
🤔
14.5%
Не пишу код вообще 😎🤔
53.2%
Пишу код минимально🤏🤔
32.3%
Пишу на равне со всеми 🦾Тред (Николай Крылов)
Немного мемов под вечер 😂😂😂 Не могу перестать орать над такой расшифровкой аббревиатуры
КПРФ == Котлин Программисты Российской Федерации
X.V.XXX съезд партии постановил добавить новые фичи в язык 😂😂😂 Впёред, товарищи! В светлое будущее!
Среда
Вопрос для лидов, а сколько кода пишете вы?
30% лидов, ответивших в опросе, пишут код на равне с разрабами, а как вы это успеваете? 🧐 Секретные техники ультрапродуктивности, овертаймы или бесконечный запас энергетиков? twitter.com/mobileunderhoo…
@mobileunderhood Скорее секретная техника игнорить любые вопросы разработчиков и брасать на произвол судьба, видел такое)
Кстати такая техника действительно помогает 😂 Главное не злоупотреблять этим дзюцу😎 Вообще первое время я всегда старался отвечать в чятиках сразу и поэтому меня постоянно разрывало на мелкие контексты и микроменеджмент twitter.com/KuDjij/status/…
Сейчас стараюсь приучить себя к мысли, что чятики для асинхронного общения, зачастую многие проблемы решаются сами собой в течении дня😅Важно только держать баланс и не скатываться в полный игнор проблем разработчиков.
Я бы даже сказал, по личному опыту, что это приучает разработчиков самостоятельно решать мелкие проблемы и не писать на каждый чих лиду 😁
И наоборот - когда я почти сразу отвечал на любой вопрос и был всегда доступен, это негативно сказывалось на самостоятельности команды
Очень ещё помогает, что слак я оставил только на рабочих девайсах, а в телеграме все рабочие контакты и чяты положил в папку "Работа", замьютил и закинул в архив - так они только в этой папке отображаются и не всплывают из архива, если пришло уведомление
Тред (Николай Крылов)
Четверг
Когда проревьюил и смержил 5 пулл-реквестов, а уже создали 10 новых
Автоматизируете ли вы как-то процесс ревью? Какие лайфхаки применяете чтоб и код не страдал и скорость разработки не падала?
У нас подключен detekt и lint, для проверки покрытия тестами юзаем jacoco, на частые ошибки пишем правило в код-стайл/доку и стараемся написать правило для автоматического анализатора
Есть чек-стайл для ревьюеров, где объясняется как ревьюить, на что обращать внимание, за что ставим нидсворк и тд. Есть дока по созданию пулл-реквестов -- как он должен быть оформлен, какого размера и тп.
Но все равно многое приходится проверять руками 😅
Мотивируете ли вы как-то разработчиков активнее принимать участие в код-ревью?
Тред (Николай Крылов)
Пятница
Сегодня хочу поделиться тем, как мы меняем процесс техничекого интервью в Альфе.
Как было раньше:
- два интервьюера,
- длительность полтора-два часа
- стандартные теоретические вопросы по языкам и Android SDK
Собес проходил так - знакомство с кандидатом, блок тех.интервью, рассказ про техничекие особенности проекта и ответы на вопросы кандидата
Какие были проблемы:
Часто попадались кандидаты с нерелевантным или недостаточным опытом для проекта
иногда один из интервьюеров мог отвлечься, пока другой задавал вопрос, прослушать ответ и потом задать такой же вопрос 😭😭😭
скучный процесс собеседования, типовые вопросы, это демотивировало и кандидатов и интервьюеров
недостаточная формализация - некоторые интервьюеры начинали уходить в какие-то глубокие теоретические дебри, интервью становилось душным 😭
В то же время у ребят из айос-команды процесс был интереснее и были хорошие отзывы от кандидатов. Поэтому мы решили перенять этот опыт и адаптировать для Android 🦾
Во-первых, мы добавили скрининг - при знакомстве с кандидатом эйчар задает небольшой список простых вопросов, чтоб отсеять кандидатов с совсем нерелевантны для нас опытом.
Используете ли вы скриннинг?
🤔
38.0%
Используем скрининг🤔
17.7%
Не испольщуем скрининг🤔
44.3%
Посмотреть результатыВ ноушене мы завели таблицу с кандидатами и сделали шаблон, для создания нового собеседования.
Таблица выглядит так
Каждая запись в таблице создается с помощью предзаполненнного шаблона. Шаблон состоит из следующих блоков:
"О кандидате", заполняется рекрутером при знакомстве, можно дописать какую-то информацию во время интервью, есть ссылка на вики с памяткой "Как начать собеседование"
"Техническая часть"
Таблица, слинкованная с таблицей задач, их можно добавлять/удалять во время собеса. По нажатию на шаблон генерурируется таблица с уже предзаполненным списком задач.
Интервьюеры перед собесом создают эту таблицу по сценарию, дополняют какими-то задачами, основываясь на опыте и резюме кандидата и распределяют задачи между собой.
Пока один интервьюер задает задачу, другой записывает ход решения в краткой форме, это позволяет потом лучше оценить кандидата и не дает интервьюерам отвлекаться от процесса 😅
Шаблон для задачи выглядит так. Задача может быть либо теоретическим вопросом, либо задачей на написание какого-то кода или исправление ошибок в написанном коде
Задачи стараемся делать чисто практическими, за алгоритмы не душим. Если кандидат не помнит точного синтаксиса - можно писать на псевдокоде, главное объяснить идею решения и рассказать как оно работает.
А вы даёте задачи на алгоритмы?
🤔
10.3%
Есть несколько задач🤔
14.7%
Есть отдельное интревью🤔
36.8%
Нет🤔
38.2%
Посмотреть результатПосле технической части рассказываем о наших проектах и процессах, отвечаем на вопросы кандидата.
Дальше идет блок оценки, тут все достаточно стандартно
И финальный блок для фидбэка, стараемся вводить практику описания точек роста для кандидата, если ему по каким-то причинам пришлось отказать
Что планируем сделать дальше:
Собрать еще больше интересных задач
Сделать готовые сценарии для джуниоров, стажёров и лидов
Автоматизировать генерацию фидбэка после интервью, в каждую из задач добавить ссылки на полезную литературу и если кандидат с задачей не справился - автоматически добавлять эти ссылки в фидбэк.
Очень сложно оказалось придумывать хорошие задачи, чтоб у них была понятная формулировка, они не превращались в какие-то паззлеры с олимпиады и не были какими-то редкими кейсами, которые надо гуглить в недрах стековерфлоу
Для меня особенно сложным оказалось придумывать задачи по Android SDK 😅 прям тяжело сделать задачку, которую можно решить за вменяемое время и она бы покрывала несколько тем сразу 🧐
Наличие такого процесса помогает быстрее заполнять фидбэк для кандидата, обычно стараемся передавать его эйчарам в тот же день, хотя задержки тоже случаются 😅
Плюс интервьюеру проще - уже есть готовый шаблон, готовый сценарий, все необходимые памятки и ссылки на вики
В итоге уже есть позитивный фидбэк, как от интервьюеров, так и от кандидатов 😎 🦾 Бывают и недочёты - их стараемся оперативно фиксить.
Тред (Николай Крылов)
Суббота
Когда ты предупреждал бизнес, что поставленные сроки нереальны, а теперь тебя просят выйти в овертайм на выходные, но ты отказываешься 😂😂😂
Тред про генеративный арт. В этом треде расскажу, как я пришел к генеративному арту и дам несколько ссылок для изучения темы. #generativeart
Впервые я столкнулся с генеративным искусством когда делал лабораторные работы в универе и с помощью программ рисовал фракталы и параметризованные графики, правда тогда этого термина я ещё не знал😅
Параллельно учебе, на старших крусах, я начал работать и времени на творческие изыскания не было совсем 😅 и в дальнейшем программирование для меня свелось в основном только к коммерческой разработке.
Со временем, драйва в изучении новых фреймворков стало меньше. Выход новой версии Android стал обыденностью, а не ожидаемым событием и программирование постепенно стало превращаться в рутину.
Сперва я пытался пилить какие-то сторонние проекты, присматривался к open source, но как-то это меня не зацепило. Я смотрел на активность других разработчикв на github и чувствовал себя самозванцем 😅 Мне совершенно не хотелось кодить после работы 😅
Я даже стал думать, что возможно мне нужно сменить профессиональную область и из мобильной разработки уйти куда-нибудь ещё.
А у вас возникала мысль, что мобильная разработка достала и надо сменить деятельность?
🤔
10.3%
Да, сменил деятельность🤔
44.8%
Да, но поа держусь🤔
20.7%
Нет,mobile forever!🤔
24.1%
Посмотреть результатЯ пощупал немного фронтенд, бекенд, почитал статьи про data science, machine learning, поковырялся в нейросетях, но все это приходилось делать с чувством внутренннего сопротивления и через силу.
Раз есть внутреннее сопротивление - то не стоит себя заставлять, решил я, и на какое-то время забил на ситуацию и програмирование оставил только для работы.
Примерно в то же время на рынке стало появляться куча приложений, которые использовали нейросети для рисования, типа Prizma, Oilist и тд.
Идея совместить искусство и программирование зацепила меня, я стал изучать информацию на эту тему и наткнулся на термин generative art
Про сам термин и истоки можно прочитать в хорошей статье на сигме - syg.ma/@alexander-ser…
Ещё одна обширная статья с учей ссылок на материалы и имена художников, работающих в этом направлении aiartists.org/generative-art…
Материала по этой теме очень много, а время к сожалению ограничено 😅 Например меня очень увлекла идея визуального программирования с TouchDesigner - derivative.ca , но я все никак не могу выделить достаточного количества времени, чтоб изучить эту штуку 😅
Ещё я пробовал p5js, p5js.org эта штука удобна тем, что тебе не надо ничего устанавливать и настраивать, ты можешь писать все прямо в редакторе браузера и сразу видеть результат.
Так же мне приглянулся фреймворк для креативного кодинга на Kotlin - OPENRNDR openrndr.org тоже стоит в планах на изучение, надеюсь найду время 😅
Еще довольно интересно выглядит процессинг для андроид android.processing.org/index.html
Но самым простым и доступным для меня вариантом оказалось приложения Glitch Art Studio дла айпада apps.apple.com/ru/app/glitch-…
В этом приложении очень гибкая настройка эффектов, которая дает широкий простор для творчества и воображения, например можно сгенерировать что-то такое instagram.com/p/CMxOx3RjZ8h/
Так же сейчас я активно пытаюсь сочетать в своей творческой практике генеративность с фотографией, техникой коллажа и видео.
Вот пример связки фотография+генеративный арт instagram.com/p/CLxIi_VDN5W/ instagram.com/p/CTZzHuSKijh/
Генеративный арт+коллаж instagram.com/p/CSzPfzPKhGj/
Генеративный арт+видео instagram.com/p/CSHqSo4qF1Q/
Тред (Николай Крылов)
Воскресенье
Тема сегодняшнего треда - как я поступил в школу Родченко на онлайн-мастерскую и что из этого вышло 😎
Началось все с мобильной фотографии, я фоткал всё подряд, не особо запариваясь по поводу формы и содержания, со временем завел инстаграм и начал наиболее удачные фотки выкладывать туда.
В инстаграме я наткнулся на профиль казанской фотохудожницы Саши Гром - instagram.com/sascha_grom/ и у неё в сторис увидел информацию о фотошколе "Докдокдок" docdocdoc.ru/about
Но пока я размышлял какое направление выбрать - прием заявок на обучение закончился 😅😅😅
Я стал искать похожие варианты и увидел, что московская школа мультимедиа и фотографии им. Родченко открыла мастерские в онлайн-формате rodchenko.sredaobuchenia.ru
При поступлении выбирал между двумя мастерскими "Авторский стиль в фотографии" у Игоря Мухина и "Медиа и технологическое искусство" Алексея Шульгина.
в итоге выбрал "Авторский стиль в фотографии", потому что это совсем новая для меня область, далекая от програмирования 😂 rodchenko.sredaobuchenia.ru/authorphoto
Обучение в принципе похоже на любые другие онлайн-школы, рассчитано на 2.5 года, по итогу получаешь диплом гос. образца. Занятия проходят онлайн, на каждый семестр дают несколько творческих проектов, по завершению семестра просмотры - нечто вроде традиционной сессии.
На просмотрах ты показываешь свой проект, рассказываешь идею и концепцию, преподаватели и другие участники просмотров дают свою оценку, говорят, что в проекте сработало и что можно улучшить.
Из минусов можно отметить то, что у нас по сути был самый первый поток, когда мастерские вывели в онлайн, поэтому мы оказались своеобразными бета-тестерами и поймали кучу багов 👻👻👻
Часть предметов оказалось сложно перевести в онлайн, у них была непонятная программа, не было четкой структуры, периодически возникали проблемы с расписанием - занятия переносились, накладывались друг на друга и тд.
Часть предметов оказалась слишком сложной для меня лично - всякие теоретические изыскания по искусству, с кучей культурологических терминов 😅 Читаешь одну страницу в конспекте и потом еще несколько часов гуглишь, чтоб понять, что там написано 😂😂😂
А самое главное, что всю эту сложносочиненную теорию искусств совершенно непонятно как применить и куда приложить 😅😅😅 ну можно сказатб, что для общего развития кругозора 😅
Помимо непостредственно фотографической практики есть занятия по работе со светом, цветом, создание фотокниг и даже немного психоанализа😎 Так же можно смотреть некоторые предметы у смежных групп, всё это доступно в записи.
В целом обучение классное, куча совершенно новой информации, позволяющей взглянуть на творчество и фотографию под совершенно разными углами, о которых я до этого даже не представлял.
Очень помогает поддержка преподавателей и одногруппников. В очередной раз я убедился, что для успешного обучения мне не хватает только материалов, нужно взаимодействие с мастером и группа единомышленников, социальный контакт
Я чувствую, что мое восприятие окружающего мира изменилось, повысилась "насмотренность". Я лучше стал понимать композицию кадра, замечать какие-то вещи, на которые раньше не обращал внимание, стал мыслить не только одиночными снимками, а сериями.
Могу даже сказать, что у меня появились некоторые амбиции, как у художника, захотелось не просто снимать безликий стрит, а делать какие-то осмысленные авторские проекты, публиковаться и участвовать в выставках 😅 Надеюсь что-нибудь из этого выйдет 😅
Ещё я подсел на коллекционирование фотокниг 😂 с ужасом думаю, как сложно будет это все паковать при переезде
Тред (Николай Крылов)
Ну что, неделя подошла к концу, надеюсь было интересно 😅 Найти меня можно в инсте - instagram.com/nklkrlv/ или телеграме - t.me/nklkrlv, так же попробую оживить свой твиттер - @nklkrlv 😎 Всем быстрых билдов и стабильных релизов ❤️
В Москве вечер, пожар в рабочих чятиках утихает, значит настало время для первого треда — "Чем занимаются лиды в Альфе" pic.twitter.com/hl8kdCTWJZ
перечислю в треде все темы, что были на неделе
Понедельник - "Роль лида в Альфе"
twitter.com/mobileunderhoo…
Спасибо за вопрос, начал писать ответ и понял, что все мысли не помещаются в один твит 😅 Поэтому стартуем тред twitter.com/sagus_helgy/st…
Вторник - продолжение рассуждении о роли лида
twitter.com/mobileunderhoo…
Сегодня хочу поделиться тем, как мы меняем процесс техничекого интервью в Альфе.
Пятница - опыт переформатирования технических собесов
twitter.com/mobileunderhoo…
Тред про генеративный арт. В этом треде расскажу, как я пришел к генеративному арту и дам несколько ссылок для изучения темы. #generativeart
Суббота - про generative art
twitter.com/mobileunderhoo…
Тема сегодняшнего треда - как я поступил в школу Родченко на онлайн-мастерскую и что из этого вышло 😎 pic.twitter.com/FJ3dbChGQj
Воскресенье - про обучение в школе мультимедиа и фотографии им. Родченко
twitter.com/mobileunderhoo…
Тред (Николай Крылов)