Как стать автором
Поиск
Написать публикацию
Обновить
0
0

Пользователь

Отправить сообщение

Как провалить собеседование в IT? 7 типичных ошибок (и как их избежать)

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров54K

Как провалить собеседование в IT? Легко!

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

Читать далее

Spring Reactor. Эволюция сервисов. На пути к реактивности

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров4.6K

Это статья описывает опыт миграции традиционного приложения java spring на Spring reactor стек. О специфике разрабатываемой информационной системы, уже подробно рассказывал. Кратко о системе - смешанная сервисно-микросервисная архитектура. Чтобы получить бизнес результат, требуется вызвать микросервис, который вызывает сервис, который вызывает набор микросервисов для формирования ценностного набора данных. Получается цепочка вызовов. Сервисы и микросервисы разрабатывались на традиционном технологическом стеке, без использования реактивного подхода.

Мое знакомство с реактивным подходом произошло в 2022 году. Плюсы и минусы я осознавал, как мог. В рамках разрабатываемой системы мне было сложно найти ему точку применения. Тогда сложилось понимание, что в существующих рамках реактивный подход не даст возможности эволюционных изменений. Если его применять, то применять ко всему и сразу, как постулирует реактивный манифест.  Даешь революцию! Это было заблуждение. Его я не смог разрушить, даже изучая документацию и статьи. Чего-то релевантного моей ситуации в открытых источниках я найти не мог. Этой статьей постараюсь предложить путь и убедить сомневающихся, что долго раздумывать не стоит. Делайте смелый шаг на пути к реактивному стеку.

Читать далее

Хьюстон, у нас проблема, или Чего не договаривают производители HDD

Время на прочтение12 мин
Количество просмотров61K

Однажды к нам обратился клиент с проблемой: имеется 2 HDD с производительностью записи 250 MБ/с. Из них делается хранилище RAID 0. Начинаем записывать трафик, скорость — 350 MБ/с. Он успешно пишется, но через некоторое время утилизация дисков подходит к 100% и начинаются потери при записи. Вывод клиента: проблема в PT NAD, так как диски должны все успевать. Думаю, многие уже догадываются, в чем соль. У нас тоже имелись догадки, но тем не менее мы решили их проверить. Из этой проблемы и родилось небольшое исследование по записи трафика в хранилище. Под катом — наше расследование «заговора» разработчиков HDD.

Читать

Событийный заказ: Python и Kafka

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.4K

Привет, Хабр!

В этой статье рассмотрим, как на примере магазина котиков — кейса, где каждый заказ превращается в событие — создать событийно‑ориентированную систему обработки заказов с использованием Python, Kafka и Django REST Framework. Создадим REST API для приёма заказов, настроим Kafka‑продюсеры, консьюмеры и реализуем компенсационные транзакции по принципу Saga.

Читать далее

Атрибут или Dunder-метод slots в Python. Что нужно о нём знать?

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров5.4K

Всем привет! Меня зовут Дима. Я являюсь Backend Python Developer'ом. Сегодня расскажу Вам про «волшебный» инструмент __slots__ в Python.

Читать далее

Я проверил, сколько вы платите за одинаковое железо в разных облаках

Время на прочтение43 мин
Количество просмотров32K
image
Чем короче полоска, тем, вероятно, больше вас переподписывают или более старое железо предлагают. Что это за график — ниже

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

Ну и вот теперь показываю вам.

Задача: понять, насколько одинаковый тариф с одинаковым количеством vCPU и RAM выражается в реальную производительность у разных провайдеров.

Забегая вперёд — у меня нет вопросов к Селектелу, Клауд.ру (Сберу) и Яндексу (почти). У них переподписки, вроде, нет. А вот дальше начинается дичь.

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

Ловушки и блокеры IT-лидов

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.2K

Когда мы говорим о команде, мы говорим об объединении людей, и, чаще всего с лидом во главе. Но, возникает вопрос, а что же в голове у лида? И тут я предлагаю вам обратиться к докладу Жени Кузовлева с TeamLead 2024, где он провел исследование среди более чем 100 лидов, чтобы понять, а что из себя представляет этот мир!

И оказалось, что мир состоит из ловушек и блокеров — искажений восприятия реальности нашим мозгом! Это не что-то страшное или редкое, с этим сталкивается каждый из нас!

Есть три ключевых ловушки:
1️⃣ Ретроспективное искажение — мы уверены, что прошлый успех гарантирует будущее.
2️⃣ Самобичевание — внутренний критик, который мешает двигаться дальше.
3️⃣ Расхождение ожиданий — недопонимание того, куда бежим и зачем.

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

Эти внутренние блокеры и ловушки — часть нашего мышления, нашего отношения к себе и к окружающим. Они заставляют нас застревать, сомневаться, тянуть с решениями или бежать не в ту сторону.

Сегодня я расскажу подробнее про каждую из этих ловушек. И самое главное — мы поймем, что важно помнить и учитывать в работе, что мы все находимся под гнетом этих проблем, мы не одиноки, и чувствовать/переживать/беспокоиться — НОРМАЛЬНО!

Читать далее

Смогу ли я уложить оптимизирующий компилятор в тысячу строк питона? Прогон первый: mem2reg

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров4.4K

Год назад мне пришлось взять на себя курс лекций по теории компиляторов. Вы встречались некомпетентными преподавателями? Это я, здравствуйте! Прежде чем учить других, я всё-таки решил заглянуть в учебник сам, и это вылилось в серию статей "компилятор за выходные" (да, я помню, что за мной должок с описанием лексера/парсера). В итоге я уложил компилятор со мной придуманного си-подобного языка на GNU ассемблер в шестьсот строк кода, причём без внешних зависимостей, включая парсинг.

Всё бы хорошо, вроде работает, но кажется, самое веселье осталось за бортом. Мой компилятор, по факту, это простой pretty print вокруг синтаксического дерева, подумаешь. А как работают оптимизирующие компиляторы? И поставил я себе задачу попробовать уложить игрушечный, но всё же рабочий оптимизирующий компилятор в тысячу строк кода. Как думаете, получится?

Итак, тема сегодняшнего разговора - вынос переменных из памяти в регистры, оно же оптимизационный проход mem2reg, см. кпдв.

Читать далее

Практика использования классов Socket и ServerSocket в Java

Время на прочтение7 мин
Количество просмотров3.7K

В этой статье будет показан пример создания небольшого многопользовательского чата с помощью сокетов. Для его реализации вам понадобиться Java и Maven.

Читать далее

Telegram Storage. Бесплатная база данных

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.5K

Да будет Хабр снова торт! Да приидут на него статьи о программировании! И да пребудут на нем всегда технические обсуждения. А теперь к делу... Каждый развивающийся программист, рано или поздно сталкивается с тем, что ему нужна облачная база данных для своего проекта. Между тем, ваш проект может быть не денег ради, а души для, друзей, знакомых, небольшой аудитории, и посему платить деньги за настоящее облачное хранилище данных жалко. Предлагаю вам простое в подключении, проверенное мной лично, хакерское решение, в котором не потребуется указывать никаких платежных или личных данных...

Это бесплатно

Реальный кейс: 22 вопроса на техническом интервью на вакансию Java Lead в JP Morgan в 2025 году

Уровень сложностиСложный
Время на прочтение35 мин
Количество просмотров34K

Аудитории Хабра наверняка интересно, какие вопросы задают на техинтервью в мультинациональных корпорациях. Ведь ИТ-индустрия была и остается глобальной, несмотря на геополитику и разные другие сложности. Как минимум, такая информация об интервью «из первых рук» — это ориентир по уровню сложности собеседования на позицию Java Lead в любых других компаниях, включая крупные российские банковские и промышленные структуры. Именно поэтому эта статья в нашем блоге SSP SOFT.

Читать далее

Конец программирования в том виде, в котором мы его знаем

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров127K

В СМИ много говорят о том, что разработчики ПО скоро потеряют работу из-за ИИ. Я в это не верю.

Это не конец программирования. Это конец программирования в том виде, в котором мы его знаем сегодня.

Читать далее

Как увеличить скорость python-скриптов: C-расширения и Python/C API

Время на прочтение19 мин
Количество просмотров6.9K

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

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

В этой статье я хочу рассказать о том, как интегрировать C-расширения с использованием библиотеки Python.h. Я также расскажу как создать свою python-библиотеку с C-расширениями. Также мы исследуем, как устроен Python — например, вспомним, что все является объектами. Я буду использовать poetry как менеджер рабочего окружения.

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

Не буду тянуть, начнем!

Читать далее

VK, как НЕ НАДО собеседовать middle разработчиков

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров67K

Я являюсь действующим PHP middle разработчиком в одной средней компании. Занимаемся разработкой highload микросервисов в B2B сфере. Клиентами являются крупные интернет‑магазины, в 5 странах, которые на слуху у каждого. Суммарно обрабатываем около 50к запросов в секунду, храним миллиарды записей и отвечаем за качество и жизнеспособность около тысячи интернет‑магазинов.

Имею опыт в техническом собеседовании, в том числе и других middle php разработчиков. За свою карьеру провёл пару десятков таких собеседований, по результатам которых было нанято около 5 разработчиков и 2 аутсорс компании.

Делюсь с опытом собеседования на позицию middle php разработчика во «ВКонтакте».

Читать далее

Как разбирать логи в Linux: journalctl, grep, awk и sed

Время на прочтение3 мин
Количество просмотров17K

Каждый админ хотя бы раз сталкивался с ситуацией, когда сервер внезапно начинает тупить: подвисают процессы, появляются странные задержки, что-то перестаёт работать. И первая остановка в таком случае — это журналы событий. В Linux системные логи хранятся в systemd-journald, а его главный инструмент для работы — journalctl. Но просто читать логи — это скучно. Разберем, как фильтровать, искать ошибки, анализировать данные и автоматизировать разбор логов с помощью grep, awk, sed и других утилит.

Читать далее

Docker Compose: Фичи, которые ускорят вашу разработку

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров22K

Привет, Хабр! Меня зовут Александр, Системный администратор в компании Барс Груп Сегодня хочу поделиться своим опытом использования новых возможностей Docker Compose, которые значительно упростили мне работу. Эти изменения касаются автоматического обновления контейнеров, работы с профилями, использования GPU, а также улучшенного управления сборкой и секретами. На практике заметил, что эти фичи мало используются, и надеюсь, что после прочтения статьи, вы будете чаще использовать эти фичи в своей повседневной работе. Давайте разбираться!

Читать далее

Про Rust — просто. Что читать в каком порядке?

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров25K

Друзья! Многие из вас, возможно, как и я, интересовались изучением и использованием в работе очень эффективного и востребованного языка программирования Rust но, как и я, оставляли свои попытки из-за сложности, запутанности и многослойности доступного материала и книг по этой теме.

Лично я делал не меньше 5 попыток на протяжении последних 10 лет, прорабатывая, большей частью в свободное и личное время, литературу, некоторые книги по несколько раз, в поисках ответов на простые человеческие вопросы - как свободно писать на Rust и решать, как орешки, ежедневные задачи, не страдая от головной боли и хорошо понимая, что происходит и почему простая программа не компилируется.

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

Читать далее

Agile умер: из-за своего сострадания к product- и project-менеджерам (с) Фридрих Ницше

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров43K

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

Читать далее

Старики будут править IT

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров111K

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

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

Читать далее

Заменяем хабраюзеров ИИ-агентами. Гайд по browser-use

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров16K

TLDR: видео с результатом в конце статьи

Библиотека browser-use невероятно стрельнула практически в день релиза, на текущий момент это около 16 тысяч звезд на Гитхабе, и сотни восторженных отзывов на Reddit, в Твиттере, и так далее. Команду, создавшую browser-use даже приняли в YC. У неё революционная точность по сравнению с другими "ИИ агентами использующий браузер" (89% против Runner H с 67%).

Я очень удивился, что на Хабре всё ещё нет статьи с описание того, что это, и как это использовать. Сегодня мы это исправим: мы сделаем ИИ, который будет читать статьи на Хабре, и писать комментарии о том, почему продукт, описанный в статье, никому не нужен.

Добро пожаловать в мир ИИ-агентов!

Информация

В рейтинге
5 939-й
Зарегистрирован
Активность