ЧТО БУДЕТ ПОСЛЕ МИКРОСЕРВИСОВ?
В последние годы микросервисная архитектура стала дефакто стандартом для многих крупных компаний, стремящихся к гибкости и масштабируемости своих приложений. Однако, компании уже начали давно сталкиваться с проблемами при использовании микросервисной архитектуры:
1️⃣ Сложность управления. Увеличение количества микросервисов приводит к усложнению их координации, мониторингу и отладки. Каждый сервис требует отдельного управления, что увеличивает операционные затраты. Мониторинг становится по-настоящему сложной задачей, когда количество сервисов, инстансов БД и кешей переваливает за 10000.
2️⃣ Повышенные требования к инфраструктуре. Микросервисы требуют сложной инфраструктуры для обеспечения надежности и масштабируемости, что может быть дорогостоящим и трудоемким в поддержке. К тому же каждая компания решает проблемы с инфрастурктурой по-своему, как может и умеет, и это накладывает некоторые ограничение на дальнейшее развитие инфраструктуры.
3️⃣ Сложность тестирования и отладки. Распределенная природа микросервисов затрудняет проведение интеграционного тестирования и отладки. Протестировать взаимодейтсие 2, 3, 4 сервисов еще вполне можно, но, когда фича затрагивает 10+ доменов, и в каждом домене еще по нескольку сервисов, учавствующих в цепочке взаимодействия, тестирование и координация интеграции превращается в тот еще квест)
4️⃣ Снижение производительности из-за необходимости сериализации и передачи данных по сети между сервисами.
5️⃣ Проблемы с управлением API, дороговизна изменения и актуализация API сервисов, передача лишних данных или наоборот недостаточных данных. У меня в сервисе был метод, на который было завязано более 80 других микросервисов, и потребовалось больше года, чтобы все клиенты смогли перейти на новый API.
Крупные компании, такие как Google и Amazon, всегда задавали тренд развитию облачных технологий и, естественно, с проблемами огромной микросервисной архитектуры они уже знакомы. В 2023 году, как гром среди ясного неба, начали выходить статьи о проблемах микросервисной архитектуры и новых подходах разработки облачных приложений.
Так, например, инженеры Google предложили разрабатывать приложения как логические монолиты, передавая их в автоматизированные среды выполнения, которые самостоятельно решают, где запускать рабочие нагрузки. По их словам, это позволило снизить задержки в 15 раз и сократить затраты до 9 раз. Для этого они разработали свой собственный фреймворк — Service Weaver
Команда Amazon Prime Video поделились своим опытом перехода от микросервисной к монолитной структуре для мониторинга видеопотоков, который привел к снижению операционных затрат на 90% и улучшению производительности.
Что это все значит? Да то, что ближайшие 2-3 года большие IT коммпании начнут пересматривать регламенты и подходы к разработке. Очевидно, мы будем наблюдать частичный возврат к монолитам и модульным монолитам. Разработчикам придется учиться работать с большой кодовой базой и уметь писать код так, чтобы в любой момент его можно было вынести на другой физический инстанс. В общем, господа разработчики, начинайте готовиться заранее 😉
От себя скажу, что эта тенденция реальная и она уже назревает и в Российских IT компаниях. Так что жду в следующем году на конференциях доклады касательно данного вопроса.
В последние годы микросервисная архитектура стала дефакто стандартом для многих крупных компаний, стремящихся к гибкости и масштабируемости своих приложений. Однако, компании уже начали давно сталкиваться с проблемами при использовании микросервисной архитектуры:
Крупные компании, такие как Google и Amazon, всегда задавали тренд развитию облачных технологий и, естественно, с проблемами огромной микросервисной архитектуры они уже знакомы. В 2023 году, как гром среди ясного неба, начали выходить статьи о проблемах микросервисной архитектуры и новых подходах разработки облачных приложений.
Так, например, инженеры Google предложили разрабатывать приложения как логические монолиты, передавая их в автоматизированные среды выполнения, которые самостоятельно решают, где запускать рабочие нагрузки. По их словам, это позволило снизить задержки в 15 раз и сократить затраты до 9 раз. Для этого они разработали свой собственный фреймворк — Service Weaver
Команда Amazon Prime Video поделились своим опытом перехода от микросервисной к монолитной структуре для мониторинга видеопотоков, который привел к снижению операционных затрат на 90% и улучшению производительности.
Что это все значит? Да то, что ближайшие 2-3 года большие IT коммпании начнут пересматривать регламенты и подходы к разработке. Очевидно, мы будем наблюдать частичный возврат к монолитам и модульным монолитам. Разработчикам придется учиться работать с большой кодовой базой и уметь писать код так, чтобы в любой момент его можно было вынести на другой физический инстанс. В общем, господа разработчики, начинайте готовиться заранее 😉
От себя скажу, что эта тенденция реальная и она уже назревает и в Российских IT компаниях. Так что жду в следующем году на конференциях доклады касательно данного вопроса.
Please open Telegram to view this post
VIEW IN TELEGRAM
The New Stack
Year-in-Review: 2023 Was a Turning Point for Microservices
Long considered the de facto approach to application architecture for cloud native services, microservices is starting to be refactored by cloud giants such as Amazon and Google.
😨9👍6 5⚡2🔥1👏1
AI В ПОВСЕДНЕВНОЙ РАБОТЕ РАЗРАБОТЧИКА
За последние 5 лет случился бум в области AI: появилось множество инструментов доступных широкой публике. Бытует мнение, что пройдет еще лет 5-7 и разработчики будут больше не нужны, ведь AI сможет все сделать сам. Я не согласен с этим мнением. Да, возможно, часть ниши сможет занять AI, где раньше нужно было нанять фрилансера или небольшую команду разработки для создания простенького сайта, приложения. Однако сложные системы полностью с нуля AI вряд ли сможет создать без какой либо корректировки со стороны экспертов в области разработки ПО.
Зато уже сейчас можно использовать все «блага цивилизации» (AI) и применять их в своей работе. Так, например AI-инструменты на подобие нашумевшего Github Copilot, можно встроить в IDE. Такие инструменты сильно ускоряют процесс разработки и сводят количество человеческих ошибок к минимуму. Если вас беспокоит вопрос безопасности вашей кодовой базы, то есть self hosted аналоги, например — tabby.
Также ChatGPT может стать реально вашим помощником, если научиться правильно пользоваться им (писать промты). Приведу плохой и хороший пример использования ChatGPT.
Задача: вам нужно интегрироваться с какой-то внешней системой (пусть это будет рассылка sms сообщений). У системы есть сайт с подробной документацией API. Правда, она текстовая, не в формате openapi, готовых SDK или клиентов на вашем языке нет…
Плохой пример: вы скармливаете ChatGPT ссылку на эту документацию и просите его, допустим, создать Go клиента к этой системе. С 99% вероятность ChatGPT вам выдаст, полурабочий код, который подойдет в качестве pet проекта для теста интеграции с системой, но никак не для enterprise разработки (банально эту будет тяжело поддерживать и вряд ли пройдет ревью от коллег). Поэтому дальше вам самим придется многое переписать, чтобы довести это до ума (или долго и упорно просить это сделать ChatGPT). Такой подход в лоб будет малоэффективным и ленивый разработчик быстро поплатится за то это🙂
Хороший пример:
Скоре всего, вы все же опытный и многоуважаемый разработчик. Ваш багаж знаний и опыт огромен, и, пожалуй, этим надо воспользоваться. Как бы вы интегрировались с системой по рассылке sms, не будь у вас ChatGPT?🤔 «Если бы была openapi спецификация API, то я бы взял свой любимый инструмент кодогенерации, например oapi-codogen, сгенерировал клиента и готово! Имею поддерживаемый клиент с удобным API в коде»
Да, но у нас нет openapi спецификации… Тут на помощь и придет наш слуга — ChatGPT, который отлично подходит для рутинных задач. Заходим на страницу документации API. Сохраняем html страницы. Загружаем файл в ChatGPT и просим его перевести документацию в формат OpenAPI v3.0. Обязательно уточняем все наши пожелания (что обязательно должно попасть в спеку): какие методы, писать ли все коды ошибок, описание методов и моделей , приводить примеры и т.д. ChatGPT, как и разработчики, ленивый поэтому тут действует правило «Какое ТЗ, такой и результат». После этого у вас на руках готовая спецификация, и, если вдруг вы не работали с инструментами кодогенерации, можете также спросить у ChatGPT какие есть, и как с помощью них сгенерировать клиента. В нашем случае будет достаточно сделать✅
В будущем AI ассистенты станут неотъемлемой частью нашей жизни. Я уверен, что от разработчиков потом будут требовать навыки умения работы с AI ассистентами. Почему? Да потому, что это ускоряет разработку, а значит повышает его эффективность, значит бизнес получает быстрее результат, значит быстрее получит потенциальную прибыль💰
За последние 5 лет случился бум в области AI: появилось множество инструментов доступных широкой публике. Бытует мнение, что пройдет еще лет 5-7 и разработчики будут больше не нужны, ведь AI сможет все сделать сам. Я не согласен с этим мнением. Да, возможно, часть ниши сможет занять AI, где раньше нужно было нанять фрилансера или небольшую команду разработки для создания простенького сайта, приложения. Однако сложные системы полностью с нуля AI вряд ли сможет создать без какой либо корректировки со стороны экспертов в области разработки ПО.
Зато уже сейчас можно использовать все «блага цивилизации» (AI) и применять их в своей работе. Так, например AI-инструменты на подобие нашумевшего Github Copilot, можно встроить в IDE. Такие инструменты сильно ускоряют процесс разработки и сводят количество человеческих ошибок к минимуму. Если вас беспокоит вопрос безопасности вашей кодовой базы, то есть self hosted аналоги, например — tabby.
Также ChatGPT может стать реально вашим помощником, если научиться правильно пользоваться им (писать промты). Приведу плохой и хороший пример использования ChatGPT.
Задача: вам нужно интегрироваться с какой-то внешней системой (пусть это будет рассылка sms сообщений). У системы есть сайт с подробной документацией API. Правда, она текстовая, не в формате openapi, готовых SDK или клиентов на вашем языке нет…
Плохой пример: вы скармливаете ChatGPT ссылку на эту документацию и просите его, допустим, создать Go клиента к этой системе. С 99% вероятность ChatGPT вам выдаст, полурабочий код, который подойдет в качестве pet проекта для теста интеграции с системой, но никак не для enterprise разработки (банально эту будет тяжело поддерживать и вряд ли пройдет ревью от коллег). Поэтому дальше вам самим придется многое переписать, чтобы довести это до ума (или долго и упорно просить это сделать ChatGPT). Такой подход в лоб будет малоэффективным и ленивый разработчик быстро поплатится за то это
Хороший пример:
Скоре всего, вы все же опытный и многоуважаемый разработчик. Ваш багаж знаний и опыт огромен, и, пожалуй, этим надо воспользоваться. Как бы вы интегрировались с системой по рассылке sms, не будь у вас ChatGPT?
Да, но у нас нет openapi спецификации… Тут на помощь и придет наш слуга — ChatGPT, который отлично подходит для рутинных задач. Заходим на страницу документации API. Сохраняем html страницы. Загружаем файл в ChatGPT и просим его перевести документацию в формат OpenAPI v3.0. Обязательно уточняем все наши пожелания (что обязательно должно попасть в спеку): какие методы, писать ли все коды ошибок, описание методов и моделей , приводить примеры и т.д. ChatGPT, как и разработчики, ленивый поэтому тут действует правило «Какое ТЗ, такой и результат». После этого у вас на руках готовая спецификация, и, если вдруг вы не работали с инструментами кодогенерации, можете также спросить у ChatGPT какие есть, и как с помощью них сгенерировать клиента. В нашем случае будет достаточно сделать
//go:generate go run github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen --config=config.yaml ../../api.yaml. Готово! В будущем AI ассистенты станут неотъемлемой частью нашей жизни. Я уверен, что от разработчиков потом будут требовать навыки умения работы с AI ассистентами. Почему? Да потому, что это ускоряет разработку, а значит повышает его эффективность, значит бизнес получает быстрее результат, значит быстрее получит потенциальную прибыль
Please open Telegram to view this post
VIEW IN TELEGRAM
Bito
18 Free GitHub Copilot Alternatives for VS Code [Nov 2025]
GitHub Copilot is a cloud-based AI tool jointly developed by GitHub, Microsoft, and OpenAI, designed to enhance coding efficiency.
👍14🔥4 3🆒2
ВЫГОРАНИЕ — НАЧАЛО ЧЕГО-ТО БОЛЬШЕГО?
Добрый день, дорогие читатели!Хочу поделиться с вами своей историей о том, как я пришел к созданию курсов и преподаванию.
Когда я был мидлом, я брался за любые задачи, какой бы сложности они не были. Это был вызов, драйв, возможность прокачаться! Новые технологии, нестандартные задачи — всё это превращалось в увлекательную игру, где каждый шаг приносил чувство прогресса. Я постоянно читал книги, проходил курсы, изучал лучшие практики… В общем, я изучал всё, что можно было уже на «следующий день» применить в работе и испытать кайф от того, что задача сделана «по красоте». Конечно, тогда я часто овертаймил, но оно того стоило.
Когда меня повысили до сеньора, задачи стали сложнее, но мой подход оставался прежним: чем больше закрытых задач — тем больше удовольствия и пользы.
Но, как это часто бывает, однажды я перегорел. И даже трехнедельный отпуск не помог: работать больше не хотелось, задачи перестали приносить радость. Всё казалось однотипным: прикрутить кэш, отправить данные в брокер, шардировать таблицу, штамповать юнит-тесты… Я перестал чувствовать интерес и драйв.
В этот момент мне предложили поучаствовать в проекте Route256 — образовательной программе для разработчиков от Ozon. Я подумал: «Почему бы и нет? Хоть что-то новое»…
И знаете что? Меня затянуло! Сначала три потока Route256, потом три потока своих курсов, несколько докладов на конференциях — всё это перевернуло моё понимание работы. Одно дело изучать что-то для себя, и совсем другое — объяснять это другим. Ты начинаешь копать так глубоко, что не просто заучиваешь best practices, а понимаешь их корни: почему так, а не иначе? Что стоит за каждой рекомендацией? Это невероятно прокачивает твои знания.
Как говорится, хочешь разобраться в теме — попробуй объяснить её другим.
Сейчас я работаю над своим новым курсом по Go, и в планах — ещё много тем (где бы только найти на всё это время!). Ловлю настоящий кайф, когда удаётся простыми словами объяснить сложные вещи, а ещё больше радости приносит положительная обратная связь от коллег и учеников.
Был ли у вас подобный опыт выгорания или смена фокуса в карьере? Буду рад обсудить это в комментариях.
Добрый день, дорогие читатели!Хочу поделиться с вами своей историей о том, как я пришел к созданию курсов и преподаванию.
Когда я был мидлом, я брался за любые задачи, какой бы сложности они не были. Это был вызов, драйв, возможность прокачаться! Новые технологии, нестандартные задачи — всё это превращалось в увлекательную игру, где каждый шаг приносил чувство прогресса. Я постоянно читал книги, проходил курсы, изучал лучшие практики… В общем, я изучал всё, что можно было уже на «следующий день» применить в работе и испытать кайф от того, что задача сделана «по красоте». Конечно, тогда я часто овертаймил, но оно того стоило.
Когда меня повысили до сеньора, задачи стали сложнее, но мой подход оставался прежним: чем больше закрытых задач — тем больше удовольствия и пользы.
Но, как это часто бывает, однажды я перегорел. И даже трехнедельный отпуск не помог: работать больше не хотелось, задачи перестали приносить радость. Всё казалось однотипным: прикрутить кэш, отправить данные в брокер, шардировать таблицу, штамповать юнит-тесты… Я перестал чувствовать интерес и драйв.
В этот момент мне предложили поучаствовать в проекте Route256 — образовательной программе для разработчиков от Ozon. Я подумал: «Почему бы и нет? Хоть что-то новое»…
И знаете что? Меня затянуло! Сначала три потока Route256, потом три потока своих курсов, несколько докладов на конференциях — всё это перевернуло моё понимание работы. Одно дело изучать что-то для себя, и совсем другое — объяснять это другим. Ты начинаешь копать так глубоко, что не просто заучиваешь best practices, а понимаешь их корни: почему так, а не иначе? Что стоит за каждой рекомендацией? Это невероятно прокачивает твои знания.
Как говорится, хочешь разобраться в теме — попробуй объяснить её другим.
Сейчас я работаю над своим новым курсом по Go, и в планах — ещё много тем (где бы только найти на всё это время!). Ловлю настоящий кайф, когда удаётся простыми словами объяснить сложные вещи, а ещё больше радости приносит положительная обратная связь от коллег и учеников.
Был ли у вас подобный опыт выгорания или смена фокуса в карьере? Буду рад обсудить это в комментариях.
🔥19❤10👍4 3 2🤔1
Каждый второй go разработчик использует ChatGPT в своей работе согласно опросу dewcrowd.ru.
Интересная статистика, конечно, помогает понять основной тренд в индустрии.
Советую ознакомиться 🙂
Интересная статистика, конечно, помогает понять основной тренд в индустрии.
Советую ознакомиться 🙂
Исследование Go-разработчиков, 2024
DevCrowd вместе с Авито провели исследование рынка Go-разработчиков, 2024
Появление 64-bit xid в PostgreSQL
Проблема долгих транзакций в PostgreSQL в основном была связана с 32 битным счетчиком транзакций. (Подробнее об этом написано в статье). Ребята и за PostgresPro первыми в мире занялись разработкой 64-bit xid.
Казалось бы, нужно просто поменять тип переменной, а не так все просто…
Проблема долгих транзакций в PostgreSQL в основном была связана с 32 битным счетчиком транзакций. (Подробнее об этом написано в статье). Ребята и за PostgresPro первыми в мире занялись разработкой 64-bit xid.
Казалось бы, нужно просто поменять тип переменной, а не так все просто…
Хабр
Будущее PostgreSQL: как 64-битный счетчик транзакций решает проблему масштабирования
Много лет в комьюнити PostgreSQL никто не верил, что эта СУБД, в принципе, может использоваться в системах с большой транзакционной нагрузкой. То есть какие-то тестовые лаборатории, бэкенд...
👍7🔥4 4 2
Вышла еще одна статья о кризисе микросервисной архитектуры в приложениях с AI функционалом. Следующие 2 года будут интересными и переломными, новые практики и технологии будут цениться больше остальных.
Пока я как и вы на знаю во что это выльется. Буду активно следить за трендами и рассказывать вам о них.
Пока я как и вы на знаю во что это выльется. Буду активно следить за трендами и рассказывать вам о них.
Хабр
Композитная архитектура: возвращение к монолиту на новом уровне
Привет! Меня зовут Максим Рогоза, я работаю корпоративным архитектором в крупнейших компаниях последние 7 лет. В настоящее время занимаюсь стратегическим IT консалтингом в компании Аксеникс , где мне...
🔥9🤔3💯3👍1
Пора подводить итоги года)
Что ж, этот год был для меня очень насыщенным. Я завел свой телеграмм канал и набрал 350 (без одного😄) подписчиков! Честно, я думал, что с трудом наберу 100!
Спасибо вам, дорогие подписчики, за ваши реакции комментарии в постах.
В следующем году планирую начать вести канал более активно и подготовить для вас больше полезного контента! Также вы можете в комментариях к этому посту оставить письмодеду морозу мне о том, что бы вы хотели больше видеть в этом канале.
С наступающим 2025 годом! Пусть он станет для всех нас годом новых возможностей и достижений! С праздником!
Что ж, этот год был для меня очень насыщенным. Я завел свой телеграмм канал и набрал 350 (без одного😄) подписчиков! Честно, я думал, что с трудом наберу 100!
Спасибо вам, дорогие подписчики, за ваши реакции комментарии в постах.
В следующем году планирую начать вести канал более активно и подготовить для вас больше полезного контента! Также вы можете в комментариях к этому посту оставить письмо
С наступающим 2025 годом! Пусть он станет для всех нас годом новых возможностей и достижений! С праздником!
2🎉21👍6 4👏2 1
Как я перешел из продуктовой команды в инфраструктуру: итоги за год
Почти ровно год назад я сменил траекторию карьеры: из продуктовой команды, где я руководил двумя проектами в логистике, я перешел в инфраструктурную, став лидом команды в департаменте DBaaS.
Сейчас самое время подвести первые итоги.
Продуктовая разработка: скорость, highload и бесконечные встречи
В продуктовой команде я занимался двумя совершенно разными проектами:
1️⃣ Highload-проект — ключевая часть логистики Ozon с жесткими требованиями:
🔍 350k+ RPS, постоянные стресс-тесты, оптимизации и «танцы с бубном»
🔍 минимальный Response Time (10-50ms 99q),
🔍 высокая стабильность (особое внимание к тестированию и релизам),
🔍 отсутствие downtime. Этот проект постоянно горел, и каждый день был похож на марафон: срочные задачи, дедлайны, стабильность любой ценой.
2️⃣ Данные и аналитика — здесь highload сменился глубоким анализом. Нужно было переварить огромный бэклог от бизнеса, объединить данные из множества сервисов и создать стратегическое и уникальное решение, которое могло работать автоматизированно.
Работа была насыщенной: постоянные встречи с бизнесом, интеграции с соседними командами, контроль сроков. На одном дыхании мы запускали проекты и закрывали эпики. Но однажды я понял: все проекты для меня превратились в «перекладывание JSON -чиков из одного сервиса в другой». Завершение задач больше не приносило удовольствия.
Зачем я ушел в инфраструктуру?
На фоне выгорания мне вспомнился опыт работы с highload: Kafka, Redis, Postgres, Kubernetes, Go. Мне захотелось использовать этот опыт в более глубокой технической среде. Я поговорил с руководством, и мне предложили перейти в инфраструктурную команду, где предстояло:
🔍 собрать команду с нуля,
🔍 погрузиться в новые технологии,
🔍 построить процессы с чистого листа.
Это был шанс выйти из зоны комфорта!
Чему пришлось учиться?
Мой продуктовый опыт оказался полезен, но этого было недостаточно. Мне пришлось:
🔍 углубляться в Kubernetes, сети, Ansible;
🔍 разбираться с CI/CD, observability;
🔍 чтение документации, эксперименты, изучение чужого кода стали ежедневной рутиной.
Сбор команды занял чуть больше месяца. Этот процесс показал, насколько важно иметь сильную команду. В одиночку такие проекты реализовать почти невозможно.
Ключевые различия между продуктом и инфраструктурой
1️⃣ Отсутствие формальных ролей
В инфраструктуре нет системных аналитиков, проектных менеджеров, скрам-мастеров. Ты делаешь всё сам: от сбора требований до проектирования. Это требует универсальности, четкого подхода к задаче и дисциплины, но одновременно дает большую свободу.
2️⃣ Характер задач
В продукте сложнее понять, что конкретно хочет бизнес (он сам иногда не знает), а реализовать это — проще. Это похоже на игру в «Дженгу», где каждый новый блок должен не разрушить систему.
В инфраструктуре всё наоборот: ты знаешь, что нужно сделать, но реализация почти всегда — неизведанный путь. Приходится учиться на ошибках и жить с MVP.
3️⃣ Роль команды
Инфраструктурные проекты требуют сильной синергии команды. Никто не знает всё, поэтому слаженная работа определяет успех. Также важно собрать экспертов своей области. Тут не получится уже взять джуна/мидла и научить его всему.
4️⃣ Изменение фокуса
Появился баланс между встречами и временем на код. Ушли бесконечные митинги, зато добавились глубокие технические исследования.
Сложности и выводы
1️⃣ Оценка результатов
В продукте успех проекта измеряется деньгами и масштабом влияния на пользователей. В инфраструктуре оценить значимость работы можно только спустя время, что добавляет неопределенности.
2️⃣ Недостаток компетенций
Чувство, что ты знаешь недостаточно, никогда не покидает. Но я понял, что это нормально. Инфраструктура требует времени на освоение.
3️⃣ Новая роль лидера
Быть тимлидом в инфраструктуре — это значит учиться у своей команды. Люди в команде часто знают больше, чем ты, и это правильно. Главное — уметь организовать их работу.
Итоги года
Год прошел стремительно. Чувствую ли я себя в своей тарелке? Скорее нет. Но я вижу перспективы и планирую 2025 год посвятить углублению экспертизы.
Почти ровно год назад я сменил траекторию карьеры: из продуктовой команды, где я руководил двумя проектами в логистике, я перешел в инфраструктурную, став лидом команды в департаменте DBaaS.
Сейчас самое время подвести первые итоги.
Продуктовая разработка: скорость, highload и бесконечные встречи
В продуктовой команде я занимался двумя совершенно разными проектами:
Работа была насыщенной: постоянные встречи с бизнесом, интеграции с соседними командами, контроль сроков. На одном дыхании мы запускали проекты и закрывали эпики. Но однажды я понял: все проекты для меня превратились в «перекладывание JSON -чиков из одного сервиса в другой». Завершение задач больше не приносило удовольствия.
Зачем я ушел в инфраструктуру?
На фоне выгорания мне вспомнился опыт работы с highload: Kafka, Redis, Postgres, Kubernetes, Go. Мне захотелось использовать этот опыт в более глубокой технической среде. Я поговорил с руководством, и мне предложили перейти в инфраструктурную команду, где предстояло:
Это был шанс выйти из зоны комфорта!
Чему пришлось учиться?
Мой продуктовый опыт оказался полезен, но этого было недостаточно. Мне пришлось:
Сбор команды занял чуть больше месяца. Этот процесс показал, насколько важно иметь сильную команду. В одиночку такие проекты реализовать почти невозможно.
Ключевые различия между продуктом и инфраструктурой
В инфраструктуре нет системных аналитиков, проектных менеджеров, скрам-мастеров. Ты делаешь всё сам: от сбора требований до проектирования. Это требует универсальности, четкого подхода к задаче и дисциплины, но одновременно дает большую свободу.
В продукте сложнее понять, что конкретно хочет бизнес (он сам иногда не знает), а реализовать это — проще. Это похоже на игру в «Дженгу», где каждый новый блок должен не разрушить систему.
В инфраструктуре всё наоборот: ты знаешь, что нужно сделать, но реализация почти всегда — неизведанный путь. Приходится учиться на ошибках и жить с MVP.
Инфраструктурные проекты требуют сильной синергии команды. Никто не знает всё, поэтому слаженная работа определяет успех. Также важно собрать экспертов своей области. Тут не получится уже взять джуна/мидла и научить его всему.
Появился баланс между встречами и временем на код. Ушли бесконечные митинги, зато добавились глубокие технические исследования.
Сложности и выводы
В продукте успех проекта измеряется деньгами и масштабом влияния на пользователей. В инфраструктуре оценить значимость работы можно только спустя время, что добавляет неопределенности.
Чувство, что ты знаешь недостаточно, никогда не покидает. Но я понял, что это нормально. Инфраструктура требует времени на освоение.
Быть тимлидом в инфраструктуре — это значит учиться у своей команды. Люди в команде часто знают больше, чем ты, и это правильно. Главное — уметь организовать их работу.
Итоги года
Год прошел стремительно. Чувствую ли я себя в своей тарелке? Скорее нет. Но я вижу перспективы и планирую 2025 год посвятить углублению экспертизы.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8❤7🔥4 2👍1🆒1 1
Всё о разработке | Леонид Ченский
Как я перешел из продуктовой команды в инфраструктуру: итоги за год Почти ровно год назад я сменил траекторию карьеры: из продуктовой команды, где я руководил двумя проектами в логистике, я перешел в инфраструктурную, став лидом команды в департаменте DBaaS.…
Больше книг, больше кода, больше экспериментов.
Признаться, иногда я скучаю по миру продуктовой разработки. Там была своя атмосфера: больше общения с бизнесом, больше видимого результата, чувствуешь себя значимым в команде. На неделю я бы с удовольствием вернулся в продукт. Но лишь на неделю)
Этот переход стал для меня настоящим вызовом. Если вы задумываетесь о смене направления в IT, знайте: это возможно. Главное — быть готовым учиться, ошибаться и адаптироваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как пройти интервью по системному дизайну?
Доброе утро всем и с прошедшей первой рабочей неделей этого года!
Для того чтобы втянуться в рабочий процесс предлагаю на выходных освежить в памяти аспекты system design, а может для кого-то это будет первое погружение или повод изучить новое в ближайшие месяцы.
Итак, если вы хотите успешно пройти секцию по системному дизайну на интервью или щелкать новые проекты как орешки, вам необходимо разобраться в ключевых концепциях, которые лежат в основе разработки масштабируемых систем.
Вообще есть 18 фундаментальных тем и понятий, которые хорошо бы знать:
1️⃣ DNS (Domain Name System)
Как работают доменные имена и их преобразование в IP-адреса? Основа основ, которую часто любят спрашивать на собеседовании.
2️⃣ Балансировка нагрузки (Load Balancer)
Как распределять трафик между серверами для обеспечения отказоустойчивости? Какие существуют стратегии балансировки нагрузки и как они работают?
3️⃣ API Gateway
Маршрутизация, аутентификация, управление доступом, и множество других задач, которые может выполнять API Gateway, нужно только знать их и применять:)
4️⃣ CDN (Content Delivery Network)
Как ускорить доставку контента пользователям по всему миру или в России от Калининграда до Камчатки?
5️⃣ Кэширование (Caching)
Уменьшение задержек и нагрузки на систему за счёт хранения часто используемых данных. Уровни кеширования, стратегии инвалидации кешей, алгоритмы вытеснения и т.д.
6️⃣ Базы данных (SQL и NoSQL)
Понимание их различий и подходящих кейсов использования Большая, но очень важная тема. Как-то раз мне на архитектурной секции «сеньор» аргументировал выбор MySQL, только потому что в основном он работал с ним. Такой аргумент, естественно, не тянул на сеньерскую позицию.
7️⃣ Шардинг (Sharding)
В продолжение к предыдущей теме. Разделение базы данных для повышения производительности. Важно понимать как те или иные БД могут шардироваться, какие гарантии дают. Какие есть еще механизмы разделения данных?
8️⃣ Индексы (Indexes)
Оптимизация поиска данных в базе. Какие есть индексы и когда стоит их применять.
9️⃣ Репликация (Replication)
Дублирование данных для повышения доступности и отказоустойчивости.
1️⃣ 0️⃣ Прокси-серверы (Proxies)
Контроль трафика и безопасность запросов между клиентами и серверами. Отличие reverse от forward proxy.
1️⃣ 1️⃣ CAP и PACELC теоремы
Баланс между консистентностью, доступностью и устойчивостью к разделению сети, а также компромисы между задержками и консистентностью в распределённых системах.
1️⃣ 2️⃣ . Микросервисы
Еще одна большая тема. Тут важны и паттерны организации, и выбор протоколов общения и схемы взаимодействия. Тут же и брокеры сообщений, мониторинг. В общем можно тут бесконечно углубляться.
1️⃣ 3️⃣ . Consistent Hashing
Эффективное распределение данных между серверами.
1️⃣ 4️⃣ . Long-Polling, WebSockets и Server-Sent Events
Технологии для связи в реальном времени.
1️⃣ 5️⃣ . Bloom Filters
Структуры данных для проверки принадлежности элемента множеству.
1️⃣ 6️⃣ . Кворум (Quorum)
Механизм обеспечения консистентности данных в распределённых системах.
1️⃣ 7️⃣ . Лидер и ведомый (Leader and Follower)
Организация узлов для управления данными.
1️⃣ 8️⃣ . Контрольная сумма (Checksum)
Метод проверки целостности данных.
Какие есть материалы для изучения ?:
- System Design Interview (Alex Xu).
Designing Data-Intensive Applications (Martin Kleppmann).
- Краткий обзор тем, которые я упомянул
- Практикуйтесь с задачами на проектирование. Разбирайте популярные кейсы, например, проектирование YouTube, WhatsApp или Facebook.
Системный дизайн — это не только про технологии. Это про ваш подход к решению задач, способность упрощать сложное и грамотно аргументировать свои решения.
Доброе утро всем и с прошедшей первой рабочей неделей этого года!
Для того чтобы втянуться в рабочий процесс предлагаю на выходных освежить в памяти аспекты system design, а может для кого-то это будет первое погружение или повод изучить новое в ближайшие месяцы.
Итак, если вы хотите успешно пройти секцию по системному дизайну на интервью или щелкать новые проекты как орешки, вам необходимо разобраться в ключевых концепциях, которые лежат в основе разработки масштабируемых систем.
Вообще есть 18 фундаментальных тем и понятий, которые хорошо бы знать:
Как работают доменные имена и их преобразование в IP-адреса? Основа основ, которую часто любят спрашивать на собеседовании.
Как распределять трафик между серверами для обеспечения отказоустойчивости? Какие существуют стратегии балансировки нагрузки и как они работают?
Маршрутизация, аутентификация, управление доступом, и множество других задач, которые может выполнять API Gateway, нужно только знать их и применять:)
Как ускорить доставку контента пользователям по всему миру или в России от Калининграда до Камчатки?
Уменьшение задержек и нагрузки на систему за счёт хранения часто используемых данных. Уровни кеширования, стратегии инвалидации кешей, алгоритмы вытеснения и т.д.
Понимание их различий и подходящих кейсов использования Большая, но очень важная тема. Как-то раз мне на архитектурной секции «сеньор» аргументировал выбор MySQL, только потому что в основном он работал с ним. Такой аргумент, естественно, не тянул на сеньерскую позицию.
В продолжение к предыдущей теме. Разделение базы данных для повышения производительности. Важно понимать как те или иные БД могут шардироваться, какие гарантии дают. Какие есть еще механизмы разделения данных?
Оптимизация поиска данных в базе. Какие есть индексы и когда стоит их применять.
Дублирование данных для повышения доступности и отказоустойчивости.
Контроль трафика и безопасность запросов между клиентами и серверами. Отличие reverse от forward proxy.
Баланс между консистентностью, доступностью и устойчивостью к разделению сети, а также компромисы между задержками и консистентностью в распределённых системах.
Еще одна большая тема. Тут важны и паттерны организации, и выбор протоколов общения и схемы взаимодействия. Тут же и брокеры сообщений, мониторинг. В общем можно тут бесконечно углубляться.
Эффективное распределение данных между серверами.
Технологии для связи в реальном времени.
Структуры данных для проверки принадлежности элемента множеству.
Механизм обеспечения консистентности данных в распределённых системах.
Организация узлов для управления данными.
Метод проверки целостности данных.
Какие есть материалы для изучения ?:
- System Design Interview (Alex Xu).
Designing Data-Intensive Applications (Martin Kleppmann).
- Краткий обзор тем, которые я упомянул
- Практикуйтесь с задачами на проектирование. Разбирайте популярные кейсы, например, проектирование YouTube, WhatsApp или Facebook.
Системный дизайн — это не только про технологии. Это про ваш подход к решению задач, способность упрощать сложное и грамотно аргументировать свои решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Tech Interview Preparation – System Design, Coding & Behavioral Courses | Design Gurus
25 Fundamental System Design Concepts Engineers Must Know Before the Interview
Preparing for a system design interview? Learn 25 fundamental system design concepts – from caching and load balancing to the CAP theorem – and get the insights you need to ace your interview.
👍14🔥4❤2 2👏1
5 стадий жизни IT-компании: от стартапа до кровавого Энтерпрайза
Я работал в относительно небольшом числе разных IT компаний, но мне посчастливилось застать разные этапы их жизненного цикла, которые отличались культурой, подходами к процессам, структурой команд и даже требованиями к разработчикам. Особенно интересно наблюдать за переходом от одного цикла к другому своими собственными глазами.
Я попытался выделить 5 основных этапов жизни (классов) IT компаний. Важно учесть, что компания необязательно проходит все эти 5 этапов. Она может остановиться на одном из них в силу особенностей и масштабов бизнеса.
1. «Стартап»
На этом этапе компания только начинает путь, и ее цель — доказать жизнеспособность своей идеи. Это необязательно стартап в классическом его понимании, но большинство совсем маленьких контор, которые начинали с 0 обязательно прошли через этот этап.
Характерные черты:
- Ресурсы ограничены: самая характерная и главная черта. Нет возможности нанимать топовых специалистов и в большом количестве. Зато нанятые энтузиасты часто выполняют несколько ролей одновременно.
- Хаос в процессах: чёткого плана развития на годы вперед — нет, задачи появляются почти спонтанно. Продуктовый фокус может меняться каждые пару месяцев. Всем не до процессов и повышение эффективности. Нет времени играть в менеджмент. Есть очень мало времени и мало людей и нужно дать результат ASAP.
- Идея важнее всего: многие готовы работать за энтузиазм, зарплаты ограничены, часто приходится вкладываться в "светлое будущее". Если повезло со стартовым капиталом, то может быть наоборот, совсем маленькая команда из очень дорогих экспертов. Но как правило это бывшие коллеги из Big Tech, которые решили начать что-то свое.
- Рискованность: никакой уверенности в завтрашнем дне. Сегодня есть инвестиции, завтра — нет. Идея и команда тут играет первостепенную роль.
- Широкий профиль сотрудников: требуются универсалы — Fullstack-разработчики, DevOps, которые одновременно могут заниматься веб-разработкой, инфраструктурой и даже тестированием и принтер настроить😉
- Отсутствие технического долга: по иронии, на старте его просто не успевают накопить, хотя это временно. Зато море костылей и заплаток «до лучших времен».
Плюсы для разработчиков:
- уникальный опыт: стартапы не для всех, тут нет место джунам и зачастую даже мидлам. Нужно делать все самому и быстро разбираться в том, о чем еще вчера даже не слышал. Нужно быть экспертом или им стать находу.
- быстрый рост (конечно, в случае успеха) и возможность НАПРЯМУЮ повлиять на продукт.
- возможность самому заложить фундамент и основу для будущих процессов разработки. Самому выбирать технологии. Полный карт-бланш (если это покрывает стартовый бюджет, конечно)
Минусы: нестабильность, отсутствие процессов и много переработок.
2. Mini Tech
На этом этапе у компании уже есть видение продукта, первые доходы и планы по развитию.
Характерные черты:
- Финансовая стабильность: уже есть поток инвестиций или стабильная выручка (а в идеале и то, и то).
- Команды: минимум две команды разработки, может больше, но часть работы часто отдают на аутсорс (так пока дешевле).
- Первые процессы: появляются планы развития продукта и первые зачатки документации.
- Ограниченная культура: код-ревью и CI/CD могут только зарождаться. Есть уже некий регламент работы (конвенция), какие-то настроенные инструменты и окружения для разработки. Но это все еще в очень сыром виде.
- Зоопарк технологий: из-за отсутствия общей архитектуры и культуры кода продукт превращается в "лоскутное одеяло".
- Гибкость в технологиях: еще можно выбрать что-то новое, но без излишней стратегичности (чаще всего, что доступнее, то и берут).
Плюсы:
- растущие команды
- интересные задачи
- первые элементы карьерного роста: отличный шанс, чтобы проявить себя и вырасти вместе с компанией до большой должности
- общение с руководством компании напрямую
- все еще есть возможность повлиять на продукт
Минусы: много технического долга и костылей, возможно текучка кадров.
Продолжение в следующем посте
Я работал в относительно небольшом числе разных IT компаний, но мне посчастливилось застать разные этапы их жизненного цикла, которые отличались культурой, подходами к процессам, структурой команд и даже требованиями к разработчикам. Особенно интересно наблюдать за переходом от одного цикла к другому своими собственными глазами.
Я попытался выделить 5 основных этапов жизни (классов) IT компаний. Важно учесть, что компания необязательно проходит все эти 5 этапов. Она может остановиться на одном из них в силу особенностей и масштабов бизнеса.
1. «Стартап»
На этом этапе компания только начинает путь, и ее цель — доказать жизнеспособность своей идеи. Это необязательно стартап в классическом его понимании, но большинство совсем маленьких контор, которые начинали с 0 обязательно прошли через этот этап.
Характерные черты:
- Ресурсы ограничены: самая характерная и главная черта. Нет возможности нанимать топовых специалистов и в большом количестве. Зато нанятые энтузиасты часто выполняют несколько ролей одновременно.
- Хаос в процессах: чёткого плана развития на годы вперед — нет, задачи появляются почти спонтанно. Продуктовый фокус может меняться каждые пару месяцев. Всем не до процессов и повышение эффективности. Нет времени играть в менеджмент. Есть очень мало времени и мало людей и нужно дать результат ASAP.
- Идея важнее всего: многие готовы работать за энтузиазм, зарплаты ограничены, часто приходится вкладываться в "светлое будущее". Если повезло со стартовым капиталом, то может быть наоборот, совсем маленькая команда из очень дорогих экспертов. Но как правило это бывшие коллеги из Big Tech, которые решили начать что-то свое.
- Рискованность: никакой уверенности в завтрашнем дне. Сегодня есть инвестиции, завтра — нет. Идея и команда тут играет первостепенную роль.
- Широкий профиль сотрудников: требуются универсалы — Fullstack-разработчики, DevOps, которые одновременно могут заниматься веб-разработкой, инфраструктурой и даже тестированием и принтер настроить😉
- Отсутствие технического долга: по иронии, на старте его просто не успевают накопить, хотя это временно. Зато море костылей и заплаток «до лучших времен».
Плюсы для разработчиков:
- уникальный опыт: стартапы не для всех, тут нет место джунам и зачастую даже мидлам. Нужно делать все самому и быстро разбираться в том, о чем еще вчера даже не слышал. Нужно быть экспертом или им стать находу.
- быстрый рост (конечно, в случае успеха) и возможность НАПРЯМУЮ повлиять на продукт.
- возможность самому заложить фундамент и основу для будущих процессов разработки. Самому выбирать технологии. Полный карт-бланш (если это покрывает стартовый бюджет, конечно)
Минусы: нестабильность, отсутствие процессов и много переработок.
2. Mini Tech
На этом этапе у компании уже есть видение продукта, первые доходы и планы по развитию.
Характерные черты:
- Финансовая стабильность: уже есть поток инвестиций или стабильная выручка (а в идеале и то, и то).
- Команды: минимум две команды разработки, может больше, но часть работы часто отдают на аутсорс (так пока дешевле).
- Первые процессы: появляются планы развития продукта и первые зачатки документации.
- Ограниченная культура: код-ревью и CI/CD могут только зарождаться. Есть уже некий регламент работы (конвенция), какие-то настроенные инструменты и окружения для разработки. Но это все еще в очень сыром виде.
- Зоопарк технологий: из-за отсутствия общей архитектуры и культуры кода продукт превращается в "лоскутное одеяло".
- Гибкость в технологиях: еще можно выбрать что-то новое, но без излишней стратегичности (чаще всего, что доступнее, то и берут).
Плюсы:
- растущие команды
- интересные задачи
- первые элементы карьерного роста: отличный шанс, чтобы проявить себя и вырасти вместе с компанией до большой должности
- общение с руководством компании напрямую
- все еще есть возможность повлиять на продукт
Минусы: много технического долга и костылей, возможно текучка кадров.
Продолжение в следующем посте
👍9🔥4 3❤1
5 стадий жизни IT-компании: от стартапа до кровавого Энтерпрайза. ЧАСТЬ 2️⃣
3. Medium Tech
Это компании среднего размера, которые уже прошли начальные этапы становления и очень активно масштабируются.
Характерные черты:
- управленческая иерархия: появляются полноценные отделы, направления, а внутри команд формируются четкие роли (Team Lead, Product Owner, QA и т.д.). Численность сотрудников IT может достигать примерно 100-400 человек.
- Часть работы может быть всё ещё на аутсорсе: но ключевые вещи стараются держать внутри. И идут к тому чтобы стать полностью самодостаточными.
- Инфраструктурная команда: появляется отдельная команда, ответственная за DevOps, SRE, инфраструктуру и поддержание серверов. Также может быть команда платформы, которая разрабатывает общие инструменты, фреймворки для остальных разработчиков.
- Гибкие процессы: используются Agile-подходы (Scrum, Kanban), есть планирование и ретроспективы. В общем все самое модное и молодежное в гибких процессах. В таких компаниях все еще чувствуется дух «стартапа» (по крайней мере они так его преподносят). Но это уже совсем не стартап, хотя пока еще нет бюрократии, жестких ограничений ИБ (исключение: если это не финтех). Стабильность приносится пока еще в жертву в угоду фичам.
- Собственные наработки: начинают появляться внутренние библиотеки, фреймворки, утилиты, shared-код, которые ускоряют разработку продукта и фич.
- Активный рост: команды активно расширяются, идет поиск узкоспециализированных специалистов. Стажеров такие компании особо не набирают, так что с 0 бэкграундом попасть в такие компании сложно.
- Технологии: на этом этапе компания начинает стандартизировать список используемых технологий и наращивает экспертизу в их эксплуатации, идет отказ от старых костылей и очень дорогих или неэффективных инструментов с точки зрения обслуживания.
Плюсы:
- Стабильность: компания уже завоевала себе место на рынке и имеет жизнеспособную модель бизнеса. Переживать о том что завтра компанию могут закрыть не приходится (хотя в России всякое бывает).
- Карьерные возможности: такие компании идеально подходят для Middle м Senior специалистов, которые хотят в короткий срок дорасти до Lead позиции. Расти вместе с компанией всегда проще и быстрее, к тому же еще и интереснее.
- Процессы на столько гибкие, что очень просто взаимодействовать с другими командами и руководителями. В целом все прозрачно в компании до определенного момента.
Минусы:
- компания отстает в техническом плане от Big Tech-ов
- несовершенство процессов
- большой бэклог и очень высокий темп разработки
- на тех. долг отводится мало времени
На мой взгляд компании на данном этапе это лучшая возможность для продолжения своего карьерного роста (при условии, что бизнес будет активно расти, иначе продвижение по карьерной лестнице не принесет существенного увеличения заработка, а лишь добавит обязанностей).
⬇️ Продолжение ⬇️
3. Medium Tech
Это компании среднего размера, которые уже прошли начальные этапы становления и очень активно масштабируются.
Характерные черты:
- управленческая иерархия: появляются полноценные отделы, направления, а внутри команд формируются четкие роли (Team Lead, Product Owner, QA и т.д.). Численность сотрудников IT может достигать примерно 100-400 человек.
- Часть работы может быть всё ещё на аутсорсе: но ключевые вещи стараются держать внутри. И идут к тому чтобы стать полностью самодостаточными.
- Инфраструктурная команда: появляется отдельная команда, ответственная за DevOps, SRE, инфраструктуру и поддержание серверов. Также может быть команда платформы, которая разрабатывает общие инструменты, фреймворки для остальных разработчиков.
- Гибкие процессы: используются Agile-подходы (Scrum, Kanban), есть планирование и ретроспективы. В общем все самое модное и молодежное в гибких процессах. В таких компаниях все еще чувствуется дух «стартапа» (по крайней мере они так его преподносят). Но это уже совсем не стартап, хотя пока еще нет бюрократии, жестких ограничений ИБ (исключение: если это не финтех). Стабильность приносится пока еще в жертву в угоду фичам.
- Собственные наработки: начинают появляться внутренние библиотеки, фреймворки, утилиты, shared-код, которые ускоряют разработку продукта и фич.
- Активный рост: команды активно расширяются, идет поиск узкоспециализированных специалистов. Стажеров такие компании особо не набирают, так что с 0 бэкграундом попасть в такие компании сложно.
- Технологии: на этом этапе компания начинает стандартизировать список используемых технологий и наращивает экспертизу в их эксплуатации, идет отказ от старых костылей и очень дорогих или неэффективных инструментов с точки зрения обслуживания.
Плюсы:
- Стабильность: компания уже завоевала себе место на рынке и имеет жизнеспособную модель бизнеса. Переживать о том что завтра компанию могут закрыть не приходится (хотя в России всякое бывает).
- Карьерные возможности: такие компании идеально подходят для Middle м Senior специалистов, которые хотят в короткий срок дорасти до Lead позиции. Расти вместе с компанией всегда проще и быстрее, к тому же еще и интереснее.
- Процессы на столько гибкие, что очень просто взаимодействовать с другими командами и руководителями. В целом все прозрачно в компании до определенного момента.
Минусы:
- компания отстает в техническом плане от Big Tech-ов
- несовершенство процессов
- большой бэклог и очень высокий темп разработки
- на тех. долг отводится мало времени
На мой взгляд компании на данном этапе это лучшая возможность для продолжения своего карьерного роста (при условии, что бизнес будет активно расти, иначе продвижение по карьерной лестнице не принесет существенного увеличения заработка, а лишь добавит обязанностей).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5⚡2👍1🆒1
4. Big Tech
Компании, которые уже на вершине своего рынка или стремятся туда.
Характерные черты:
- Сложные структуры: множество департаментов, проектов и продуктов, над которыми трудятся тысячи человек. Большая цепочка вышестоящих руководителей. Минимальная возможность у рядового сотрудника влиять на продукт.
- Собственные технологии: создаются и совершенствуются свои фреймворки, библиотеки и решения, которые используются внутри компании (и иногда становятся open-source).
- Высокие требования: нанимают лучших специалистов, проходят многоступенчатые интервью, обращают внимание на софт-скиллы, чтобы отсеить большой поток желающих. При этом в таких компаниях есть программы стажировок.
- Процессы отточены: выстроенный CI/CD, строгие code review, конвенция проверенная временем, обширная документация, отличный observability, собственные PaaS платформы, облако. В общем на всё есть регламенты, все процессы описаны, все обложено проверками и автоматизировано для большей эффективности. Отлично выстроен инцидент менеджмент. Идет работа по повышению стабильности сервисов, идет активная работа над информационной безопасностью. Теперь стабильность, надежность и качество важнее фич (репутация и прибыль теперь важнее). Идет активная работа по устранению тех. долга, который мешает расти дальше. Также зарождается процесс отказа от ненужного, упрощение и оптимизация приложений, инфраструктуры.
- Разделение труда: Узкоспециализированные команды. Из-за этого значительная часть времени уходит на анализ, согласования и коммуникацию между командами, а не на разработку.
- Технологии: Компания становится локомотивом IT-индустрии, решая уникальные задачи, с которыми до этого никто не сталкивался.
- IT-Бренд: компания начинает работать над своим собственным IT брендом. Бренд компании становится мечтой для разработчиков, благодаря репутации и влиянию на рынок.
Плюсы:
- Возможность работать с масштабируемыми и высоконагруженными системами.
- Достойная зарплата и социальные бонусы.
- Крутая экспертиза, доступ к бесплатным обучающим материалам и тренингам.
- Чётко выстроенные процессы, удобные инструменты и платформы для работы.
- Опыт работы в компаниях, которые определяют стандарты индустрии.
Минусы:
- Жёсткие сроки и высокие требования: нужно показывать высокую производительность и выдавать качественный результат.
- Метрики на всё: в том числе на личную эффективность, что добавляет давления.
- Высокая конкуренция: выделиться сложно, а завоевать авторитет ещё сложнее.
- Бюрократия: большое количество согласований, формальных процессов и регламентов.
- Узкоспециализированные внутренние технологии: знания и навыки, полученные в компании, могут быть не всегда применимы за её пределами
Big Tech компании отлично подходят для быстрого старта в карьере. Пройти здесь стажировку дорого стоит. Также отлично подходят для Middle специалистов которые хотят вырасти в настоящих Senior-ов. TeamLead-ы тут смогут научиться процессам и отточить свои управленческие навыки. Но в таких компаниях постоянно расти по карьерной лестнице почти невозможно из-за высокой конкуренции.
To be continued…
Компании, которые уже на вершине своего рынка или стремятся туда.
Характерные черты:
- Сложные структуры: множество департаментов, проектов и продуктов, над которыми трудятся тысячи человек. Большая цепочка вышестоящих руководителей. Минимальная возможность у рядового сотрудника влиять на продукт.
- Собственные технологии: создаются и совершенствуются свои фреймворки, библиотеки и решения, которые используются внутри компании (и иногда становятся open-source).
- Высокие требования: нанимают лучших специалистов, проходят многоступенчатые интервью, обращают внимание на софт-скиллы, чтобы отсеить большой поток желающих. При этом в таких компаниях есть программы стажировок.
- Процессы отточены: выстроенный CI/CD, строгие code review, конвенция проверенная временем, обширная документация, отличный observability, собственные PaaS платформы, облако. В общем на всё есть регламенты, все процессы описаны, все обложено проверками и автоматизировано для большей эффективности. Отлично выстроен инцидент менеджмент. Идет работа по повышению стабильности сервисов, идет активная работа над информационной безопасностью. Теперь стабильность, надежность и качество важнее фич (репутация и прибыль теперь важнее). Идет активная работа по устранению тех. долга, который мешает расти дальше. Также зарождается процесс отказа от ненужного, упрощение и оптимизация приложений, инфраструктуры.
- Разделение труда: Узкоспециализированные команды. Из-за этого значительная часть времени уходит на анализ, согласования и коммуникацию между командами, а не на разработку.
- Технологии: Компания становится локомотивом IT-индустрии, решая уникальные задачи, с которыми до этого никто не сталкивался.
- IT-Бренд: компания начинает работать над своим собственным IT брендом. Бренд компании становится мечтой для разработчиков, благодаря репутации и влиянию на рынок.
Плюсы:
- Возможность работать с масштабируемыми и высоконагруженными системами.
- Достойная зарплата и социальные бонусы.
- Крутая экспертиза, доступ к бесплатным обучающим материалам и тренингам.
- Чётко выстроенные процессы, удобные инструменты и платформы для работы.
- Опыт работы в компаниях, которые определяют стандарты индустрии.
Минусы:
- Жёсткие сроки и высокие требования: нужно показывать высокую производительность и выдавать качественный результат.
- Метрики на всё: в том числе на личную эффективность, что добавляет давления.
- Высокая конкуренция: выделиться сложно, а завоевать авторитет ещё сложнее.
- Бюрократия: большое количество согласований, формальных процессов и регламентов.
- Узкоспециализированные внутренние технологии: знания и навыки, полученные в компании, могут быть не всегда применимы за её пределами
Big Tech компании отлично подходят для быстрого старта в карьере. Пройти здесь стажировку дорого стоит. Также отлично подходят для Middle специалистов которые хотят вырасти в настоящих Senior-ов. TeamLead-ы тут смогут научиться процессам и отточить свои управленческие навыки. Но в таких компаниях постоянно расти по карьерной лестнице почти невозможно из-за высокой конкуренции.
To be continued…
🔥7⚡1 1
5 стадий жизни IT-компании: от стартапа до кровавого Энтерпрайза. ЧАСТЬ 3️⃣
5. Кровавый Enterprise
Компании, которые существуют десятилетиями и чаще всего работают в классических отраслях (банки, страхование, телеком).
Характерные черты:
- Бюрократия: сложные согласования, жёсткие процессы, которые редко меняются. Здесь можно получать месяц доступы при трудоустройстве, и еще месяц знакомиться с многообразием процессов и порядков.
- Много Legacy: поддержка старых систем становится основной задачей. Тонны кода, которые придется изучать еще очень долго.
- Автоматизация процессов: всё, что можно автоматизировать, уже автоматизировано (но далеко не всегда оптимально и удобно)
- Устаревшие технологии:
Поскольку компания уже давно на рынке большинство используемых технологий и инструментов уже устарели.
- Тяжелые релизы: всё тестируется по полгода, а потом раскатывается с кучей ограничений.
- Маленький рост: карьерные возможности ограничены, а влияние на продукт минимальны. Никто не заинтересован тут в вашем росте и развитии.
- Удобство разработчика не в приоритете: главное — соблюдение процессов и бизнес-задач.
Плюсы для разработчиков:
- стабильная зарплата (возможно даже выше рынка)
- минимальные риски увольнения (тут можно затеряться среди остальных и делать свою работу тихонько создавая видимость деятельности, если конечно ваш руководитель соответствует духу этой компании и ему также всеравно)
Минусы:
- рутина (я бы сказал болото, интересных задач здесь нет)
- отсутствие новых технологий (даже не пытайтесь вводить здесь что-то новое, все упрется в бесконечное согласование)
- сложные процессы
Как сказал когда-то один из моих руководителей, такие компании отлично подходят для того чтобы встретить «пенсию», но не для активного карьерного роста.
Какой этап подходит вам?
Разработчики выбирают компании, исходя из своих целей. Стартапы — для тех, кто хочет попробовать всё и сразу. Mini и Medium Tech — для тех, кто ценит баланс между интересными задачами и стабильностью. Big Tech — для экспертов, готовых к вызовам. Интерпрайз — для тех, кто ищет стабильность и размеренность.
Какие этапы вы прошли или хотите попробовать? Пишите свои мысли в комментариях!
5. Кровавый Enterprise
Компании, которые существуют десятилетиями и чаще всего работают в классических отраслях (банки, страхование, телеком).
Характерные черты:
- Бюрократия: сложные согласования, жёсткие процессы, которые редко меняются. Здесь можно получать месяц доступы при трудоустройстве, и еще месяц знакомиться с многообразием процессов и порядков.
- Много Legacy: поддержка старых систем становится основной задачей. Тонны кода, которые придется изучать еще очень долго.
- Автоматизация процессов: всё, что можно автоматизировать, уже автоматизировано (но далеко не всегда оптимально и удобно)
- Устаревшие технологии:
Поскольку компания уже давно на рынке большинство используемых технологий и инструментов уже устарели.
- Тяжелые релизы: всё тестируется по полгода, а потом раскатывается с кучей ограничений.
- Маленький рост: карьерные возможности ограничены, а влияние на продукт минимальны. Никто не заинтересован тут в вашем росте и развитии.
- Удобство разработчика не в приоритете: главное — соблюдение процессов и бизнес-задач.
Плюсы для разработчиков:
- стабильная зарплата (возможно даже выше рынка)
- минимальные риски увольнения (тут можно затеряться среди остальных и делать свою работу тихонько создавая видимость деятельности, если конечно ваш руководитель соответствует духу этой компании и ему также всеравно)
Минусы:
- рутина (я бы сказал болото, интересных задач здесь нет)
- отсутствие новых технологий (даже не пытайтесь вводить здесь что-то новое, все упрется в бесконечное согласование)
- сложные процессы
Как сказал когда-то один из моих руководителей, такие компании отлично подходят для того чтобы встретить «пенсию», но не для активного карьерного роста.
Какой этап подходит вам?
Разработчики выбирают компании, исходя из своих целей. Стартапы — для тех, кто хочет попробовать всё и сразу. Mini и Medium Tech — для тех, кто ценит баланс между интересными задачами и стабильностью. Big Tech — для экспертов, готовых к вызовам. Интерпрайз — для тех, кто ищет стабильность и размеренность.
Какие этапы вы прошли или хотите попробовать? Пишите свои мысли в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🤔2 2
OPENSOURCE (звездочки не гарантия качества)
Чем больше начинаю работать с opensource проектами, тем больше понимаю насколько важен его комьюнити, охват, частота контрибьюта, количество открытых issue и т. д. Иногда, к сожалению, может просто не быть альтернатив и приходится работать с тем что есть.
Также на своем опыте убеждаюсь, что прежде чем что-то тащить к себе из opensource, это следует очень тщательно проверить и протестировать. Затащил я, значит, в прошлом году инструмент для миграций схемы Cassandra golang-migrate. Уж очень легко и быстро он вписывался в наш CI, да и звездочек много, подумал я…
Год спустя разгребаю последствия инцидента, где багуля в этом инструменте привела к потере данных в PROD-e🙃 Благо были бэкапы. Лучше сразу свой бы написал инструмент на основе лучших практик и не пришлось бы переписывать этот…
Мораль: доверяй, нопроверяй тестируй!
Чем больше начинаю работать с opensource проектами, тем больше понимаю насколько важен его комьюнити, охват, частота контрибьюта, количество открытых issue и т. д. Иногда, к сожалению, может просто не быть альтернатив и приходится работать с тем что есть.
Также на своем опыте убеждаюсь, что прежде чем что-то тащить к себе из opensource, это следует очень тщательно проверить и протестировать. Затащил я, значит, в прошлом году инструмент для миграций схемы Cassandra golang-migrate. Уж очень легко и быстро он вписывался в наш CI, да и звездочек много, подумал я…
Год спустя разгребаю последствия инцидента, где багуля в этом инструменте привела к потере данных в PROD-e🙃 Благо были бэкапы. Лучше сразу свой бы написал инструмент на основе лучших практик и не пришлось бы переписывать этот…
Мораль: доверяй, но
GitHub
GitHub - golang-migrate/migrate: Database migrations. CLI and Golang library.
Database migrations. CLI and Golang library. Contribute to golang-migrate/migrate development by creating an account on GitHub.
🔥7👏3🆒2👎1
ИЩУ GO РАЗРАБОТЧИКА В КОМАНДУ🚀
Всем доброе утро, мои глубокоуважаемые подписчики!
Открылась вакансия в мою команду. Нужен скиловый Go разработчик, который «и коня на скаку остановит, и в горящую избу войдет».
Кратко чем предстоит заниматься:
- разрабатывать и развивать платформу в облаке Ozon, позволяющую администрировать кластера Cassandra/ScyllaDB;
- улучшать существующие opensource инструменты в экосистеме Scylla/Cassandra и разрабатывать собственные.
Чего жду от кандидата:
- уверенно знает Go;
- умеет работать с большой кодовой базой и писать чистый код;
- умеет проектировать качественное REST и RPC API;
- работал или знаком с kubernetes;
- будет еще большим плюсом, если и в Ansible, и Python силен.
Подробнее о вакансии👉 тут
Там же можете оставить свой отклик👌
P.S. удаленка возможна, сам сейчас пишу этот пост, находясь в Малайзии🇲🇾
Всем доброе утро, мои глубокоуважаемые подписчики!
Открылась вакансия в мою команду. Нужен скиловый Go разработчик, который «и коня на скаку остановит, и в горящую избу войдет».
Кратко чем предстоит заниматься:
- разрабатывать и развивать платформу в облаке Ozon, позволяющую администрировать кластера Cassandra/ScyllaDB;
- улучшать существующие opensource инструменты в экосистеме Scylla/Cassandra и разрабатывать собственные.
Чего жду от кандидата:
- уверенно знает Go;
- умеет работать с большой кодовой базой и писать чистый код;
- умеет проектировать качественное REST и RPC API;
- работал или знаком с kubernetes;
- будет еще большим плюсом, если и в Ansible, и Python силен.
Подробнее о вакансии
Там же можете оставить свой отклик
P.S. удаленка возможна, сам сейчас пишу этот пост, находясь в Малайзии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13🆒3👨💻2 2👍1💯1 1
Прошедшая неделя выдалась неделей встреч. Хотя у многих лидов так всегда😅
Встреч было много, и половина из них — собеседования в команду. Я вообще люблю проводить собесы: это единственный способ научиться грамотно подбирать людей в команду, а для менеджера, согласитесь, это очень важный навык.
Теперь о болях:
1. Найти человека, который идеально впишется в команду, имеет крутые хард скиллы, а ещё и мотивирован перформить — задача не из лёгких. Приходится собеседовать много кандидатов, и иногда (когда луна в козероге или другие астрономические явления) повезёт, и второй или третий кандидат окажется именно тем, кто нужен команде. А может и не повезти. И вот тут важно не поддаваться соблазну:
В большинстве случаев такой подход приводит к «ошибке найма», за которую в конечном итоге расплачивается не только команда, но и компания. Нанять сотрудника — это одно, а вот уволить его или заставить развиваться и расти — совсем другое. Это я говорю на основе собственного опыта.
2. Дефицит квалифицированных кадров на рынке — настоящая боль, особенно на российском рынке труда. Множество классных специалистов уехали за границу или уже нашли своё место мечты с такой зарплатой, что ни один оффер их не заинтересует. Недостаток хороших кадров приводит к снижению стандартов отбора, а на фоне этого в вакансиях часто создаются «тепличные условия» (рынок соискателя). Это не плохо, но отсутствие конкуренции среди кандидатов часто приводит к тому, что они перестают расти, развиваться и даже не стараются готовиться к собеседованиям.
Очень грустно тратить полтора часа на общение с кандидатом, который не только не заинтересован в работе, но и не подготовился к собеседованию, и при этом считает, что это нормально: «я специально не читал эту тему». А были ещё такие, которые ответы с ChatGPT читали... Такие провальные собесы останутся в архивах компании, и в следующий раз отношение к кандидату будет совсем другим.
Итак, TL;DR:
➡️ Всегда готовьтесь к собеседованию и показывайте свою заинтересованность. Даже если вы чего-то не знаете, но можете это грамотно преподнести и показать другие свои сильные стороны, это будет большим плюсом.
➡️ Невозможно расти, просто выполняя рабочие задачи. Зачастую в рамках рабочих задач нет времени на эксперименты с новыми технологиями и паттернами. Нужно делать то, что хорошо умеешь, но также важно параллельно учить новое, пробовать это в личных проектах и потом внедрять в работу.
➡️ Лучше перенести встречу, чем проводить её с телефона на прогулке в парке, при плохом интернете или в условиях ремонта/переезда. Нет ничего хуже, чем постоянно останавливаться и переспрашивать из-за плохой связи, нет.
➡️ Постоянно обучайтесь и развивайтесь как специалисты. Время сейчас меняется так быстро, что важно всегда быть на шаг впереди.
Желаю всем хорошей рабочей недели!
Встреч было много, и половина из них — собеседования в команду. Я вообще люблю проводить собесы: это единственный способ научиться грамотно подбирать людей в команду, а для менеджера, согласитесь, это очень важный навык.
Теперь о болях:
1. Найти человека, который идеально впишется в команду, имеет крутые хард скиллы, а ещё и мотивирован перформить — задача не из лёгких. Приходится собеседовать много кандидатов, и иногда (когда луна в козероге или другие астрономические явления) повезёт, и второй или третий кандидат окажется именно тем, кто нужен команде. А может и не повезти. И вот тут важно не поддаваться соблазну:
«ну давай хотя бы этого возьмём, может, он раскроется».
В большинстве случаев такой подход приводит к «ошибке найма», за которую в конечном итоге расплачивается не только команда, но и компания. Нанять сотрудника — это одно, а вот уволить его или заставить развиваться и расти — совсем другое. Это я говорю на основе собственного опыта.
2. Дефицит квалифицированных кадров на рынке — настоящая боль, особенно на российском рынке труда. Множество классных специалистов уехали за границу или уже нашли своё место мечты с такой зарплатой, что ни один оффер их не заинтересует. Недостаток хороших кадров приводит к снижению стандартов отбора, а на фоне этого в вакансиях часто создаются «тепличные условия» (рынок соискателя). Это не плохо, но отсутствие конкуренции среди кандидатов часто приводит к тому, что они перестают расти, развиваться и даже не стараются готовиться к собеседованиям.
Очень грустно тратить полтора часа на общение с кандидатом, который не только не заинтересован в работе, но и не подготовился к собеседованию, и при этом считает, что это нормально: «я специально не читал эту тему». А были ещё такие, которые ответы с ChatGPT читали... Такие провальные собесы останутся в архивах компании, и в следующий раз отношение к кандидату будет совсем другим.
Итак, TL;DR:
Желаю всем хорошей рабочей недели!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8 2👏1🤡1
Как умение видеть «большую картину» помогло мне вырасти до лида
В самом начале работы над первыми проектами я часто сталкивался с одной и той же проблемой: не хватало целостного представления о том, как задача вписывается в общую систему. Из-за этого я упускал важные кейсы и нюансы, которые не были явно описаны в задаче, но реально встречались в жизни.
С течением времени я начал глубже вникать во все сервисы команды, исследовал смежные области и старался понимать, как в целом работают ключевые компоненты OZON для покупателя. Такое широкое видение позволило мне намного эффективнее выполнять задачи и реализовывать проекты. Постепенно это дало свои плоды: меня назначили тимлидом — и во многом благодаря способности глубоко «погружаться» в процесс и видеть проект целиком.
Совет: даже если вам кажется, что задача маленькая или простая, всегда спрашивайте себя: «Зачем это делается? Какую проблему мы решаем? Как всё это будет функционировать вместе?» По началу это сложно, но именно такой подход помогает вырасти в специалиста более высокого уровня.
Всех с началом рабочей недели!
В самом начале работы над первыми проектами я часто сталкивался с одной и той же проблемой: не хватало целостного представления о том, как задача вписывается в общую систему. Из-за этого я упускал важные кейсы и нюансы, которые не были явно описаны в задаче, но реально встречались в жизни.
С течением времени я начал глубже вникать во все сервисы команды, исследовал смежные области и старался понимать, как в целом работают ключевые компоненты OZON для покупателя. Такое широкое видение позволило мне намного эффективнее выполнять задачи и реализовывать проекты. Постепенно это дало свои плоды: меня назначили тимлидом — и во многом благодаря способности глубоко «погружаться» в процесс и видеть проект целиком.
Совет: даже если вам кажется, что задача маленькая или простая, всегда спрашивайте себя: «Зачем это делается? Какую проблему мы решаем? Как всё это будет функционировать вместе?» По началу это сложно, но именно такой подход помогает вырасти в специалиста более высокого уровня.
Всех с началом рабочей недели!
🔥12❤2👍2🆒2
КТО БЫЛ ПЕРВЫМ ПРОГРАММИСТОМ В ИСТОРИИ?
Если вам кажется, что программирование — это сугубо мужская профессия, задумайтесь: кто, по-вашему, был первым программистом в истории? Возможно, вы подумаете о каком-нибудь инженере XX века, связанном с первыми компьютерами. Но ответ вас удивит!
Первым программистом была женщина — Ада Лавлейс. В середине XIX века, когда компьютеров ещё не существовало, она написала первую в мире программу. Работая с математиком Чарльзом Бэббиджем, Ада создала алгоритм для аналитической машины — теоретического предка современных компьютеров. Её идеи о том, что машины могут не только считать, но и обрабатывать сложные задачи, стали основой для будущих вычислений.
Сегодня, в мире, где технологии развиваются невероятными темпами, женщины продолжают вносить огромный вклад в программирование, науку и инновации.
Дамы, с 8 марта! Пусть ваш интеллект, энергия и стремление к новым вершинам меняют этот мир к лучшему!
Если вам кажется, что программирование — это сугубо мужская профессия, задумайтесь: кто, по-вашему, был первым программистом в истории? Возможно, вы подумаете о каком-нибудь инженере XX века, связанном с первыми компьютерами. Но ответ вас удивит!
Первым программистом была женщина — Ада Лавлейс. В середине XIX века, когда компьютеров ещё не существовало, она написала первую в мире программу. Работая с математиком Чарльзом Бэббиджем, Ада создала алгоритм для аналитической машины — теоретического предка современных компьютеров. Её идеи о том, что машины могут не только считать, но и обрабатывать сложные задачи, стали основой для будущих вычислений.
Сегодня, в мире, где технологии развиваются невероятными темпами, женщины продолжают вносить огромный вклад в программирование, науку и инновации.
Дамы, с 8 марта! Пусть ваш интеллект, энергия и стремление к новым вершинам меняют этот мир к лучшему!
❤16😱3👏2❤🔥1⚡1