Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Антон Подлегаев недавно окончил университет. В «Криптоните» он работает уже больше года — а начинал со стажировки, где помогал с системой мониторинга зубьев экскаватора. Расспросили его о том, сложно ли студенту получить оффер, как в этом помогает стажировка и возможно ли на ней приобрести реальные знания.
— Антон, как ты нашёл стажировку в «Криптоните»?
— К моменту, когда я начал искать стажировку [январь 2021], я чуть-чуть умел писать на C++ и Python и имел пару проектов в области компьютерного зрения (подобласть Data Science). Поэтому я искал вакансии в сфере Computer Vision на C++, но их оказалось очень мало. Где-то полгода поисков — и всё безуспешно. У меня была потребность в финансах, и я горел идеей работать.
В итоге начал искать в более широкой области, смотрел вакансии программиста на C++. Изначально нашёл вакансию исследователя в лабораторию телекоммуникаций «Криптонита». Потом увидел, что есть лаборатория больших данных и статистики — то, что мне надо. Вакансий туда не было, но я решил попробовать пробиться. Хоть определённых компетенций мне не хватало, меня взяли на 1,5-месячную стажировку. Потом мне дали оффер. В «Криптоните» я работаю уже год с лишним, с апреля 2021 года.
— Чем ты занимался на стажировке?
— На стажировке надо было разработать систему мониторинга зубьев карьерного экскаватора. Когда зубья попадают в дробилку для руды, всё это дорогущее оборудование ломается. Поэтому потребовалось сделать систему видеоаналитики, которая показывала бы машинисту-эксплуататору количество целых зубьев и напоминала проверять ковш.
Когда я пришёл на стажировку, ребята из нашей лаборатории уже написали алгоритм, позволяющий это делать. А мне нужно было адаптировать его к терминалу. Это был одноплатный компьютер (Jetson Nano), интегрированный в корпус с тачскрином. Оставалось встроить алгоритм и написать понятный для человека интерфейс.
— Наверное, это очень серьёзный и интересный проект для стажёра?
— Это точно. В этом проекте было много работы с мультимедийными данными: с камеры нужно было брать поток и правильно его интерпретировать для алгоритма. Там была масса технических новшеств и решений, лично для меня интересных.
— С какими трудностями ты столкнулся на стажировке?
— Всё касалось технических аспектов: не умеешь работать с системой контроля версий; не понимаешь, как и что установить. Конечно, вопросы возникали — не всегда всё проходит гладко. Но все проблемы, как правило, решались.
— Какие качества ты прокачал на стажировке?
— Я начал понимать, как правильно вести экосистему разработки. Одно дело, когда ты умеешь чётко пользоваться git-ом, а другое — когда можешь разбить задачу на множество этапов, чтобы всё успеть. Я научился правильно рассчитывать свои силы.
— А чем ты занимаешься в «Криптоните» сейчас?
— Один из проектов, в котором я участвую — сервис распознавания речи. Есть сайт с UI [пользовательский интерфейс], где ты можешь, по мере записи своей речи, получать транскрибацию сказанного. Вместе с пунктуацией, орфографией и со всем переводом цифр в их числовой (а не прописной) формат.
Чтобы на выходе получить качественный текст, там применяется мощный каскад моделей: нормализация, пунктуация и т.д.
— Антон, ты же недавно выпустился?
— Да. Этим летом я окончил МИРЭА по направлению «Управление в технических системах». Получил красный диплом бакалавра.
— Как ты совмещал работу с учёбой?
— Я учился на очном отделении и работал 20 часов в неделю. У нас с руководителем получилось выстроить свободный график. Если мне передвигали пары, я спокойно мог отработать в другие дни. Руководитель всегда шёл мне навстречу.
— Расскажи про дипломную работу. Ты делал её в рамках стажировки?
— Нет, у дипломной работы была другая тема: я создавал систему навигации для шестиколёсного робота при нашей кафедре. Стажировка в «Криптоните» помогла как подводящий этап: я прокачал умение писать код и выделять подзадачи.
По большей части мне помог проект с робопсом, которым я занимался уже после стажировки. Я пришёл к своему руководителю с идеей сделать систему навигации для какой-то мобильной платформы. У него как раз был четвероногий робопёс — многостепенный объект, который движется нелинейно. Нужно было сделать так, чтобы он перемещался в точку, которую я указал на заранее построенной карте. Но его аппаратная часть была несовершенной: металлические редукторы сервоприводов в сочленениях робота ломались, и он двигался косо, а мог вообще завалиться. Поэтому мы закончили на этапе картографирования, и я переключился на другие задачи лаборатории.
— А почему решил писать дипломную работу на эту тему?
— У меня было много наработок с робопсом, поэтому я решил сделать систему навигации, только уже для «Марсохода» — робота-шестиколёсника при нашей кафедре.
В отличие от робопса, у него были другие органы осязания. Например, RGB-D камера [цветная, с датчиком глубины] от Microsoft Kinect, и в нём я использовал инерциальный измерительный сенсор (IMU): магнитометр, акселерометр и гироскоп.
Нашего «Марсохода» показывали ещё в 2012 году на канале «Россия 1». Изначально он создавался в рамках проекта «Марс-500». Может, вы помните о нём, его очень продвигали. Но на этапе реализации на «Марсоход» подзабили. В итоге он имел дистанционное управление, выполнял некоторые команды и всё.
— А для кафедрального робота-шестиколёсника удалось сделать систему навигации?
— Я старался учесть допущенные ранее ошибки и сделать более совершенную систему, но времени было мало, так как я параллельно работал. В итоге мне удалось переделать роботу шасси, поставить другие ДПТ [двигатели постоянного тока] и сделать систему контроля питания. У кафедрального робота получалось хорошо строить карту, на которой он мог спокойно себя локализовывать. Оставалось перейти к этапу, когда указываешь точку на карте, а робот туда перемещается.
Я учился на «Управлении в технических системах» и, соответственно, должен был уметь это всё моделировать. Хорошо, когда у тебя есть прикладной результат, но когда у тебя нет модели системы управления твоего математического объекта в цифровом виде… на что тебя тогда учили? Мне бы просто не дали диплом. Поэтому большую часть времени пришлось потратить на описание кинематики и динамики робота и их моделирование в MATLAB. Но в итоге я защитился на отлично, прикладной результат был неплохой и всем понравился.
— В магистратуру пойдёшь? Куда?
— Да. Поступать буду в тот же институт, но на другое направление.
Очень хочу на программную инженерию. Это то, чем занимается департамент разработки «Криптонита»: написание всевозможных высоконагруженных систем, понимание, как работать с телеметрией в интернете.
— Ты хотел бы в будущем работать в разработке?
— Я бы хотел заниматься тем, чем занимается департамент разработки «Криптонита», но в ключе больших данных и статистики. Тем более у нас есть потребность писать сервисы: к обученной модели надо правильно обратиться, сделать удобный доступ для других (т.е. написать и выкатить сервер).