Pull to refresh
0
@doublethinker11read⁠-⁠only

User

Send message

Мой плохой код — это ваша вина

Level of difficultyHard
Reading time14 min
Reach and readers25K

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

Я как-то привык что если что-то ломается или плохо работает, то это я виноват. Это называется «брать ответственность за свои поступки» или, в случае программиста, за свой код, и это считается хорошим делом.

Разумеется, по эго это бьёт иногда больно, и некоторые моменты вспоминать не очень приятно. Самое страшное, что я когда-либо делал — коммитил приватный ключ в публичной репо. Вот написал и мне опять стыдно. Но я осознаю, что это всё я.

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

Сейчас я вам это покажу. Будет интересно, но впереди много боли. Я предупредил.

Хочу страдать

Никого не повышают за простые решения

Level of difficultyEasy
Reading time6 min
Reach and readers40K

Простота — это великое благо, но для её достижения необходим усердный труд, а для понимания — хорошее образование. Чего не скажешь про сложность, которая продаётся намного легче». — Эдсгер Дейкстра

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

Естественно, это происходит ненамеренно. Никто не строит коварных планов в духе «А давай сделаем так, чтобы повышение получали только те, кто всё усложняет.» Но такое нередко происходит, когда в компании неверно оценивают проделанную сотрудниками работу.

Читать далее

Java без розовых очков: какие знания отделяют грейды

Level of difficultyMedium
Reading time16 min
Reach and readers16K

Почти каждый разработчик рано или поздно задается вопросом: «Я уже Middle или все еще уверенный Junior?» Опыт растет, задач становится больше, стек шире — но вместе с этим появляется и иллюзия, что раз ты пишешь на Java каждый день, значит, язык знаешь. На практике же границы между грейдами проходят не по количеству лет в профессии и не по числу реализованных фич. Они проходят по глубине понимания: платформы, архитектуры, производительности, работы с данными и собственных ограничений.

Привет, Хабр! Меня зовут Любовь Кулева, я руководитель отдела разработки и методологии Учебного центра IBS. В 2025 году мы выпустили три полноценные «дорожные карты развития» — для системного аналитика, для архитектора ПО и для бизнес-аналитика. В этой статье поговорим про джавистов: что на самом деле стоит за грейдами и какие компетенции формируют профессионала на каждом этапе.

Читать далее

Ищи работу правильно — как не ошибиться в важном выборе

Level of difficultyEasy
Reading time3 min
Reach and readers11K

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

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

Собеседований много, информация начинает смешиваться. По итогу в голове остаётся только одно — предложенная зарплата.

В результате решение об оффере принимается почти вслепую.

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

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

Поделюсь основными из них, надеюсь, что всем будет полезно 👇

Читать далее

Я 13 лет строил чужой бизнес, потом поставил холодильник и зарабатываю 43 тыс с точки

Level of difficultyEasy
Reading time7 min
Reach and readers327K

Статья написана на основе интервью с Ильей Кравченко, владельцем федеральной сети микромаркетов самообслуживания RefreshTech.

Я 13 лет проработал в крупной федеральной вендинговой компании. Отвечал за 2,5 тысячи вендинговых аппаратов и около 200 микромаркетов. Микромаркет — это холодильник в офисе: внутри готовая еда, супы, салаты, горячее, напитки. Подошел, открыл, взял, оплатил через приложение или картой. Никакого кассира, никакой очереди.

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

Когда в 2021 году я ушел и открыл свои микромаркеты, решил строить иначе. Не думал, что добавить — думал, что можно убрать.

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

Расскажу, как устроен этот бизнес

Читать далее

Собеседования в Яндекс и ВК (бэкенд, февраль 2026) — этапы, задачки, впечатления

Level of difficultyEasy
Reading time29 min
Reach and readers41K

Полгода назад была статья как Яндекс обновляет процесс найма разработчиков - а недавно, в феврале 2026 я вновь опробовал этот "процесс" - и вот поделюсь, насколько он реально "обновился" (т.к. я проходил его и раньше). Одновременно шёл аналогичный процесс с ВК - постараюсь описать сходства и различия по всем этапам, в которых участвовал - может быть полезно и тем кто проходит подобные собеседования - и тем кто формирует процессы найма.

Краткий вывод такой: описанные в той статье «обновления» присутствуют, но значительных изменений не ощущается. В конце выявился «один нюанс», который портит целесообразность процесса изначально (можно сразу пролистать в конец статьи если любопытно). Так что «обновлениям» впереди ещё немалый путь!

Читать далее

Белые списки добрались до Москвы: изучаем механику «отсечки» в 16 килобайт

Level of difficultyMedium
Reading time5 min
Reach and readers84K

В общем, то, о чем долго говорили в регионах, наконец-то полноценно пришло в Москву (в Питере уже давно). Если раньше мобильный интернет в столице был относительным «островком стабильности», то последние события в ЮАО и массовые отчеты из Петербурга показывают — систему белых списков и фильтрацию трафика включили на полную мощь.

Я решил немного пореверсить ситуацию, так как обычные жалобы на «плохую связь» уже не обьясняют того, что происходит на сетевом уровне. Это не технический сбой операторов (они, кстати, сами в шоке и разводят руками), а целенаправленная работа ''Продвинутого DPI''.

Читать далее

Код ИИ — это бред

Level of difficultyEasy
Reading time9 min
Reach and readers29K

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

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

Да, мир не станет никогда прежним. Как он уже не станет "доинтернетным". Но вы не умеете новым миром пользоваться. Вы его вкалываете внутривенно, увеличивая дозу и не думая о последствиях. Это убьёт всех. Вас, меня, их.

Я расскажу почему. Скорее всего вам не захочется это знать. Это будет здесь, за этой кнопкой. Решать вам.

Читать далее

Шаблонный сервис на FastAPI

Level of difficultyMedium
Reading time2 min
Reach and readers9.2K

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

Так зачем же нужен шаблонный сервис?

Читать далее

Чебурнет 2026: как вы дотерпелись

Level of difficultyMedium
Reading time7 min
Reach and readers81K

Снова привет, Хабр.... добро пожаловать в 2026

О белых списках, Yggdrasil и о том как мы достигли нового уровня блокировок

Читать далее

Как резать стекло ножницами и не только: эффект Ребиндера

Level of difficultyMedium
Reading time7 min
Reach and readers48K

Картинка: freepik.com

Знали ли вы, что существует очень интересный эффект, который позволяет с лёгкостью понижать прочность у весьма крепких структур — металлов, кристаллических тел и даже аморфных объектов (например, стекла)? При этом сам эффект проявляется практически мгновенно, и для его реализации не нужны какие-то сложные подходы — нужно всего лишь смазать или погрузить объект в соответствующую среду, и начинаются чудеса: резание стекла ножницами, пробивание камня или керамики гвоздём и т. д.

Да, сегодня мы поговорим как раз о таком примечательном эффекте — эффекте Ребиндера!

Читать далее

Бойтесь буквы «M». Самый странный баг в моей жизни

Level of difficultyMedium
Reading time5 min
Reach and readers36K

Вечером в пятницу коллега, назовем его Мститель, спросил, не сталкивался ли я с проблемой, что route возвращает 400... но «если сменить название на сильно другое», то всё ок. Я сперва не обратил внимание на слово «сильно». Может быть, где-то дублируется регистрация этого рута? Или мститель перепутал GET и POST. Или какой-то баг в общем на создание хэндлеров?

Милости просим

Новая норма ИТ-команд: недоговаривать

Level of difficultyMedium
Reading time5 min
Reach and readers34K

«Я заметил, что возникает дефицит внимания в твоей команде, и это снижает мотивацию,» — сказал председатель ПРП в одной из наших приватных бесед на профсоюзной встрече. И я решила разобраться с этим. В статье опишу результаты этого исследования: возникновение, основные проявления и способы устранения этого дефицита.

Читать полностью

Месседжер MAX следит за пользователями VPN? Реверс инжиниринг говорит — да (добавлено обновление)

Level of difficultyEasy
Reading time9 min
Reach and readers497K

И этот заголовок - не кликбейт. Подвергнув реверс инжинирингу клиент российского мессенджера MAX удалось подтвердить самые худшие предположения.

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

TL;DR - содержит шпионский модуль, который сделали разработчики MAX для слежки за теми кто использует VPN, они постарались сделать этот модуль неблокируемым и прикрутили удаленное управление.

Читать далее

Сделка с совестью на хакатоне или «Как победить с нерабочим кодом?» История одной команды…

Level of difficultyEasy
Reading time10 min
Reach and readers16K

🏆 1 место на хакатоне без работающего кода? Легко!

Мы заняли 3 место с рабочим сервисом. Победители показали картинки и получили премию Мэра. Мы проверили их GitHub: там пусто.

Внутри расследование:

Ссылки на код победителей (alert() вместо API).

Разбор метрик (SMAPE 79%).

Как связи решают всё.

Читайте, как выигрывают не технологии, а подрядчики. 👇

Погрузимся в историю...

Российский мессенджер MAX замечен в обращении к иностранным сервисам определения IP и серверам конкурентов

Level of difficultyEasy
Reading time4 min
Reach and readers215K

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

Схема была довольно прямолинейной: в одном случае использовали PCAPdroid — приложение, которое на Android‑устройстве имитирует VPN для перехвата сетевого трафика без необходимости получения root‑прав, таким образом позволяя отслеживать, анализировать и блокировать сетевые соединения, осуществляемые приложениями на устройстве. В другом случае анализировался трафик из эмулятора, причем отдельно отмечено, что образ системы в эмуляторе был «чистый», без установленных других мессенджеров и дополнительного софта.

По наблюдениям (дампы PCAPdroid выложены на форуме), мессенджер MAX регулярно дергает сразу несколько сервисов для определения внешнего IP‑адреса, причём часть из них — зарубежные. Среди доменов, которые всплыли при проверке, кроме российских сервисов, видны также иностранные сервисы.

Читать далее

Коллекции в Java: алгоритмическая сложность и как не тормозить код

Reading time7 min
Reach and readers6.5K

Как выбрать коллекцию в Java, чтобы код летал? Разбираем алгоритмическую сложность (Big O) самых популярных структур: ArrayList, LinkedList, HashSet, HashMap. В конце — схемы выбора и лучшие практики от команд. Сохраняйте, чтобы не забыть!

Читать далее

Если бы я начинала свой путь в IT заново

Reading time4 min
Reach and readers24K

Я начинала в 2018 году, будучи в 10-м классе. Моим первым системным обучением стал Яндекс Лицей, где я изучала Python и впервые увидела программирование не как учебную дисциплину, а как инструмент создания реальных решений.

Читать далее

LTS, обновления и поддержка (support): что именно вы выбираете в Java и Spring

Level of difficultyEasy
Reading time9 min
Reach and readers5.6K

Когда начинается разговор про Java, почти всегда он внезапно уходит в сторону Spring. И это не случайность.

Проблемы с релизами, поддержкой, миграциями, безопасностью — это не «проблемы Spring». Это следствие того, как изменилась сама Java-экосистема.

Чтобы понять, что происходит со Spring, нужно сначала разобраться, что произошло с Java.

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity

Specialization

Бэкенд разработчик, Фулстек разработчик
Java
Spring Boot
Java Spring Framework
Git
ООП
Docker
JDBC
Java Servlet
Hibernate
Apache Maven