Новиков > путь в Big Tech – Telegram
Новиков > путь в Big Tech
184 subscribers
94 photos
192 links
От зеро-кодинга на стройке до написания высоконагруженных сервисов в Big Tech. 

Пишет SWE в Avito.ru (backend), в прошлом: .NET developer и сертифицированный специалист по использованию BIM.

Написать автору: @nvkv_ai

Книги: https://boosty.to/time2code
Download Telegram
Боль при переезде на новое железо осталась в прошлом?

Всегда пугал переезд: на новый ноутбук, ОС, телефон и т.д.

Особый трепет вызывают миграции больших данных, особенно, если мы говорим про высоконагруженные системы с крайне дорогой ценой ошибки.

Но сейчас про бытовое.

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

Возможно, если бы 5 лет назад не пересел бы на MacOS, то пост вышел бы другим, но здесь оказалось все тривиально: есть ассистент миграции, который поможет все перенести на новую машину AS IS.

Можно просто подключить старый ноут к новому или выбрать одну WiFi-сеть, и ассистент миграции все сделает сам.

Мне же потребовалось чуть больше приседаний, так как решил пойти через бэкап на HDD и дальнейшее восстановление из него.

Все прошло гладко, но по времени это заняло порядка 5 часов (400GB данных):
- бэкап на HDD занял несколько часов;
- восстановление из HDD еще несколько часов.

Возможно, при использовании хорошего SSD с подключением через type-c заняло бы гораздо меньше времени (я использовал простой советский HDD с usb 3.0 и адаптером под type-c), но это для меня было и не так важно.

Из приятного

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

2. Переезд прошел бесшовно (даже многие браузерные сессии не были сброшены), поэтому ощущение было, что просто произошло штатное обновление системы.

Что могло быть лучше?

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

Это означало, что диск идет в утиль и все предстоит проделывать заново. Поэтому успешный перенос данных уже расцениваю как ультимативный успех.

Конечно, хотелось бы, чтобы подобные миграции происходили в пределах 10-15 минут, но, вероятно, тут упираемся в производительность железа.

Так или иначе, но что у Apple хорошо — это бесшовный переезд со старых устройств на новые. Это крайне ценный UX.

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

@time2code
👍2
Лучшее, чем можно заняться в отпуске*

*Конечно, кроме полноценного отдыха.

Давно не было нормального отпуска, чтобы дней на 14, и можно было бы ни о чем не думать, по крайней мере, первые дня два.

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

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

Как?

Я придумал простой алгоритм, который на удивление, во многом совпадает с популярным Getting Things Done, поэтому почему бы не использовать оригинальный GTD, раз ему уже больше 20 лет (смотреть диаграмму).

Базово это выглядит так:

1️⃣ Очищаем голову и наполняем INBOX

Все, что беспокоит: проекты, заметки или давно откладываемые дела — помещаются во входящие.

2️⃣ Сортируем

Действие требует менее 2-х минут? — Делаем сразу. Иначе размечаем и организуем по другим категориям.

3️⃣ Выполняем

Делаем задачи в порядке приоритетов и срочности.

4️⃣ Обзор

Еженедельно сверяемся с текущими задачами и проектами.

Инструменты

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

Думаю, начну наполнять INBOX в Obsidian + медитативный фон и 2 таймера по 50 минут с перерывом 10.

Посмотрим, что из этого выйдет.

@time2code
1🔥2
Собираем требования

На курсе по System Design, про который писал ранее, первым заданием стал выбор проекта, который будет держать 100M DAU (daily active users).

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

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

Но иногда учебный проект — это всего лишь проект и нужно быть проще :)

Так или иначе, я смог определиться с темой, которая мне потенциально интересна, только спустя несколько недель.

И это: сервис по поиску событий и активностей, с календарем, новостями и общением!

Определившись, мне теперь предстоит проработать его "предизайн", как на реальной секции SD:

1. Продумать базовые сценарии и роли.
2. Собрать вместе функциональные и нефункциональные требования.
3. Оценить необходимые ресурсы для обслуживания 100M DAU.
4. Презентовать.

Планирую сделать серию постов про ход проекта. Если вдруг тема откликнется, постараюсь делать это подробнее.

@time2code
👍5🔥2
🌚 Темная сторона Биг Теха

Пронзительный крик души L5 разработчика, который проработал в Amazon Web Services в Лондоне 3 года.

Предлагаю всем ознакомиться, кто мечтает о работе в Биг Техе, особенно в MAANG.

Пост читается за пару минут на одном дыхании.

Хайлайты

человеческая нервная система может в какой-то момент не выдержать


1️⃣ Работа в "Больших" компаниях сопряжена с регулярным стрессом, так как разрабатываете продукт, которым пользуются тысячи и миллионы пользователей.

"let's keep rollout aside"


2️⃣ При разработке фичи не учитывается ее раскатка, так как это сопряжено с серьезным риском в виде побочных эффектов на пользователей.

первые 15-20 минут митинга вы будете молча читать


3️⃣ Ни у кого нет времени на чтение документа по разрабатываемой фиче, поэтому для этого бронируется слот в календаре.

GenAI истерия совершенно неадекватная


4️⃣ Важно использовать GenAI в работе (всегда).

вы сидите 40 минут, играя в мафию: кто ж из нас недоволен


5️⃣ Регулярные опросы лояльности могут раздражать.

у всех уже такое восприятие, что ну ты прям L6


6️⃣ Промо не зависит напрямую от результата твоей работы.

Релиз проекта, который я сделал за 2 недели, занял полтора года...


7️⃣ Невероятно низкий TTM, из-за чего страдает удовлетворенность работой. Раскатка изменений может занимать N времени (месяц и более).

. . .

Не смотря на такие предосторожности и низкий TTM новых фичей, серьезные падения случаются даже у таких корпораций.

Здорово, что есть практика публичного разбора инцидентов. Например, что происходило 20 октября с AWS, можно изучить здесь (спойлер: виноват DNS).

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

Из опыта

Я тоже проработал в РФ Биг Техе 3 года и не могу не замечать определенные сходства...

Конечно, ситуация в Amazon гипертрофирована, если проецировать на наши реалии и сравнивать с РФ-компаниями, где сотрудников несколько десятков тысяч (для справки: в Amazon AWZ работает 127.000 человек).

Но что, если такой тренд неизбежен, и это то, как сейчас работают все Биг Техи и то, во что они эволюционируют со временем?

Такая тенденция огорчает, и для меня является главным недостатком действительно больших компаний и основной причиной не работать в них.

@time2code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Highload. Инструкция по выживанию

Прошло 2 года с посещения конференции для разработчиков высоконагруженных систем Highload++ 2023, которая для меня стала первой в статусе Go-разработчика.

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

Ценник для личного участия я бы назвал заградительным,(убежден, что есть более полезное приложение для 100K), поэтому основная аудитория — корпорации, для которых не составит никакого труда отправить вас на конференцию за счет бюджета на обучение или как выступающего с докладом.

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

Выбрать цель

Без цели на конференции можно легко праздно провести время.

Полезными могут быть:

- новые знания (лучшие практики), которые можно внедрить в процессы компании;
- поиск возможных решений проблемы/задачи;
- нетворкинг или поиск новых клиентов;
- поиск работы — многие передовые компании будут представлены со стендами, но лучше, конечно, идти через нетворкинг напрямую;
- поиск идеи/темы для исследования.

Самая полезная конференция (и первая в карьере) случилась в 2017 году, у меня было 2 цели:

1. Поиск возможного решения по использованию информационного моделирования в эксплуатации (задача компании).
2. Материал для написания магистерской диссертации (+поиск наставника).

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

В этом году я еду с комбинированной целью: прощупать пульс IT-индустрии, найти новые практики, которые можно внедрить в процессы компании, и нетворкинг.

Спланировать

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

Активно участвовать

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

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

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

А вы видите пользу от профильных конференций? Принимаете очное участие или онлайн?

> Если тоже будете на Хайлоаде 6-7 ноября и готовы встретиться, то пишите — попьем кофе.

@time2code
Октябрь 2025:

ключевые события

✔️ Потушил пожар на проде: сервис стал "захлебываться" из-за возникших блокировок у PG, очередь новых сообщений ощутимо стала расти вместе с лагом на сохранение... Хорошо, что лучшие практики не подвели (была и внутренняя очередь с ретраями, был и fallback при деградации сервиса), поэтому на пользователях это не отразилось.

✔️ Изучил основные характеристики хорошего кода: законченноть, понятность, эволюционность. Попрактиковался находить их в своих проектах.

✔️ Рассмотрел как можно улучшать функции, применяя SRP с точки зрения ФП.

✔️ Долгожданные 14 дней почти беспрерывного отпуска, за которые удалось собрать внушительный INBOX задач и проектов, создающих серьезное фоновое напряжение (большую часть за время отпуска закрыл).

✔️ Очередные 21K уже не стали чем-то необычным, но приятно, что удается за 1:50 их пробегать.

✔️ На курсе по SD выбрал проект и описал FR + NFR (отдельно поделюсь изысканиями).

посты

⭐️ Собираем требования -> читать

🔖 Боль при переезде на новое железо осталась в прошлом? -> читать

🔖 Лучшее, чем можно заняться в отпуске* -> читать

🔖 Темная сторона Биг Теха -> читать

#дайджест

@time2code
👍1
Хайлайты Highload

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

Одна из неочевидных возможностей подобных мероприятий — лутать мерч и подарки от различных компаний.

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

Общее впечатление

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

Удалось неформально пообщаться с коллегами из других Биг Техов, узнал как жизнь у них, и по итогу понял, что все большие компании +- живут одинаково, как с точки зрения процессов, так и каких-то бенефитов.

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

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

Итог

Достиг ли я поставленных целей? — Еще бы.

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

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

@time2code
👍10🤓1
Топ 10 рекомендаций по работе с БД с Хайлоада

Но я не мог просто переписать пункты со слайда, вырванные из контекста, поэтому я решил подробнее пройтись по каждому пункту и расписал их у себя в блоге с примерами:

↘️ https://novikov-ai.github.io/ru/posts/database-tips/

Если нет времени читать блог или вчитываться в слайд и делать какие-то выводы, то вот самая суть — фактически готовый рецепт по работе с БД:

1. Ограничивайте пул коннектов, ставьте PgBouncer если нужно.
2. Транзакция = один коннект; держите транзакции короткими.
3. Не держите коннект в простое и не делайте внешние вызовы внутри транзакции.
4. Вынесите HTTP в outbox/после commit.
5. Аналитика и тяжёлые запросы — на реплику или в DWH.
6. Индексы — подумайте перед созданием; composite > набор отдельных.
7. Переписывайте OR/NOT/IS NULL в эквивалент, чтобы сохранить индекс.
8. Планируйте keyset pagination заранее.
9. JSON — удобно, но не для часто фильтруемых полей.
10. Профилируйте, измеряйте, затем применяйте «нетипичные» архитектурные приёмы.

Если знаете другие рецепты по работе с БД, проверенные временем и продом, пожалуйста, делитесь ⤵️

@time2code
👍6
Почему я стал писать еще меньше кода?

И нет, AI меня пока не заменил.

2.5 года назад уже было мое ворчание по этому вопросу, и я решил его продолжить.

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

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

Но я работаю в продукте и сейчас пишу про него.

Хлеб синьора

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

Бесконечные обсуждения работы нового домена и прочие коммуникации — хлеб старших инженеров в команде.

Про дофамин

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

Код написан, ревью пройдено, продакшн не упал — вы великолепны 🙂

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

Что делать?

Осознать, что с эволюцией в карьере меняются также и задачи.

Применять новые подходы и по-другому оценивать результат своей работы.

И, конечно, научиться получать удовольствие от нового, если это целиком не противоречит вашей конституции.

@time2code
💯4👍2
Ноябрь 2025:

ключевые события

✔️ Познакомился с базой по ассемблеру x86/x64, написал простенькую консольную игру (код).

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

✔️ Продолжаю активную работу с менти. Двум человекам уже удалось закрыть запросы, которые были сформированы на менторство 3 и 6 месяцев назад, сейчас формируем следующую цели.

✔️ Провел десятки код-ревью пул-реквестов и написал комментариев больше, чем строк кода.

✔️ Написал серьезный архитектурный документ по миграции нашего сервиса из одной доменной модели в другую. Значительно улучшил свои знания о работе с системой, планирую поделиться с командой на воркшопе.

🪫 Случился классический перегруз под конец года: времени, энергии и мотивации перестало хватать, поэтому по курсу по SD просрочил все DL на сдачу проектов и договорился перенестись на следующий поток.

посты

⭐️ Хайлайты Highload -> читать

🔖 Топ 10 рекомендаций по работе с БД с Хайлоада -> читать

🔖 Почему я стал писать еще меньше кода? -> читать

#дайджест

@time2code
🔥5
🗣️ Самое сложное в разработке

Неочевидно, но самое сложное в любой сфере (программная инженерия не исключение) — это коммуникации.

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

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

. . .

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

Зафиксировали зону ответственности каждого и ожидания.

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

Это был явно не MVP и совсем не то, о чем мы изначально договорились.

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

В итоге пришлось эскалировать ситуацию на другой уровень, после чего, наконец, всем удалось выровняться и договориться о решении.

Потребовалось почти 2 месяца, чтобы найти понимание.

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

Могло ли это произойти раньше?

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

Пусть этот вопрос останется открытым.

Но ощущение, что регулярные хелс-чеки и инкрементальный подход помогли бы сгладить и эту ситуацию.

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

@time2code
👍4🔥31
Новиков > путь в Big Tech
⚡️ Сколько у вас энергии под конец года?
Замедлиться

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

Восхищаюсь такими людьми. Как вам удается?

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

Возможно, стоило лучше планировать отпуск или «работать не усерднее, а умнее».

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

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

Это недостаток работы в IT.

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

Поэтому я плавно последние месяцы стараюсь переходить в энергосберегающий режим.

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

@time2code
🔥42👍1
🥶 Приходит фичафриз, но как продержаться до конца года?

У нас было 3 неоцененных, 2 недописанных TDR'а, 1 селф-ревью и 10 дней перед Новым Годом...

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

Работаем

У меня 2025-ый прошел под флагом архитектурных документов.

Их было немало написано, а еще больше — прочитано.

Забавно, но это первый фичафриз, от которого я никак не зависшу в плане своей работы.

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

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

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

Я же вчера принял очередное решение по дисциплинированию себя, иначе ничего не успею.

Приятное

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

А еще среди коллег в среду организуем турнир по шахматам Фишера, если ни разу не играли, то порекомендую ;)

Все это ^ заряжает энергией и помогает достигать своих целей, переключая контекст с рабочих задач.

Совет

Поэтому, если вдруг сильно устали, то попробуйте переключиться на другую деятельность.

Пусть приятные моменты дадут сил продолжать.

Или уже отложите в корзину "после январских".

@time2code
🔥3