Как стать автором
Обновить
1
0
Kirill Plotnikov @pltnk

Senior Software Engineer / Team Lead

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

Настольная инструкция лида: читать её, конечно, никто не собирался

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

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

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

Материал статьи не претендует на объективность. Все упомянутые истории происходили в моей практике или в практике моих сотрудников, совпадения не случайны. Без лишних предисловий, начнём!

Читать далее
Всего голосов 122: ↑117 и ↓5+115
Комментарии37

Может ли мобильный-разработчик стать CTO?

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

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

Если серьёзно, карьера мобильного разработчика, который хочет вырасти в большого руководителя, может складываться по-разному. Например, мой путь начался в 2013 году, и за это время я успел поработать и в маленьких стартапах, и в больших корпорациях. Сейчас я Director of Engineering в Яндекс Go. Последние шесть лет я управляю разными командами разного размера: от 5 до 200+ человек.

В этой статье я хочу рассказать, какие есть пути развития в мобильной разработке, что делать, если ты уже тимлид, кто такие крутые Individual Contributors (топовые разработчики) и как стать одним из них. Обо всём этом читайте под катом: попробуем разобраться, как расти и куда это может завести.

Читать далее
Всего голосов 29: ↑26 и ↓3+28
Комментарии14

Как я делаю опенсорсную статусную панель «я занят»

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

Прототип моего проекта светодиодной таблички, которая показывает что я занят — Busy StatusBar

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

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

В статье я расскажу как ищу дизайн и эргономику устройств, делаю железо и весь путь от идеи, до подготовки к серийному производству. Покажу текущий прототип на базе ESP32.

Приглашаю всех желающих поучаствовать в разработке.
Читать дальше →
Всего голосов 128: ↑125 и ↓3+151
Комментарии195

Как мы в России сделали микрофон как у Артемия Лебедева и продаем по всему миру

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

В 2016-м у меня была ипотека, беременная жена, а мое производство микрофонов на 80 кв.м в Туле приносило убытков на 1 млн в месяц. Я брал кредиты, занимал у родителей и смотрел на подработку в такси. А сейчас мы продаем на 200 млн ₽ в год, а наши микрофоны известны по всему миру. 

Читать далее
Всего голосов 246: ↑209 и ↓37+225
Комментарии259

Программисты всё вымирают и вымирают

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

Да вымереть не могут.

Откуда это всё пошло? Чем так условные «программисты» не угодили? И почему именно программисты?

Читать далее
Всего голосов 335: ↑323 и ↓12+373
Комментарии583

Разработка самой маленькой в мире книги на e-ink дисплее

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров14K
Приветствую, Хабр!



Хоть название и громкое, но тут почти нет преувеличения. Моя разработка не предполагает ежедневного использования и сделана больше просто ради забавы, но тем не менее она довольно интересная. Владимир Анискин из Новосибирска, например, создал книгу на лавсановой пленке размерами 70х90 мкм, а почему бы и нет? На занесение в книгу рекордов Гиннеса я не претендую, но, если Вы остались заинтересованы, заходите под кат. Не хотел делить статью на части, так что наберитесь терпения.
Читать дальше →
Всего голосов 85: ↑84 и ↓1+112
Комментарии90

Три недели кодирования экономят два дня проектирования

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

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

Писать постановку, но чуть-чуть
Всего голосов 69: ↑67 и ↓2+80
Комментарии73

Блокировка Docker Hub для России. Без паники разбираемся как работать дальше

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

Главной новостью этой недели стала блокировка пользователей из России ресурсом Docker Hub. Она осуществляется по Geo IP.

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

В статье три проверенных мною способа, как получить доступ к ресурсу.

Читать далее
Всего голосов 81: ↑77 и ↓4+93
Комментарии47

Generic Concurrency в Go

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

Привет, гоферы!

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

Читать далее
Всего голосов 15: ↑14 и ↓1+15
Комментарии1

database/sql: плохой, хороший, злой

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

Многие Golang-разработчики  пробовали работать с БД в Go, и у каждого — свои боли. В этой статье разберём библиотеку database/sql как безотносительно конкретной СУБД, так и применительно к YDB. Рассмотрим трудности эксплуатации при использовании драйвера database/sql на проде. А также рассмотрим, что мы делали для решения проблем.

Меня зовут Алексей Мясников, я — руководитель Application Team в команде разработки YDB. Я очень люблю git blame за то, что с его помощью можно проследить, как развивалась инженерная мысль с течением времени и немножко побыть в шкуре разработчика той или иной классной штуки. В статье я расскажу, как реализовать драйвер database/sql для распределённой базы данных, какие проблемы при этом придётся преодолеть и как менялся подход с выходом новых версий Go. 

Читать далее
Всего голосов 40: ↑40 и ↓0+54
Комментарии2

GO Scheduler: теперь не кооперативный?

Время на прочтение8 мин
Количество просмотров38K
Если вы читали release notes для версии GO 1.14, то возможно заметили несколько довольно интересных изменений в рантайме языка. Вот и меня очень заинтересовал пункт: «Goroutines are now asynchronously preemptible». Выходит что GO scheduler (планировщик) теперь не кооперативный? Что же, после прочтения по диагонали соответствующего proposal любопытство было удовлетворено.

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

image
Читать дальше →
Всего голосов 46: ↑42 и ↓4+51
Комментарии9

Встречают по README — что нужно знать о документации

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

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

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

Должны ли разработчики писать документацию? Как это часто бывает, однозначного ответа на этот вопрос нет.

Сегодня поговорим об инструментах для сборки и работы с README, а также обсудим тему документации.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+23
Комментарии4

Python — Дескрипторы (Descriptors)

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

Если обратиться к документации, то дескриптор — механизм, который позволяет объектам настраивать поиск, хранение и удаление атрибутов.

Дескрипторы используются в классах, выступая в роли атрибутов класса(не экземпляра).

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

Читать далее
Всего голосов 17: ↑17 и ↓0+20
Комментарии8

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 445: ↑437 и ↓8+489
Комментарии367

Странный и очень прибыльный мир конкурсов писателей-киберпреступников

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

Соревнования на форумах киберпреступников в Рунете обещают призовые до 80 тысяч долларов. Всё это происходит почти в открытую, а победителей потом хантят к себе хакерские сообщества. Слышали ли вы об этом секрете Полишинеля?


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

Читать дальше →
Всего голосов 36: ↑33 и ↓3+53
Комментарии14

Как мы оцифровали футбольные матчи с помощью CV

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

Привет! Меня зовут Владимир Цуканов, я СТО спортивного направления в Яндекс Плюсе. Мы занимаемся съёмкой, обработкой и стримингом спортивных событий. В этом посте я расскажу о работе с технической съёмкой и анализом футбольных матчей.

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

Читать далее
Всего голосов 37: ↑36 и ↓1+42
Комментарии24

Анатомия каналов в Go

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "Anatomy of Channels in Go" автора Uday Hiwarale.


Что такое каналы?


Канал — это объект связи, с помощью которого горутины обмениваются данными. Технически это конвейер (или труба), откуда можно считывать или помещать данные. То есть одна горутина может отправить данные в канал, а другая — считать помещенные в этот канал данные.


Создание канала


Go для создания канала предоставляет ключевое слово chan. Канал может передавать данные только одного типа, данные других типов через это канал передавать невозможно.

Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии7

Подключаем умный поиск (GPT) к своей базе документов

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

Есть отечественный файрвол (NGFW) и есть документация для пользователей powered by GitBook. В этой документации работает простой поиск — только по словам и словосочетаниям. И это плохо, потому что нет ответов на вопросы: "Какие алгоритмы шифрования ipsec поддерживаются у вас?", "Как заблокировать ютуб?", "Как настроить DMZ?".

Хочется, чтобы поиск был “умным” и чтобы пользователи могли обращаться с подобными вопросами именно к поиску, а не к инженерам тех. поддержки. AI или ML внутри — не важно, как это называть. Но на простые вопросы из списка выше поиск должен отвечать.

Я решил эту задачу (Retrieval Question Answering), используя OpenAI API. Казалось бы, уже опубликованы сотни похожих инструкций, как это сделать. Но под катом будет не инструкция, а рассказ про сложности, которые пришлось решить на пути от идеи до запуска поиска.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии25

Пишем gRPC сервис на Go — сервис авторизации

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

Пишем gRPC сервис на Go — сервис авторизации


В этой статье мы научимся писать полноценный gRPC сервис на Go на примере сервера авторизации с полноценной архитектурой, готовой к продакшену. Мы напишем как серверную часть, так и клиентскую. В качестве клиента мы возьмём мой сервис — URL Shortener, о котором у меня также есть статья и видео-гайд на ютубе. Попутно мы познакомимся с базовыми подходами к работе с авторизацией. И в конце настроим автоматический деплой сервиса с помощью GitHub Actions на удалённый сервер.


Видео-версия этого гайда с более подробными объяснениями

Исходный код проекта: https://github.com/GolangLessons/sso


Итого, наш план:


  • Напишем простой, но полноценный gRPC-сервис
  • Разберемся с базовыми принципами работы авторизации — чтобы не было скучно
  • Настроим автоматический деплой в прод — потому что руками деплоить лень
  • Подружим его с уже готовым сервисом URL Shortener — чтобы был практический смысл
  • Напишем полноценные функциональные тесты

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


Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал.

Читать дальше →
Всего голосов 62: ↑60 и ↓2+66
Комментарии44

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

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

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

Читать далее
Всего голосов 129: ↑127 и ↓2+155
Комментарии51
1
23 ...

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность

Специализация

Backend Developer, ML Engineer
Senior