Pull to refresh

Technotext

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Level of difficultyEasy
Reading time26 min
Views39K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее

Производительность базового поиска в Ozon как культурный феномен

Level of difficultyMedium
Reading time22 min
Views25K

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

Читать далее

Закупщик и Айтишник: понять и принять

Reading time7 min
Views4K

Хочу рассказать о моей профессии закупщик в ИТ. Во-первых, это красиво (с). А ещё я уверена, что многие айтишники и инженеры как-то, да взаимодействуют с отделом закупок и даже знаю, каким технические специалисты видят процесс закупок («просто возьмите и купите по спецификации, что привязались-то, а?»). Но так не работает при высокостоимостных закупках, а в ИТ они, в основном, именно такие.

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

Читать далее

Как жизнь сортирует нас пузырьком, или Почему в ИТ войдут не все

Level of difficultyEasy
Reading time7 min
Views55K

Год назад я написал бы о том, что каждый может стать программистом, нужно лишь верить в себя, и всё получится. Два года назад я бы добавил пару строк про нити Вселенной, Закон притяжения и материальность мыслей.

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

Что я хочу сказать сегодня? Нет никакой гарантии, что все из вас, взявшиеся за изучение ИТ-профессии, в конце концов получат работу. Если ты остановил свой взгляд на этой статье в поисках решения своей проблемы, всё уже не замечательно. В статье расскажу, почему.

Читать далее

Open-source блокнот Wolfram Language или как воссоздать минимальное ядро Mathematica на Javascript и не только

Level of difficultyMedium
Reading time20 min
Views8.6K

На Хабре уже проскакивали упоминания о совместимых или систем-копиях Wolfram Mathematica, но реализованных на других языках, скажем, Mathics. В качестве расширения этой ниши я представляю молодую систему, которая не только воспроизводит многие ключевые функции блокнота Mathematica с нуля, но и расширяет функционал гораздо дальше, чем там, где очертил его границы Стивен Вольфрам, создав эту потрясающую систему более 30-ти лет назад.

Читать далее

Многопоточность (Multithreading) для практического программирования. То, о чем «забыть-нельзя-вспоминать» придется

Level of difficultyHard
Reading time14 min
Views21K

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

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

Мне кажется нельзя считать что вы до конца понимаете концепцию многопоточности (Multithreading/ Concurrency) если вы не понимаете когда (для каких задач) ее можно и/или нужно использовать на однопроцессорной машине, 2-х процессорной, N‑процессорной машине и от чего это зависит.

Читать далее

Kaspresso для самых маленьких

Level of difficultyEasy
Reading time18 min
Views12K

Привет! Меня зовут Элчин, я занимаюсь автоматизацией мобильных приложений в hh.ru и расскажу вам о том, как написать первый тест на Android. В разработке автотестов мы используем Kotlin и нативный фреймворк Kaspresso, о котором я напишу подробней в этой статье.

Читать далее

Требуется ли бизнесу маркировать собственные посты у себя в соцсетях?

Level of difficultyMedium
Reading time5 min
Views76K

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

Читать далее

Typescript: лучшие практики

Level of difficultyEasy
Reading time3 min
Views25K

Привет👋 В последние годы среди фронтенд разработчиков Typescript используется практически везде по умолчанию, начиная небольшими пет-проектами и заканчивая огромнейшими веб-приложениями. Однако, до сих пор на некоторых проектах можно встретить кучу any и Function. Давайте разберемся используете ли вы этот невероятно мощный инструмент правильно?

Читать далее

Хитрый виджет: разбор тестового Flutter-задания. Детективная нуар-история

Level of difficultyMedium
Reading time24 min
Views3.4K

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

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

Полиция прибыла на место происшествия в мотель «Burnout Meteo Inn» за час до меня. В 911 сообщили о подозрительном…

Читать далее

Почему я больше не буду работать наставником на IT-курсах

Level of difficultyEasy
Reading time4 min
Views113K

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

Читать далее

WebAssembly: короткий обзор ассемблера для фронтенда

Level of difficultyEasy
Reading time18 min
Views20K

В последнее время фронтенд все больше и больше обрастает новыми технологиями, одна из них — WebAssembly. На ней можно написать полноценное web‑приложение и почти все на что способна ваша фантазия. В статье мы рассмотрим, что такое WebAssembly, как работает и с чем её едят. И конечно же я хотел поделиться рецептом приложения. Возьмем наш любимый React и добавим Yew, приправим всё это webpack-ом и добавим щепоточку module‑federation. Статья будет интересна всем, кто хочет познакомиться с WebAssembly и добавить разнообразия в список используемых фреймворков и библиотек для написания пользовательских компонентов.

Читать далее

Пишем простой калькулятор используя фреймворк eframe (egui)

Level of difficultyMedium
Reading time34 min
Views14K

Всем здравствуйте. Ниже будет приведен пример написания PWA приложения готового для использования как в браузере, так и на компьютере с ОС Windows. Используется язык программирования Rust и фреймворк eframe (egui). В результате получим исполняемый файл для ОС Windows, и файл Webassembly. В процессе работы будет использоваться GitHub Action для отслеживания корректности написания нашего кода и сборки исполняемых файлов программы, а также для развертывания (версию программы с использованием Webassembly) как страницы в интернете (GitHub Pages).

Читать далее

Создание красивого Desktop-приложения на Python (customtkinter)

Level of difficultyEasy
Reading time4 min
Views70K

Если Вы как и я решили впервые взглянуть в сторону Python после нескольких попыток изучения С++/C# то скорее всего первым проектом станет desktop-приложение. Отходя от темы скажу что тяга к изучению этих языков была безнадежно утрачена в виду классического преподавания в духе "лишь бы сдали" и бесчисленных однотипных и монотонных лекций. Как я сказал выше хоть и на начальном уровне, но я всё же касался разработки приложений для шинды и поэтому мне хотелось посмотреть на принципы работы питона сначала отсюда(а не прыгать в django и прочие мощные фреймворки).

Читать далее

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

Reading time11 min
Views8K

Привет! Меня зовут Маша Сафронова, и я уже почти 3 месяца работаю младшим продуктовым дизайнером в Lamoda Tech. За последний год я успела пройти стажировку и поработать в двух других крупных IT-компаниях, а еще раньше я переучилась и пришла в дизайн из другой профессии. 

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

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

Читать далее

Три важных качества CTO, о которых я не догадывался, пока был разработчиком

Level of difficultyEasy
Reading time8 min
Views40K

Я начинал карьеру как фронтенд-разработчик и прошел по всем стандартным этапам: от джуниора до сеньора и тимлида, потом стал руководителем отдела. И дальше, конечно, планировал стать CTO — Chief Technical Officer. И только через несколько лет узнал, что мои представления о том, какие навыки нужны на этой должности, были далеки от реальности.

В статье я расскажу о том, как я стал CTO в крупной компании и на своем опыте узнал о законах этого жанра. Если вам интересно, в чем заключается такая работа, или — вдруг — вы тоже готовитесь занять эту роль, добро пожаловать под кат!

Читать далее

Как я искала junior-технического писателя: чего не стоит писать в резюме

Level of difficultyEasy
Reading time10 min
Views11K

Привет, Хабр! Я Анастасия Дмитриева, работаю ведущим техническим писателем в компании “Актив”. Долгое время я была единственным техническим писателем в компании. Но в какой-то момент мне стало понятно, что задач очень много, и одной мне просто не справиться. Я начала поиск junior-а. Особой спешки не было, и я понимала, что я могу потратить какое-то время и научить его всему. 

В этой статье я опишу первый этап поиска: формирование требований к кандидатам и просмотр их резюме. Здесь вы увидите только моё мнение, и я не возражаю, если в комментариях появится ваше личное видение процесса поиска. Мне также хочется рассказать молодым специалистам про профессию “технический писатель”. Может, кто-то увидит себя в ней. 

Верю. что вам будет интересно

GSM NetMonitor для гика и преподавателя

Level of difficultyHard
Reading time14 min
Views6.6K

В статье я рассмотрю, как недорого в лабораторных условиях собрать и на практике использовать GSM NetMonitor на основе открытого программного продукта Osmocom, более известного в IT-среде по проекту OpenBTS, позволяющему создавать персональные базовые станции. Так, входящая в его состав программа OsmocomBB помогает узнать большое количество различных технических характеристик, задействованных в стеке GSM-протоколов для удовлетворения личного исследовательского интереса. В образовательной среде она поможет понять и на практике изучить работу рассматриваемых телекоммуникационных сетей, на которых в той или иной степени базируются определённые 3G, 4G и 5G-решения. Чтобы минимизировать заимствования из схожих публикаций, материал носит практический характер (за редким исключением). Дополнительно я раскрою явным образом недокументированную, но полезную возможность рассматриваемого программного обеспечения по одновременному NetMonitor сигналов от различных операторов.
Читать дальше →

Путь филолога в ИТ: шла куда попало, пришла в техническое писательство

Level of difficultyEasy
Reading time11 min
Views4.4K

Муки самоопределения, кринжовые стажировки и собеседования, первый опыт, портфолио редактора...или как филолог искала работу в ИТ.

В этой статье — об увлекательно случайной истории пути от стажера-копирайтера до технического писателя. Как мне тут работается, почему не хочется уходить и помогает ли мне образование филолога. Отвечаем вместе на вопрос "Есть ли гуманитариям место в ИТ?".

Читать мою историю

Пол — это лава: разработка прототипа интерактивной светодиодной игровой платформы

Level of difficultyMedium
Reading time9 min
Views13K

Дурная голова рукам покоя не даёт… история началась несколько месяцев назад: я увидел в интернете забавное видео игры в комнате с пиксельным светодиодным полом и решил сделать подобное для своих детей. За эти месяцы я получил массу удовольствия от процесса разработки и даже заразился идеей масштабирования проекта, но обо всём по порядку! Внимание, ниже будет много фото! А в конце статьи есть видео работы.

Читать далее