Pull to refresh

Technotext

Тысяча первый пост про токсичные собеседования

Reading time5 min
Reach and readers41K

… На этот раз без хейта, но с мемами.

Привет, Хабр! Меня зовут Леонид Калядин, я Cluster Data lead в МТС Web Services. Однажды на собеседовании в очень известную компанию с моим знакомым случилась интересная история. После интервью он произнес всего одну странную фразу. «Я ответил все правильно, кроме тех вопросов, где нужно было ошибиться» Оказалось, что он дал верный ответ, а собеседующий начал утверждать обратное. В итоге моему другу отказали с формулировкой «У вас недостаточные знания SQL».

Вопрос при этом был простейший: «Какие поля можно вывести в SQL-запросе, при условии использования групповой функции?». Ответ друга: «Те, которые участвуют в группировке и результаты агрегации по другим полям». Внезапно собеседующий сотрудник сказал, что это не верно и вывести можно все поля. Вот так просто и безапелляционно он закончил интервью, не став ничего проверять в онлайн редакторе SQL-кода.

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

Читать далее

Python в Enterprise-разработке: почему популярность ЯП распространилась и на корпоративный сектор. Часть 1

Reading time12 min
Reach and readers14K

Привет! Это Леша Жиряков, я руководить бэкенд-команды витрины KION и Python-гильдии в МТС. Как раз о Python сегодня и пойдет речь. Обсудим, почему самый популярный ЯП, по версии TIOBE, так востребован в корпоративном секторе: из простого инструмента автоматизации он превратился в полноценную экосистему для создания критически важных продуктов.

Если коротко, причина успеха — в эволюции языка и его экосистемы. Аннотации типов в Python 3.5 сделали доступной статическую проверку кода без потери гибкости динамической типизации. Это решающий фактор для корпоративной разработки, ведь главные требования тут — это надежность и поддерживаемость.

Недавно я уже писал о причинах успеха Python в целом, а сегодня хочу подробно рассмотреть его современные инструменты для предприятий: типизированные структуры данных с dataclasses, высокопроизводительные системы валидации msgspec, pydantic 2 и другие библиотеки. То есть все, что помогло ему стать идеальным выбором для серьезных бизнес-решений. Информации много, так что тему разобью на две части. Погнали!

Читать далее

Точки перелома: как применить стратегическое мышление в повседневной жизни

Reading time9 min
Reach and readers20K

Несколько лет назад я решил испытать себя и поехал в горный массив Хибины, чтобы пересечь его в одиночку. Через четыре дня я оттуда вышел, но не там, где планировал, и не в том состоянии. Часть вещей была утеряна, я был мокрый, голодный, злой — своего рода аll-inclusive наоборот.

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

Привет, Хабр! Я Александр Фокин, лидер по стратегии в МТС и участник TeamLeadConf. Уже 15 лет работаю в IT-индустрии в управлении продуктами и проектами, выстраивании процессов, кризис-менджменте и траблшутинге.

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

Читать далее

Как сделать централизованное логирование и крепко спать по ночам

Level of difficultyMedium
Reading time12 min
Reach and readers34K

Мы начинали с обычного ELK-стека, логи приходили на logstash, записывались в Elasticsearch, а пользователи смотрели их в Kibana. Потом в эту схему добавилась Kafka, так как мы понимали, что на пиках нагрузок не успеваем записать все логи в Elasticsearch. Всё это располагалось в одном ЦОДе, а в Kafka была единая очередь. В результате горизонтального масштабирования Elasticsearch разросся до 30+ нод. Данная схема справлялась с нагрузкой в 100 тысяч документов в секунду.

Как вы понимаете, эта схема нас устраивала только до определённого периода. В какой-то момент нагрузка начала расти как на дрожжах.

Привет, Хабр! На связи Филипп Бочаров, руководитель платформы наблюдаемости и мониторинга для более 400 продуктов экосистемы МТС, и Юлия Тальцкова, ведущий инженер сервиса логирования и кластеров Open Search с более 400 терабайтами логов клиентов. Этот материал написан на основе нашего доклада для конференции Highload++

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

Читать далее

Я стал СТО. А что теперь надо делать?

Level of difficultyEasy
Reading time11 min
Reach and readers11K

Привет, Хабр! Меня зовут Антон Ивахненко, я технический директор группы Рунити и по совместительству — СТО в РБК.

Когда-то я сам впервые оказался в роли СТО. Тогда Рунити еще не существовало, и разработка в компании была относительно небольшой. А потом — слияния, рост, новые структуры, десятки направлений. Со временем мне довелось искать и адаптировать руководителей разработки, выстраивать команды с нуля и смотреть, как люди по-разному проживают одну и ту же роль. Кто-то брался тащить всё на себе, кто-то терял темп на втором месяце, кто-то выстраивал всё удивительно спокойно — и всё работало.

За годы я повидал много историй — и своих, и чужих. В статье поделюсь личным опытом: как зайти в роль СТО, удержаться в ней первые месяцы и не выгореть.

Читать далее

Как Perl держит 30% продакшна Рунити и почему нас это устраивает

Level of difficultyEasy
Reading time7 min
Reach and readers5.8K

Привет, Хабр! На связи команда идентификации и авторизации Рунити. Мы отвечаем за сервисы, через которые проходит каждый пользователь: регистрация, авторизация, верификация личных данных и жизненный цикл договора пользователя.

Perl принято хоронить примерно с 2010 года. В феврале 2026-го TIOBE вернул его в топ-10 — и это немного всколыхнуло профессиональное сообщество. В группе компаний Рунити на Perl работает 25–30% продакшн-сервисов: биллинг, авторизация, очереди, ядро платформы. Расскажем, почему так вышло, что происходит, когда мы пытаемся это переписать, и почему нам за это не стыдно.

Читать далее

Как мы построили корпоративного RAG-ассистента: от личного стартапа до внутреннего продукта

Level of difficultyEasy
Reading time6 min
Reach and readers7.9K

Привет, Хабр! На связи команда Рунити под руководством Антона Ивахненко: Дмитрий Виноградов, руководитель направления разработки, менеджер продукта Карина Калеева, ML-инженер Александр Михеев и тех.лид Владимир Устьянцев. 

В этой статье мы рассказываем про RAG-ассистента, который скоро у нас появится. Этот ассистент ищет по Confluence и GitLab одновременно, уважает права доступа и не отправляет корпоративные данные наружу. Но обо всём по порядку. 

Читать далее

Как мы превратили каталог процессов в «цифрового сотрудника» на LLM и low-code

Level of difficultyEasy
Reading time9 min
Reach and readers4.7K

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

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

В Островке (тысячи сотрудников, распределённые команды, несколько продуктовых направлений и операционная работа 24/7) мы столкнулись с этой проблемой в полном объёме. Каталог процессов начал формироваться, но быстро стало ясно: сам по себе он не создаёт ценности. Читать схемы BPMN готовы немногие, а поддерживать актуальность описаний вручную — дорого и нестабильно.

Так мы встали на путь превращения каталога процессов из статичного документа в сервис. Поверх него был построен чат-бот на базе LLM и RAG с low-code автоматизацией, который стал точкой входа в процессную архитектуру: отвечает на вопросы, инициирует обновления, обучает сотрудников и принимает заявки на оптимизацию.

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

Читать далее

Как мы проводим тестирования: итоги испытаний отечественной гиперконвергентной платформы vStack

Level of difficultyMedium
Reading time6 min
Reach and readers2.1K

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

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

Целью испытаний было проведение функционального и нагрузочного тестирования серверного оборудования Fplus Спутник FPD-R-13-SP и ПО vStack начиная с установки, настройки ПО, запуска различных виртуальных машин (ВМ) и настройки виртуальных сетей и прочего.

По ряду сценариев vStack показал себя относительно быстрее других систем управления виртуализацией на основе oVirt, особенно в режимах создания и загрузки ВМ из готовых образов. В ряде моментов все же возникали вопросы, особенно касающиеся работы консоли и загрузки пользовательских образов, о чем были высказаны пожелания разработчику ПО. Инженеры нашей лаборатории постарались выполнить тестирование и использование данной платформы от лица нашего потенциального заказчика, основываясь только на документации и с минимальным привлечением к работам создателей ПО.

Читать далее

Как упаковать React и три Java-сервиса в один .exe с помощью Electron и ничего не сломать

Level of difficultyEasy
Reading time22 min
Reach and readers6.7K

Всем привет! Меня зовут Евгений Оселедец, я ведущий разработчик в компании Axenix. В этой статье расскажу, как мы упаковали React и Java в единое автономное desktop-приложение с помощью Electron для Windows, Linux и macOS — без Docker, без предустановленной Java у пользователя и без необходимости интернет-соединения. Расскажу, с какими техническими вызовами мы столкнулись и какие решения сработали на практике.

Читать далее

Как мы адаптируем Agile в Ozon?

Level of difficultyMedium
Reading time16 min
Reach and readers14K

Привет, Хабр! Меня зовут Антон, я — тимлид в Ozon. За более чем 20 лет работы в IT, где свыше 15 из них выпало на управленческие должности, меня покидало по разным проектам разработки ПО. Познавая управленческое мастерство, я нередко замечал, как на проектах игнорировали самую важную часть — ориентированность на Клиентов, то есть для кого мы, собственно, эти проекты и продукты реализуем.

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

Проблемы Agile отмечают не только рядовые пользователи, но и такие мастера, как Роберт С. Мартин и Кент Бек — двое из тех, кто составил Agile Manifesto. Как отмечает Ален Холуб, Agile в последнее время стал означать: делать половину задач (активностей) из Scrum плохо с использованием Jira.

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

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

Итак, подслушано в баре об Agile: некомедия в пяти актах...

Третий звонок. Занавес поднимается...

Многопоточность в мобильных приложениях: руководство для QA-инженеров

Level of difficultyEasy
Reading time7 min
Reach and readers9.4K

Всем привет! Меня зовут Ира, я руковожу отделом тестирования мобильной платформы в Ozon Tech. Наш отдел занимается разработкой инструментов для автоматизации тестирования мобильных приложений Ozon и тестированием внутренних библиотек.

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

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

Читать далее

Убрать рутину из регресса или как автоматизировать, не зная кода

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

Всем привет! Меня зовут Антон Лосев, и я QA Lead в компании AXENIX.

Сегодня я хотел бы вам рассказать и показать, как я, будучи мануальным тестировщиком, решил вопрос с горой рутинных тест‑кейсов, которые мне необходимо было проходить в каждом регрессе. Поговорим о том, какие инструменты можно использовать для «автоматизации» выполнения большинства шагов кейсов, какие есть альтернативы данным инструментам и о том, насколько всё это влияет на качество регресса и скорость его прохождения.

Читать далее

Расследуем самое длинное issue в Jest

Reading time6 min
Reach and readers9.9K

Привет! Меня зовут Никита, я старший фронтенд-инженер в Ozon Tech и я разрабатываю кабинет рекламодателя. Однажды мы попытались обновить версию Node.js и нашли баг, который затянулся на два года и вовлёк в себя команды Jest, Node.js и V8.

Читать далее

Как я искал самую эргономичную клавиатуру

Level of difficultyEasy
Reading time18 min
Reach and readers20K

Привет! Меня зовут Иван Нещадин, я TechLead команды Bridge в Авито. Больше пяти лет я работаю в компании, а вот механическими клавиатурами увлекаюсь уже почти десять лет. Последние три года я особенно плотно погрузился в мир эргономичных и ортолинейных клавиатур. Если вам стало интересно, что же за заклинание я сейчас произнёс и что за вундервафлю вы видите на обложке статьи, тогда добро пожаловать!

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

Читать далее

Поддержка как фундамент для входа в IT или честный разбор пути от L1 к L2 в Ozon

Level of difficultyEasy
Reading time10 min
Reach and readers9.3K

Год назад я обрабатывал тикеты по инструкциям. Сегодня анализирую логи, пишу SQL-запросы и разбираю баги с разработчиками. Как же я дошёл до жизни такой?..

Привет, Хабр! Меня зовут Азиз (по паспорту Жавлонбек, но с детства все зовут Азиз — спасибо старшему брату за второе имя, которое прижилось). Я младший специалист поддержки внутренних сервисов в Ozon. Начинал на L1, через год перешёл на L2.

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

Читать далее

Тапают роботы, счастлив человек: как мы сделали робопалец для тестов устройств с мобильной ОС

Reading time11 min
Reach and readers8K

Привет, Хабр! Меня зовут Юрий Леметюйнен. Сейчас в «Лаборатории Касперского» я занимаюсь тестированием железа в процессе разработки KasperskyOS для мобильных устройств.

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

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

Читать далее

Отражаем атаку на IOMMU

Level of difficultyHard
Reading time16 min
Reach and readers8.3K

Что вы знаете об атаках на графические процессоры? Наверняка ничего приятного: они крайне распространены на мобильных устройствах, классические «песочницы» от них не защищают, и компрометация лишь одного драйвера может поставить под угрозу все ядро…

Меня зовут Денис Молодяков, и я — лид команды графики в KasperskyOS. Идея этого текста возникла во время одного моего выступления на конференции по системной разработке. Тогда из зала задали вопрос, который касался безопасности работы драйверов GPU. Слушатель ссылался на кейсы с «подламыванием» механизма управления видеопамятью драйверов на Android для интегрированных ускорителей семейства ARM Mali и спросил, как наша ОС сможет этому противостоять.

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

Читать далее

Собираем «тот самый» экран блокировки: без лишних виджетов и с защищенным доступом

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

Меня зовут Светлана Палицына, я старший разработчик в мобильной команде «Лаборатории Касперского». Мы занимаемся разработкой EMM-решения для управления корпоративными телефонами и защиты хранящейся на них корпоративной информации. Защита мобильного начинается с экрана блокировки, и в этой статье расскажу про разные способы оформления этого экрана на Android, предоставляемые классом DevicePolicyManager.

Экран блокировки — своего рода визитная карточка всего мобильного интерфейса. Каждый виджет и UI-элемент тут требует особого внимания, чтобы не перегружать пользователя информацией и обеспечивать защиту корпоративных данных (например, скрывать показ содержимого уведомлений от посторонних, которым аппарат случайно может попасться на глаза). Но главное — важно, чтобы разблокировать его можно было исключительно одобренным корпоративными политиками методом. Многие компании, к примеру, запрещают биометрические методы разблокировки как не самые безопасные. В идеале для бизнеса (и самого пользователя) такой экран должен быть лаконичным, понятным и безопасным. И лучший способ достичь этого идеала — подробная кастомизация!

Читать далее

От голосовых к тексту: делаем Telegram-бота для расшифровки аудио на open source модели от СБЕР — GigaAM-v3

Level of difficultyMedium
Reading time8 min
Reach and readers9.8K

Привет, Хабр! Недавно Сбер выкатил новые модели распознавания речи, и мне захотелось проверить их не в абстрактном демо, а в реальном сценарии. В этой статье я расскажу о практическом кейсе – разработке Telegram-бота, который преобразует голосовые сообщения в текст. Посмотрим, на что способна новая отечественная модель GigaAM-v3, и соберём на её основе расширяемого Telegram-бота.

▁ ▂ ▃ ▅ ▃ ▂ ▁ ▂ ▃ ▅ ▆ ▅ ▃ ▂ ▁