BACKEND-МИТАП В МОСКВЕ
Сентябрь обещает быть жарким по митапам и конференциям😅
Приглашаю вас на мощный митап для backend-разработчиков!
Я буду одним из спикеров и поделюсь полезными инсайтами. Ждём всех, кто хочет прокачать свои навыки, обменяться опытом и завести крутые знакомства в IT.
📆 Когда: 20 сентября
📍 Где: Москва, Лофт-пространство «Весна»
Спартаковский переулок 2с1, подъезд №7
5 минут от м. Красносельская
7 минут от м. Бауманская
📋Программа
15:00 – 15:30 – Общий сбор
15:30 – 15:50 – Нетворкинг - разделимся на группы, пообщаемся и заведем новые знакомства
15:50 – 16:30 – Игорь Панасюк (Senior в Яндекс)
«Особенности и ловушки модели памяти в Go: тайны синхронизации»
16:30 – 17:10 – Леонид Ченский (TeamLead в OzonTech)
«Пишем микросервисы на Go как в BigTech, с нуля»
17:10 – 17:30 – Перерыв на фуршет
17:30 – 18:10 – Александр Алексеев (CTO в BigTech)
«Зачем и как изучать алгоритмы»
18:10 – 18:50 – Владимир Балун (ex-TeamLead в Яндекс)
«Как пройти System Design интервью: взгляд со стороны интервьювера и кандидата»
18:50 – 19:00 – Завершение контентной части, фотосесия
19:00 – 20:00 – Фуршет и нетворкинг на площадке
20:00 - Afterparty: по желанию едем в бар неподалеку и продолжаем общение в неформальной обстановке
🎁 Подарки за лучшие вопросы:
— книги по backend разработке от спикеров
— сертификаты на бесплатное обучение на любом из курсов школы
— бесплатные mock-собеседования в it-interview.io
— скидки на обучение в нашей школе
❗️Билеты еще не в продаже, но уже доступна предзапись. В зале до 200 мест, поэтому оставляйте заявку, чтобы не упустить возможность. Бронирование бесплатное и не обвязывает к покупке.
➡️ Заполнить анкету предзаписи
Сентябрь обещает быть жарким по митапам и конференциям
Приглашаю вас на мощный митап для backend-разработчиков!
Я буду одним из спикеров и поделюсь полезными инсайтами. Ждём всех, кто хочет прокачать свои навыки, обменяться опытом и завести крутые знакомства в IT.
Спартаковский переулок 2с1, подъезд №7
5 минут от м. Красносельская
7 минут от м. Бауманская
📋Программа
15:00 – 15:30 – Общий сбор
15:30 – 15:50 – Нетворкинг - разделимся на группы, пообщаемся и заведем новые знакомства
15:50 – 16:30 – Игорь Панасюк (Senior в Яндекс)
«Особенности и ловушки модели памяти в Go: тайны синхронизации»
16:30 – 17:10 – Леонид Ченский (TeamLead в OzonTech)
«Пишем микросервисы на Go как в BigTech, с нуля»
17:10 – 17:30 – Перерыв на фуршет
17:30 – 18:10 – Александр Алексеев (CTO в BigTech)
«Зачем и как изучать алгоритмы»
18:10 – 18:50 – Владимир Балун (ex-TeamLead в Яндекс)
«Как пройти System Design интервью: взгляд со стороны интервьювера и кандидата»
18:50 – 19:00 – Завершение контентной части, фотосесия
19:00 – 20:00 – Фуршет и нетворкинг на площадке
20:00 - Afterparty: по желанию едем в бар неподалеку и продолжаем общение в неформальной обстановке
— книги по backend разработке от спикеров
— сертификаты на бесплатное обучение на любом из курсов школы
— бесплатные mock-собеседования в it-interview.io
— скидки на обучение в нашей школе
❗️Билеты еще не в продаже, но уже доступна предзапись. В зале до 200 мест, поэтому оставляйте заявку, чтобы не упустить возможность. Бронирование бесплатное и не обвязывает к покупке.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥6 4❤3 3 3👍2
ПРИГЛАШАЮ НА E-CODE
Осталось чуть более месяца до конференции E-Code от Ozon Tech.
Я приглашаю вас на секцию Backend, которая состоится 13 сентября.
Отобрали лучшие доклады для вас: доклады будут как на тему Go, C#, Java , так и на общие темы.
Также будет много других секций на любой вкус😉
Успейте зарегистрироваться и до встречи!
Осталось чуть более месяца до конференции E-Code от Ozon Tech.
Я приглашаю вас на секцию Backend, которая состоится 13 сентября.
Отобрали лучшие доклады для вас: доклады будут как на тему Go, C#, Java , так и на общие темы.
Также будет много других секций на любой вкус
Успейте зарегистрироваться и до встречи!
Please open Telegram to view this post
VIEW IN TELEGRAM
E-CODE 2025 — IT-конференция от Ozon Tech // 13 и 14 сентября // Москва и онлайн
Инфраструктура и DevOps, С# и Go, iOS и Android, машинное обучение, тестирование, менеджмент, приглашенные гости.
🔥7🆒5👍4
Как фреймворк для построения REST API на Go вы используете
чаще всего?
чаще всего?
Anonymous Poll
20%
Gin
12%
Echo
4%
Gorilla
25%
gRPC-gateway
40%
Просто посмотреть 🙂
❤2🗿2 2 2
Чтобы было честно:) Какой из этих фреймворков используете чаще всего для построения REST API на Go?
Anonymous Poll
15%
Gin
8%
Echo
5%
Gorilla
17%
gRPC-gateway
7%
Fiber
18%
Chi
3%
fasthttp
16%
Ванильный net/http
11%
Кодогенерация (oapi-gen, go-swagger, …)
🗿3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Первый месяц на позиции TeamLead выглядит именно так😅
3😁18🤣6💯4🔥1
Говорят, чтобы стать профессионалом в любой сфере, нужно 10 000 часов практики.
Если тратить на развитие по 40 часов в неделю — это 250 недель, то есть примерно 5 лет непрерывной работы (именно поэтому в вакансиях для уровня senior требуют опыт работы от 5 лет). Надо 5 лет, чтобы выйти на уровень эксперта…
Но давайте честно: а можно ли быстрее?
Ведь далеко не все рабочие задачи реально качают скилл. Можно годами решать однотипные тикеты и оставаться на том же уровне.
По-настоящему мы растём, когда сами ищем новое, пробуем, экспериментируем, ошибаемся и исправляемся. Не ждём «особой задачи», которая вдруг нас вытащит на новый уровень, а сами становимся источником своего роста.
Потому что правда проста: ни ваш руководитель, ни компания, ни коллеги, ни даже ментор не заинтересованы в вашем развитии так, как вы сами.
За ваши навыки отвечаете только ВЫ.
За последние три года я провёл десятки собеседований с инженерами и заметил одну закономерность: лучшие офферы получают не те, кто много лет просидел на одном месте, а те, у кого разнообразный опыт и работа с разными технологиями и они не останавливаются в развитии своих скилов.
А когда и что нового вы в последний раз изучили в своей сфере?
Если тратить на развитие по 40 часов в неделю — это 250 недель, то есть примерно 5 лет непрерывной работы (именно поэтому в вакансиях для уровня senior требуют опыт работы от 5 лет). Надо 5 лет, чтобы выйти на уровень эксперта…
Но давайте честно: а можно ли быстрее?
Ведь далеко не все рабочие задачи реально качают скилл. Можно годами решать однотипные тикеты и оставаться на том же уровне.
По-настоящему мы растём, когда сами ищем новое, пробуем, экспериментируем, ошибаемся и исправляемся. Не ждём «особой задачи», которая вдруг нас вытащит на новый уровень, а сами становимся источником своего роста.
Потому что правда проста: ни ваш руководитель, ни компания, ни коллеги, ни даже ментор не заинтересованы в вашем развитии так, как вы сами.
За ваши навыки отвечаете только ВЫ.
За последние три года я провёл десятки собеседований с инженерами и заметил одну закономерность: лучшие офферы получают не те, кто много лет просидел на одном месте, а те, у кого разнообразный опыт и работа с разными технологиями и они не останавливаются в развитии своих скилов.
А когда и что нового вы в последний раз изучили в своей сфере?
👍10❤3💯3🔥1
Forwarded from Владимир Балун
🚀 PostgreSQL в микросервисах на Go
📆 25 августа в 19:00 по МСК пройдет бесплатный открытый урок по микросервисам, как в BigTech от Леонида Ченского (Team Lead в Ozon и ех-декан Route256)
На открытом уроке:
- изучишь основы эксплуатации: пуллеры, репликация, patroni, шардирование
- узнаешь почему микросервисам нужна своя база данных: паттерн Database per Service
- поймешь подходы к SQL-запросам: sql/database, pgx, билдеры запросов, ORM, кодогенерация
- изучишь миграцию схем с goose и best practices, которые помогут не сломать прод
Зарегистрировать на бесплатный открытый урок можно по ссылке
Кто я | Навигация | Спасибо
📆 25 августа в 19:00 по МСК пройдет бесплатный открытый урок по микросервисам, как в BigTech от Леонида Ченского (Team Lead в Ozon и ех-декан Route256)
На открытом уроке:
- изучишь основы эксплуатации: пуллеры, репликация, patroni, шардирование
- узнаешь почему микросервисам нужна своя база данных: паттерн Database per Service
- поймешь подходы к SQL-запросам: sql/database, pgx, билдеры запросов, ORM, кодогенерация
- изучишь миграцию схем с goose и best practices, которые помогут не сломать прод
Зарегистрировать на бесплатный открытый урок можно по ссылке
Кто я | Навигация | Спасибо
👍5🔥5❤2🆒1
🚀 Меньше двух недель до нашего backend-митапа
Приходи, чтобы погрузиться в многопоточность, микросервисы, промпт-инжиниринг и System Design с разработчиками из BigTech. Разбираем то, что нужно для работы и успешных собеседеоний.
• Когда: 20 сентября
• Где: Москва, Пространство «Весна»
🎟️ Еще остались билеты, поспеши!
Приобрести билет можно по ссылке: https://clck.ru/3Nd8ea
Приходи, чтобы погрузиться в многопоточность, микросервисы, промпт-инжиниринг и System Design с разработчиками из BigTech. Разбираем то, что нужно для работы и успешных собеседеоний.
• Когда: 20 сентября
• Где: Москва, Пространство «Весна»
🎟️ Еще остались билеты, поспеши!
Приобрести билет можно по ссылке: https://clck.ru/3Nd8ea
❤5👨💻4 3🆒1
Что происходит с Go-разработкой в 2025 году?
DevCrowd запускает ежегодное исследование Go-разработчиков.
Участвуйте и помогите собрать срез профессии — живой, честный, актуальный.
Зачем участвовать?
– сравните себя с другими: задачи, подходы, зрелость процессов
– узнаете, какие технологии и практики в ходу у коллег
– получите ориентиры для развития и найма
– сделаете профессию Go-разработчика прозрачнее для рынка
📊 Результаты — в начале ноября на devcrowd.ru
⏳ Заполнение займёт 10–12 минут
👉 Пройти опрос
👀 Посмотреть результаты прошлого года
DevCrowd запускает ежегодное исследование Go-разработчиков.
Участвуйте и помогите собрать срез профессии — живой, честный, актуальный.
Зачем участвовать?
– сравните себя с другими: задачи, подходы, зрелость процессов
– узнаете, какие технологии и практики в ходу у коллег
– получите ориентиры для развития и найма
– сделаете профессию Go-разработчика прозрачнее для рынка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4👍2
Если от вас требуют оценку по задаче, вместо того, чтобы сказать «не знаю», используйте данную шпаргалку и переведите ваше ощущение в часы.
PM/TeamLead скажут вам спасибо🙂
PM/TeamLead скажут вам спасибо
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12👍3🤡2💯2🤣2🗿1
🎥 Запись моего доклада с Backend-Meetup Balun!
Наконец-то дошли руки поделиться😅
В этом году я, увы, пропустил все большие конференции, но оставить сезон без выступлений — было бы преступлением. Поэтому — держите запись моего доклада👉 ссылка
Тема — микросервисы и как их быстро и легко писать с нуля.
Митап получился насыщенным: живые обсуждения, острые вопросы и крутая атмосфера🔥
Спасибо организаторам и участникам за энергию и интерес!
В следующем году точно надо наверстать упущенное 😉
🔗 Все доклады с митапа можно посмотреть в плейлисте
Наконец-то дошли руки поделиться😅
В этом году я, увы, пропустил все большие конференции, но оставить сезон без выступлений — было бы преступлением. Поэтому — держите запись моего доклада
Тема — микросервисы и как их быстро и легко писать с нуля.
Митап получился насыщенным: живые обсуждения, острые вопросы и крутая атмосфера
Спасибо организаторам и участникам за энергию и интерес!
В следующем году точно надо наверстать упущенное 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥12❤9👏4🆒2🏆1
Вот вам задачка на воскресное утро ☀️
👩💻 Тонкости миграций Postgres: как сделать поле явно
Есть огромная таблица some_big_table в которую непрерывно идут запросы на запись и чтение.
В этой таблице есть колонка foo_field, которая изначально
Разработчик предлагает следующую миграцию:
0001_migration.sql:
Ваш вердикт на ревью?
Поставьте реакцию 👍 — если считаете миграцию верной, 🤡 — если не верной.
______________________
Ответ будет в следующем посте
NOT NULL и не уронить базу?Есть огромная таблица some_big_table в которую непрерывно идут запросы на запись и чтение.
В этой таблице есть колонка foo_field, которая изначально
NULLABLE, но фактически мы всегда туда пишем значение. И вот мы хотим сделать её явно NOT NULL.Разработчик предлагает следующую миграцию:
0001_migration.sql:
BEGIN;
ALTER TABLE some_big_table
ADD CONSTRAINT some_big_table_foo_field_not_null
CHECK (foo_field IS NOT NULL) NOT VALID;
ALTER TABLE some_big_table
VALIDATE CONSTRAINT some_big_table_foo_field_not_null;
COMMIT;
Ваш вердикт на ревью?
Поставьте реакцию 👍 — если считаете миграцию верной, 🤡 — если не верной.
______________________
Ответ будет в следующем посте
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡20👍5🔥2👀1
Отличная дискуссия получилась — и да, большинство гуру Postgres ответило верно! Давайте спокойно разберёмся, почему.
«Совсем плохой» способ — просто сделать колонку NOT NULL:
Почему так делать очень плохо на большой таблице?
Чтобы убедиться, что в столбце нет
Правильный подход: через
Идея — разделить «включить проверку для новых записей» и «проверить историю» на два шага.
1. Добавляем ограничение без проверки истории (не блокирует обновления надолго):
С флагом
2. Отдельно валидируем историю:
Что именно могло заблокировать таблицу в нашем кейсе?
Наша SQL миграция выглядит так (все в одной транзакции):
В примере я специально указал, что оба действия выполнятся в рамках одной транзакции (многие это заметили).
Однако, когда мы используем сторонние решения для миграций (напрмер goose), мы получаем неявное повдение — миграции в одном файле будут также исполняться в рамках одной транзакции (если не укажем обратное).
В таком случае:
- Мы берем блокировку ACCESS EXCLUSIVE для добавления
- Далее эта блокировка будет удерживаться до конца работы транзакции
- Валидация нагрузки происходит долго, что приводит к тому, что транзакция превращается в долгоживующую => таблица заблокирована надолго.
Практический вывод: Делайте
А чтобы не переживать насчет ваших миграций, вы можете настроить линтер: squawkhq
«Совсем плохой» способ — просто сделать колонку NOT NULL:
ALTER TABLE some_big_table
ALTER COLUMN foo_field SET NOT NULL;
Почему так делать очень плохо на большой таблице?
Чтобы убедиться, что в столбце нет
NULL, Postgres сканирует всю таблицу. Такие изменения вокруг ADD CONSTRAINT/SET NOT NULL обычно требуют ACCESS EXCLUSIVE — самый сильный DDL-лок, конфликтующий со всеми операциями, включая чтения. Это легко превращается в stop the world на таблице, если операция длится долго.Правильный подход: через
NOT VALID → VALIDATEИдея — разделить «включить проверку для новых записей» и «проверить историю» на два шага.
1. Добавляем ограничение без проверки истории (не блокирует обновления надолго):
ALTER TABLE some_big_table
ADD CONSTRAINT some_big_table_foo_field_not_null
CHECK (foo_field IS NOT NULL) NOT VALID;
С флагом
NOT VALID добавление не сканирует таблицу и может быстро зафиксироваться. Новые/изменённые строки уже обязаны удовлетворять условию.2. Отдельно валидируем историю:
ALTER TABLE some_big_table
VALIDATE CONSTRAINT some_big_table_foo_field_not_null;
VALIDATE CONSTRAINT сканирует только существующие строки и берёт уже SHARE UPDATE EXCLUSIVE (гораздо мягче), так что записи не блокируются так сурово, как при прямом SET NOT NULL.Что именно могло заблокировать таблицу в нашем кейсе?
Наша SQL миграция выглядит так (все в одной транзакции):
BEGIN;
ALTER TABLE ... ADD CONSTRAINT ... CHECK (...) NOT VALID;
ALTER TABLE ... VALIDATE CONSTRAINT ...;
COMMIT;
В примере я специально указал, что оба действия выполнятся в рамках одной транзакции (многие это заметили).
Однако, когда мы используем сторонние решения для миграций (напрмер goose), мы получаем неявное повдение — миграции в одном файле будут также исполняться в рамках одной транзакции (если не укажем обратное).
В таком случае:
- Мы берем блокировку ACCESS EXCLUSIVE для добавления
CONSTRAINT- Далее эта блокировка будет удерживаться до конца работы транзакции
- Валидация нагрузки происходит долго, что приводит к тому, что транзакция превращается в долгоживующую => таблица заблокирована надолго.
Практический вывод: Делайте
ADD CONSTRAINT ... NOT VALID и фиксируйте сразу (быстрый COMMIT). А VALIDATE CONSTRAINT запускайте отдельной миграции и, желательно, в спокойный период.А чтобы не переживать насчет ваших миграций, вы можете настроить линтер: squawkhq
🔥12❤11⚡4👍3🙏1
Cloudflare нашли редчайший баг — прямо в компиляторе Go для ARM64
Да, это не опечатка: не рантайм, не гасе condition в их коде, а чистый косяк в сгенерированном машинном коде Go. И баг был настолько редким, что проявиться он мог только в инфраструктуре масштаба Cloudflare при 84 миллионах НТТР-запросов в секунду.
Не завидую парням, сам пол недели фикшу баги в драйвере на go…
Да, это не опечатка: не рантайм, не гасе condition в их коде, а чистый косяк в сгенерированном машинном коде Go. И баг был настолько редким, что проявиться он мог только в инфраструктуре масштаба Cloudflare при 84 миллионах НТТР-запросов в секунду.
Не завидую парням, сам пол недели фикшу баги в драйвере на go…
Хабр
Cloudflare нашли редчайший баг — прямо в компиляторе Go для ARM64
Да, это не опечатка: не рантайм, не race condition в их коде, а чистый косяк в сгенерированном машинном коде Go . И баг был настолько редким, что проявиться он мог только в инфраструктуре масштаба...
🤔5 2
This media is not supported in your browser
VIEW IN TELEGRAM
Признавайтесь, у кого так было?)
😁6🔥5💯3🤣3