Стажировка — хороший способ начать карьеру и попробовать свои силы в реальных задачах бизнеса.
Мы поговорили с аналитиками и разработчиками Тинькофф, которые попали в команду после стажировки. Они рассказали, какой опыт получили и как ранний карьерный старт помог им вырасти в профессии.
ИСТОРИЯ № 1
«Говорите, если вас что-то не устраивает»
Отбор на стажировку. В 2020 году я окончила университет «Иннополис», училась на специальности «информатика и вычислительная техника». Каждый год в вузе проходили ярмарки вакансий, где студенты искали стажировки или работу. Сама я задумалась о карьере в 2019 году, после третьего курса. Отправилась на ярмарку, увидела стенд Тинькофф и подошла узнать про стажировки.
Там я познакомилась с директором татарстанских центров разработки банка. Он рассказал о программе оплачиваемых стажировок «Тинькофф Старт» и предложил оставить заявку. В Старте несколько направлений, например маркетинг и QA, но я выбрала iOS-разработку.
Три года назад отбор состоял из трех этапов, все проходило в онлайне. Сначала проводили шестичасовой конкурс по программированию из алгоритмических задач, их можно было решать на любом популярном языке. Следом предстояло выполнить тест по iOS и языку Swift — он проверял общие знания и длился около часа. В конце нужно было написать ленту новостей на основе полученного API со случайными постами, на это задание отводилось несколько дней.
Отбор был не слишком сложным, но занял много времени. Мне кажется, за счет этого проверялась и мотивация кандидата. Я со всем справилась, и меня позвали на очное собеседование в казанский ИТ-парк.
Перед интервью я почитала в интернете, что обычно спрашивают на собеседованиях по iOS. Это помогло систематизировать знания. Думаю, новичку важно показать мотивацию учиться, но про конкретные навыки в профессии забывать тоже не стоит. Собеседование прошло легко. Мне понравилось, что уже на интервью ментор вводил меня в курс дела.
Я попала в Тинькофф Бизнес — подразделение банка для предпринимателей. В 2019 году еще не было выстроенного онбординга, поэтому я сразу погрузилась в боевые задачи: по ходу мне объяснили архитектуру проекта, рассказали, как писать тесты, и посвятили в командные процессы. На стажировке я в основном дорабатывала существующие фичи — депозиты и овернайты, писала автотесты. Курировал меня разработчик одной команд Бизнеса — он же проводил собеседование.
Я мощно прокачала хард-скиллы: разобралась с процессами и архитектурой крупного проекта, узнала много новых технологий и библиотек. Если говорить о софт-скиллах, я научилась работать в крупной команде, быть коммуникабельной, а также получать и давать обратную связь. Стажировка проходила летом, по 40 часов в неделю, совмещать с другими занятиями было несложно.
Я получила оффер через месяц после окончания стажировки — училась тогда на четвертом курсе. Меня взяли джуном в команду Тинькофф Бизнеса. Здесь я уже выполняла задачи, связанные с разработкой новой функциональности, написанием тестов и аналитикой.
Работа в Тинькофф. За три года я выросла до позиции старшего разработчика. В основном занимаюсь бизнес-картами в мобильном приложении Бизнеса. Дойти до этого уровня мне помогло желание развиваться. Благодаря ему появляются проактивность, инициативность и смелость брать на себя интересные и сложные задачи. Еще я работала над собой и в техническом, и в личном плане.
Кроме того, в банке есть институт держателей профессии — разработчиков, которые проявили инициативу и взяли на себя развитие определенных направлений в сообществе. С начала 2022 года я курирую направления наставничества и DevRel.
Еще я люблю представлять компанию на ярмарках вакансий. Часто на них приходится выезжать в другие города: я живу в Иннополисе, а на мероприятия ездила в Саратов, Нижний Новгород, Москву и Казань. Еще одно приятное занятие — менторство стажеров и джунов. Сейчас в Тинькофф Бизнесе сложился онбординг, все новые сотрудники — стажеры, джуны, мидлы, сениоры — пользуются чек-листами, знакомятся с видео и документацией по проекту и компании, а затем выполняют онбординг-задание. Как правило, это разработка одной фичи, чтобы познакомиться с проектом и процессами. Новым стажерам можно позавидовать: за счет онбординга им легко влиться в работу компании.
После онбординга новичок начинает выполнять реальные задачи в одной из команд: пишет фичи и автотесты, исправляет баги. За каждым стажером закреплен ментор, готовый прийти на помощь.
По окончании программы стажеры проходят аттестацию. Те, кто перевелся в штат, попадают на программу «Путь джуна». Она подразумевает три этапа по полгода, когда начинающий разработчик выполняет задания, похожие на те, что были на стажировке, а в конце каждой ступени проходит аттестацию. По ее итогам обычно повышают зарплату. На «Пути джуна» за каждым также закреплен наставник — вместе с ним новичок составляет план развития и проводит еженедельные созвоны для калибровки задач. По итогам программы джун переходит в мидлы.
Совет новичкам. Во-первых, не бойтесь. Поначалу большой проект и команда могут пугать, но со временем приятные эмоции от погружения в задачи и разработку перевесят страх. Во-вторых, говорите, если вас что-то не устраивает, — с куратором, ментором или тимлидом. Однажды мне достался слабый компьютер, какое-то время я работала на нем, но было некомфортно. Когда попросила его заменить, вопрос решили очень оперативно, и я выполняла работу быстрее. Всегда лучше сразу сказать о проблемах, чем потом разбираться с последствиями.
ИСТОРИЯ № 2
«Я рад, что по-прежнему могу уделять много времени учебе и развитию»
Отбор на стажировки. Я работаю в команде продуктовой аналитики Тинькофф Страхования, параллельно перехожу на шестой курс мехмата МГУ и подрабатываю в математическом институте имени В. А. Стеклова РАН.
В 2018 году, на втором курсе, мне хотелось получить более прикладные знания, чем те, что давал мехмат. Как ни странно, выбор остановился на курсе Тинькофф Образования по QA.
QA-инженеры следят за качеством приложений и автоматизируют процессы тестирования. Их хард-скиллы включают умение грамотно составлять тест-кейсы, писать код и работать с системами контроля версий. К окончанию курса каждый участник должен был написать тест-кейсы к реальному мобильному приложению и показать их работоспособность.
Я не хотел работать QA-инженером, но умение обращаться с git и мотивация писать чистый код еще не раз мне пригодились и на работе, и для учебных задач.
Затем я решил пойти на первую стажировку в Тинькофф. Подал заявку на несколько направлений, приоритетным указал ML. На отборе нужно было решить задачи по математике и программированию. Собеседование в команду машинного обучения состояло из нескольких частей: проверяли знание Python, математики и самого ML.
На части по математике спрашивали про случайные величины, просили посчитать дисперсию непрерывного равномерного распределения. На этапе с Python и машинным обучением разбирали мой ML-проект по обучению робота игре в крестики-нолики. После собеседования я получил письмо о том, что у меня мало опыта в ML и мне может понравиться направление аналитики.
Я попал в донабор стажеров-аналитиков, поэтому технических вопросов практически не было. Собеседующие интересовались, почему я стремлюсь в Тинькофф и какие задачи хотел бы решать во время стажировки.
Меня определили в отдел рекламных технологий, где я набрался опыта в реальных задачах. Помог команде понять тонкости использования библиотеки линейной регрессии Vowpal Wabbit, из-за которых та не могла обучиться простой линейной зависимости. Настроил несколько моделей для предсказания вероятности клика по контекстной рекламе и для классификации картинок с веб-ресурсов.
Стажировка длилась три месяца и предполагала занятость от 20 часов в неделю. График согласовывал с руководителем — в будни можно было распределять часы, как мне было удобно.
20 часов стажировки в будни, много-много времени на дорогу в офис, очные пары и домашки делали жизнь трудной, сонной и веселой.
В конце стажировки появилась возможность попасть в штат, но нужно было работать хотя бы 30 часов в неделю. Тогда я не мог совмещать учебу и работу, и мне предложили прийти на вторую стажировку без экзаменов, но с собеседованием.
Она проходила летом между вторым и третьим курсом. Я занимался продуктом страхования путешествий, аналитическими задачами с применением ML. Команда хотела улучшить модель ценообразования страховых полисов, сделав ее более гибкой. Для этого мы собирали информацию о рынке, анализировали позиции конкурентов и продумывали методы оптимизации нашей стратегии. Итогом второй стажировки стала модель, предсказывающая вероятность покупки полиса на сайте.
Здесь вновь встал вопрос о числе рабочих часов и учебной нагрузке. Команда очень хотела оставить меня у себя, поэтому через пару месяцев я смог выйти на работу, теперь уже на третью, полугодовую стажировку.
Тогда я полноценно работал с продуктовыми задачами: строил отчетность, помогал разбирать клиентские случаи. Самым интересным проектом на третьей стажировке стали создание и интеграция в продуктовые процессы модели, помогающей принимать решение по ценообразованию.
В итоге я перешел в штат на позицию джуна, работая 20 часов в неделю. Через год меня повысили до мидла. Сейчас в команде продуктовой аналитики Тинькофф Страхования большая часть людей работает неполный рабочий день.
Работа в Тинькофф. Сейчас я управляю небольшой командой аналитики нескольких страховых продуктов, занимаюсь построением отчетности, налаживанием мониторинговых процессов, проведением тестов и исследованием продуктовых гипотез с помощью ML-моделей. Глобально мне хочется закончить построение аналитики с нуля — от простейших отчетов в SAP и полного бардака в DWH до классных отчетов в Tableau и регулярного R&D. Жена говорит, что я человек-оркестр.
Мой спектр задач широк: я выполняю функции технолога, разработчика и аналитика данных.
Например, сейчас я занимаюсь защитой карт: в случае мошеннических действий у клиента есть возможность возместить некоторую сумму. Еще помогаю развивать новые каналы привлечения, делать коммуникации с клиентами эффективнее, приоритизировать свой продукт среди множества других в экосистеме.
Недавно я проводил собеседования на стипендию Тинькофф — это программа финансовой поддержки талантливых студентов технических специальностей. Победители получают 25 000 Р в месяц в течение года.
Отбор проходит в несколько этапов. Сначала претенденты решают задачи, их принимает система. Потом заполняют анкету про достижения и мотивацию. Следом проходят собеседования, которые напоминают прием аналитиков и бизнес-технологов, с секцией продуктовой аналитики: кандидатам нужно решать математические задачи. Будущие стипендиаты определяются по результатам предыдущих этапов топ-менеджерами и специальным жюри.
Кроме программы стипендий в Тинькофф, у меня есть множество возможностей для самореализации. В апреле 2021 года я проходил курс по оптимизации запросов, а уже на следующей командной встрече рассказывал коллегам, как понимание работы Postgres помогает уменьшить время отработки запроса в десятки раз. Когда у нас в команде аналитиков кто-то делает новый и сложный проект, мы вместе разбираемся в деталях нового подхода.
Но главные условия для самореализации — неполный рабочий день, свободный график и гибридный режим работы. Я учусь на кафедре математической статистики и случайных процессов, с третьего курса пишу статьи, участвую в грантах и хожу на конференции. Поэтому, кроме рабочих задач, которые слабо связаны с наукой, для меня важно изучать профильную литературу и заниматься научной деятельностью. Будучи мидл-аналитиком, я рад, что по-прежнему могу уделять много времени учебе и развитию.
ИСТОРИЯ № 3
«Мне нравится то, что я делаю, это совпадает с моими ценностями»
Отбор на стажировку. Я учился в Физтехе на факультете радиотехники и кибернетики, окончил его в 2021 году. На первом курсе работал дизайнером в университетской организации, которая проводила олимпиады и конференции для школьников. Это было хобби, позволявшее отдыхать от напряженной учебы. Еще удалось немного поработать в лаборатории, где ставили эксперименты с лазерами. Первый опыт анализа данных у меня появился как раз там.
На третьем курсе, после лаборатории, я ушел на позицию Python-разработчика в небольшую компанию, которая делала робототехнические конструкторы для школьников. Гибкий график неполного дня позволял без проблем совмещать работу с учебой.
В конце третьего курса я узнал о Финтех Школе Тинькофф в сообществе компании во «Вконтакте» — тогда еще не было разделения на Финтех и Финтех Мидл. Решил поучаствовать — и прошел отбор. Основным направлением обучения был фронтенд, параллельно нам читали курс «Финтех-тренды» о том, как большие компании создают сервисы и приложения.
В тот момент мне захотелось поучаствовать в проектах, которые закрывают потребности людей и несут им пользу. В качестве направления для развития я выбрал аналитику. На мой взгляд, эта область позволяет эффективно применить хард-скиллы, полученные в университете. А за счет разнообразия задач и подходов к решению профессия аналитика творческая. Самые важные решения в крупных компаниях, как правило, принимаются на основе данных, поэтому аналитики напрямую участвуют в развитии продуктов.
На каникулах после третьего курса появилось больше времени для работы. Этот период отлично подходил, чтобы начать карьеру со стажировки. К тому моменту у меня было два приглашения: кроме Тинькофф, я прошел отбор в «Марс». Общение со знакомыми, которые стажировались в компаниях, помогло сделать окончательный выбор.
Отбор в Тинькофф состоял из нескольких этапов. Вначале кандидаты решали школьные олимпиадные задачи в соответствии с направлением. Еще было несколько кейсов про запуск новых продуктов, которые показались мне интересными.
Тех, кто справился с первым этапом, звали на финальное собеседование. Там кандидаты по очереди общались с представителями команд, готовых взять стажеров. Нам давали несложные задачки на логику, рассказывали о себе и планах на стажировку. Пройти собеседование мне, вероятно, помог опыт участия в студенческих проектах, знание Python и навыки анализа данных.
Всем стажерам и новым сотрудникам проводят онбординг: знакомят с компанией, проектами и продуктами группы. Потом он продолжается внутри команды: новичок узнает коллег и детали предстоящих задач. Атмосфера была доброжелательной.
Все коллеги довольно молоды, поэтому мне казалось, что я просто поступил в еще один университет, где решают прикладные задачи.
Стажировка длилась месяц при занятости полный рабочий день. Предложили на выбор несколько актуальных задач — я остановился на алгоритме анализа действий пользователя в интернет-банке для выявления мошеннических сессий. В конце стажировки необходимо было подготовить презентацию проекта и защитить ее перед топ-менеджерами компании.
У меня был наставник-аналитик, он поддерживал меня и обеспечивал необходимой информацией, без него не удалось бы довести проект от начала до логического конца. При этом всю работу я выполнял сам, ментор лишь подсказывал, как сделать лучше и на что обратить внимание. После стажировки мне захотелось продолжить работу над проектом, и меня как раз позвали на штатную позицию. Я начал работать в Тинькофф с сентября 2018 года.
Работа в Тинькофф. С 2018 года из технолога я дорос до руководителя команды: мы организуем бизнес-процессы и отвечаем за реализацию идей. В частности, моя группа занимается антифродом — защитой клиентов от действий мошенников. Мне нравится то, что я делаю, это совпадает с моими ценностями.
В планах — продолжить профессиональное развитие и передавать опыт. Сейчас я прохожу внутренний курс по менеджменту, также учился на программах Тинькофф по алгоритмам и базам данных. Начинающим аналитикам и не только посоветую бесплатные курсы от Data Learn.
Я часто выступаю в роли наставника на стажировках. Периодически в работе появляются новые проекты, на которых новички могут хорошо себя проявить. Тогда ищу себе стажера через программу стажировки, на которой учился и я. Роль ментора мне нравится, стажеры приходят со свежими идеями. Нередко вспоминаю общение со своим ментором, чтобы воссоздать похожий формат взаимодействия со стажерами.
Совет новичкам. Успешному интервью способствует грамотно составленное резюме, ведь именно по нему эйчар-специалист встречает кандидата. Перед откликом на стажировку или вакансию стоит потратить немного времени, чтобы вспомнить релевантный опыт, указать свои сильные стороны. Не скромничайте, иначе ваши достижения так и останутся тайной. Содержание резюме может помочь начать разговор на собеседовании: завязать беседу со знакомых тем всегда проще.
ИСТОРИЯ № 4
«К стажерам относятся как к полноценным сотрудникам, нет предвзятости»
Отбор на курсы и стажировку. Перед началом девятого класса я участвовал в летней школе по компьютерным наукам от ВШЭ. Там семинарист моей группы рассказал про Тинькофф Поколение и порекомендовал эту программу по алгоритмам и структурам данных.
У меня уже был небольшой опыт в сфере компьютерных наук. В седьмом-восьмом классе я писал простые программы на Java, чтобы улучшить игровой сервер в Minecraft. С конца восьмого класса занимался спортивным программированием в центре поддержки одаренных детей «Стратегия» в Липецке.
Отбор в Поколение проходил удаленно. Нужно было продемонстрировать текущий уровень знаний в спортивном программировании. Я прошел отбор и выбрал направление «алгоритмы и структуры данных». На нем готовят к олимпиадам по программированию, за призерство в которых можно получить преимущества при зачислении в вуз. Тогда результаты ЕГЭ не важны и требуется лишь набрать минимальный балл.
Обучение шло по четырем параллелям, каждая сложнее другой. Занятия на одной параллели рассчитаны почти на целый учебный год, я прошел полторы. Уроки проходили раз в неделю по субботам в штаб-квартире Тинькофф. Сначала по расписанию шла лекция, потом был перерыв на ужин и несколько часов на решение задач по теме лекции. В это время участники задавали вопросы, обсуждали учебу в университете, олимпиады.
Навыки, приобретенные на курсе, помогли мне: я получил два диплома призера олимпиад из перечня РСОШ, стал призером в «Турнире Ломоносова» по информатике и в олимпиаде ИТМО по информатике.
Учеба в Тинькофф Поколении держала меня в тонусе, непрерывно давала новые знания, формировала круг общения.
Для поступления рассматривал программную инженерию в ИТМО и НИУ ВШЭ. Программа ВШЭ привлекала отсутствием проблемных для меня физики и истории. Тинькофф Поколение, участие в профильных выездных школах и образовательных сменах среди года помогли мне поступить туда.
Во время учебы в университете мне пригодились все полученные навыки: вузовские курсы по алгоритмам и структурам данных, программированию практически дублировали Тинькофф Поколение. Я не ходил на лекции по этим предметам, на практике часть задач копировал с курса, а часть решал с нуля, используя имеющиеся знания.
В середине первого курса я решил постажироваться в Тинькофф: компания была мне близка, я пользовался ее продуктами. У меня был план поступить на программу «Тинькофф Старт».
Для отбора требовалось решить задачи, используя знания в области алгоритмов и структур данных, а также заполнить анкету с указанием профессионального опыта. Работать можно было от 20 до 40 часов в неделю — я выбрал 20, чтобы совмещать с учебой.
У кандидатов было собеседование в один этап. У меня спросили об опыте в SQL, Docker и Python, предложили рассказать о проектах, которые я указал в анкете, и решить несколько задач на логику и код.
Тогда у меня было несколько проектов. Основным и самым крупным был чат-бот для перевода голосовых сообщений во «Вконтакте» в текст — до того, как соцсеть сама ввела такую функциональность. На развитие бота мне даже донатили разработчики «Вконтакте». Еще один проект я делал для своего лицея — ПО для большой сенсорной информационной панели. Эта программа позволяла размещать картинки на сенсорной доске. Можно было нажимать на них и открывать их большие версии.
На отборе запомнилось, как я сравнивал типы данных и их эффективность. В этом здорово помог опыт участия в Тинькофф Поколении. Он дал мне конкурентное преимущество, поскольку компания понимает: скорее всего, я лояльнее многих других кандидатов, ранее уже прошел отбор на курс для школьников и завершил его.
К стажерам в Тинькофф относятся как к полноценным сотрудникам, здесь нет предвзятости. Стажировка — это своего рода испытательный срок, при этом вначале в компании не ждут, что ты будешь самостоятельным сотрудником, и готовы всячески помогать стажеру, учить новому.
Примерно за две недели до конца стажировки у меня спросили, хотел бы я продолжить работу в штате. Я ответил, что хочу, и попросил график 30 часов в неделю, чтобы успевать учиться. Приближалась первая серьезная сессия первого курса — летняя.
Куратор подбирал задачи, отвечал на все мои вопросы, помогал в решении проблем и проводил ревью. Я очень благодарен ему за помощь и поддержку. Не так давно он стал тимлидом команды, в которой я работаю.
Работа в Тинькофф. Сейчас я разработчик, data engineer. Занимаюсь библиотекой, компоненты которой трансформируют или загружают данные. Мы пишем генераторы SQL-кода для оптимальной трансформации или загрузки данных.
Я учился не только на стажировках, но и проходил дополнительные курсы по специальности. К примеру, я освоил «Введение в программирование на C++» на «Степике». Это курс для тех, кто начинает свой путь в олимпиадном программировании. Еще один пройденный курс на «Степике» — «Программирование на Python» от Института биоинформатики.
Плюс продолжаю получать знания на работе. У сотрудников банка есть доступ к различным образовательным материалам — например, записям Тинькофф Финтеха, внутренних митапов, а также к видеокурсам специально для внутреннего использования. Я посмотрел несколько лекций Финтеха по Python — это хороший курс, дает глубокое понимание ряда тем. Кроме этого, готовлюсь к аттестациям, которые в компании проводятся два раза в год и позволяют получить повышение после ревью или пересмотреть зарплату.
Есть что вспомнить про учебу в университете? Расскажите и станьте героем следующего материала
Время на прочтение
8 мин
Количество просмотров 22K
Привет! Мы участники программы Tinkoff Internship, и в этой статье хотим рассказать об отборе, внутренней обстановке, задачах и наших впечатлениях. Надеемся, это будет полезно и будущим интернам, и тем, кому просто интересна компания.
Отбор
Отбор на программу Tinkoff Internship проходил в два этапа.
Первая часть — онлайн-экзамены. В зависимости от направления предлагается несколько алгоритмических задач, тест на знание SQL или олимпиадные задачи по математике, а также тестовое приложение для тех ребят, кто подается на мобильную разработку. Вступительные испытания не совсем стандартны и требуют некоторой подготовки. По истечении срока сдачи экзаменов условия задач выкладываются в группу во Вконтакте, где их можно попробовать решить и обсудить. Так же есть бот в Telegram — там тоже можно потренироваться решать задачи.
Всех тех, кто успешно справился с онлайн-этапом, приглашают на очные встречи с кураторами в офис.
Встречи проходили в разных форматах: давали задачки на логику, язык программирования, спрашивали о предпочтениях в технологиях и обо всем том, что тебя интересует в мире ИТ.
Спустя некоторое время тем, кто был принят на программу, пришло приглашение с условиями программы. И речь не только о деньгах. Интерны бесплатно обедают в Тинькофф Кафе и ходят в фитнес-зал в офисе. На нас также распространяются корпоративные скидки и предложения от партнеров компании.
В отборе участвовали 1299 человек, из которых 412 были приглашены на финальный этап, 98 получили приглашения на программу. Итоговый конкурс — более 13 человек на место.
Первое впечатление
В первый день организаторы проводят ознакомительную лекцию, после которой интерны расходятся по своим командам.
Их уже ждет ноутбук, монитор, мышь и внутренний телефон. При желании можно запросить любое нужное оборудование.
Мы, например, просили дополнительный монитор, коврик для мыши, наушники и гарнитуру.
Как только вы обосновались на новом месте, кураторы рассказывают о своих командах и проектах. Кстати нам сразу же дали «боевые» задачи.
Каждый из соавторов статьи недавно завершил свое участие в программе Tinkoff Internship и расскажет о своем опыте.
Витя. Направление — аналитика
Я занимался улучшением ценообразования страховых полисов.
У ментора возникла идея, что, проанализировав рынок, мы сможем ввести в модель цены новый параметр, который позволит в конечном счете повысить прибыль. Для этого нужно было собрать имеющиеся данные, получить информацию о рынке, провести конечную аналитику и выяснить, полезен ли новый параметр.
В начале самым сложным было освоиться с SQL и библиотекой для работы с данными Pandas, так как до этого я мало их использовал. Целую неделю я писал скрипты для получения и складирования данных о рынке.
Параллельно работал тест эластичности, где мы меняли наши цены и смотрели на конверсию — вероятность покупки полиса. Используя данные этого теста, мы смогли построить модель, предсказывающую конверсию по нашей цене и полям полиса, а новый параметр увеличил качество работы модели.
ROC-кривая модели. Чем больше площадь под графиком, тем лучше модель
Получать данные о рынке при каждом обращении пользователя слишком долго, поэтому мы попытались предсказывать новый параметр — и поначалу нам удавалось хорошо это делать. Но с какого-то момента модель на обновленных данных стала обучаться хуже и ошибаться сильнее.
Оказалось, что причина тому — резкая «просадка» курса рубля к основным валютам, поэтому по одному набору параметров она должна была выдавать различные ответы, чего модель, конечно же, делать не могла. Логичным решением стало добавление курса валюты в модель.
Уже казалось, что мы имеем хорошую конверсионную модель. Зафиксировав остальные параметры для конкретного полиса, мы можем изменять нашу цену и, используя предсказанную конверсию, получать точку максимальной ожидаемой прибыли. Но тут оказалось, что модель плохо отображает динамику изменения конверсии от изменения цены и, как следствие, наиболее выигрышной стратегией становится повышение цены настолько, насколько это возможно. Думаю, если провести более тонкие тесты изменения цены, мы сможем избавиться от этой проблемы и внедрить эту модель ценообразования.
В будущем мы хотим создать полноценный RL-агент, который сможет адаптироваться под изменяющиеся условия окружающей среды и максимизировать прибыль. Для знакомства с SQL рекомендую решать задачки по SQL и параллельно смотреть необходимую теорию. Что касается библиотеки Pandas — есть замечательный пример использования Pandas в House Prices.
Максим. Направление — Android-разработка
Я занимался разработкой мобильной CRM-системы, позволяющей владельцам малого и среднего бизнеса более эффективно вести свой продукт.
Мне повезло с командой: была полная свобода действий, а разработка полна экспериментами и необычными решениями. С каждым днем я все глубже погружался в проект и уже через месяц после фиксов небольших багов и написания автотестов приступил к разработке фичей. Помимо этого мне давали участвовать почти во всех процессах развития продукта: я присутствовал на встречах с клиентами, слушал их пожелания и предложения. Каждый из членов команды мог вносить что-то новое в проект, предлагать свои идеи.
Мне удалось решить несколько важных технических задач, в числе которых была навигация по приложению. Мы не хотели завязываться на библиотеках, поэтому было принято решение написать свой роутер. «Под капотом» он содержит несколько оптимизаций, которые позволяют более эффективно по времени и памяти выполнять транзакции на фрагментах.
Также однажды мы заметили довольно большую утечку памяти, которая приводила к падению приложения на слабых устройствах. Посмотрев логи в LeakCanary, мы увидели, что во всем виноват стандартный гугловский Snackbar. Решили переписать его и немного улучшить, в итоге никаких утечек больше не возникало.
Еще одной проблемой для нас был вес приложения: мы заметили, что в какой-то момент оно стало весить чуть ли не в три раза больше. Проанализировав apk через apkanalyzer
, увидели, что все дело в нативных библиотеках: приложение собирается под все типы процессоров, из-за чего один .so
-файл может увеличить вес приложения не на 2,5 Мб, а на 12 Мб. Чтобы этого избежать, решили разделить итоговый apk на каждый из типов процессоров. Таким образом мы получили четыре релизные сборки вместо одной, но весили они примерно в 2,5 раза меньше.
Android-приложение мы писали, используя собственную архитектуру, что сначала было для меня совсем непривычным, однако через некоторое время я освоился, и даже принял ее как свою основную, ведь она показалась мне наиболее естественной для написания ПО.
Все это время со мной на связи был мой куратор, он же тимлид, который в режиме 24/7 отвечал на все мои вопросы и нещадно ревьювил мои пулл-реквесты :).
Во время программы я смог внести некоторый вклад в развитие Финтех-школы — помогал выстраивать процесс записи прогонов лекций, чтобы в будущем это было легче масштабировать и лекторы из других городов могли понять, о чем была презентация. Также я помогал с донесением информации до студентов, так как понимал, в чем у них могут быть сложности с восприятием.
Стоит учесть, что на момент Tinkoff Internship у меня уже был некоторый опыт разработки. Однако здесь ценится не только опыт, но и умение быстро разбираться в сложных вещах. Для этого, мне кажется, стоит уделять время алгоритмическим задачам, которые развивают абстрактное мышление. Задачки настоятельно рекомендую решать на leetcode.
Также не стоит забывать про техническую литературу и вообще быть в курсе того, что происходит в мире мобильной разработки. Для этого есть шикарный ресурс с тысячами полезных статей о том, как можно писать код.
Ребятам, изучающим Android, хотелось бы посоветовать прочесть следующие книги:
- Kotlin in Action. Довольно простая, отлично написанная книга, прочитав которую можно очень быстро влиться в разработку на Kotlin.
- Effective Java. Мастхэв — сборник советов и приемов, которые должен знать любой Kotlin-/Java-разработчик.
- Efficient Android Threading. Отличная книга — умеренно глубоко рассказывает о том, как устроено многопоточное взаимодействие в Android.
Чтение книг и нарешивание задач принесут пользу только в том случае, когда вы каждый день применяете новые знания на практике. Поэтому я рекомендую придумать какую-нибудь идею для своего проекта — например, написать простенький мессенджер, музыкальный плеер, галерею для просмотра фото — и начать все это дело реализовывать. Верьте в себя, много читайте, пишите код каждый день — и тогда у вас все получится!
Маша. Направление — аналитика
Я два раза проходила Internship в Tinkoff в команде Process Mining, которая занимается анализом бизнес-процессов в компании. Анализ бизнес-процессов позволяет увидеть, как на самом деле работает процесс, насколько он близок к «идеалу» и где его узкие места.
Так как коллектив компании молодой, было достаточно легко найти общий язык. Все обращаются друг к другу на ты, иерархия сотрудников никак не проявляется в общении. Первый раз в моей команде было трое интернов, все мы занимались разными задачами с разными наставниками. Также была возможность поменять задачу в течение программы. Но моя мне понравилась с самого начала.
В основном я занималась анализом процесса обработки запросов от сотрудников и клиентов Tinkoff.ru. В моей задаче было две части: подготовка требуемой модели данных с помощью SQL (основные команды и правила языка можно посмотреть на этом ресурсе) и построение аналитики на основе этих данных.
Первай раз я участвовала в программе с частичной занятостью, 20 часов в неделю. Моя основная задача состояла в том, чтобы добавить информацию о соблюдении SLA — соглашения об уровне обслуживания — к существующему варианту анализа процесса. Некоторое время ушло на знакомство с инфраструктурой компании и инструментами, с помощью которых выгружались и обрабатывались данные. В итоге в текущий анализ бизнес-процесса я добавила два новых дашборда с аналитикой.
Во второй раз передо мной стояла более сложная задача — собрать неиспользуемые ранее данные из хранилища в определенной форме и сделать по ним новую аналитику. Кстати, в книге В. Савельева «Статистика и котики» простым языком описаны основные статистические характеристики и методы их применения.
Несколько раз я ходила на встречу с заказчиком, где мы обсуждали требования и текущие наработки. Изначально планировалось, что моим результатом станут три дополнительные страницы с аналитикой, но в ходе обсуждений мы пришли к выводу, что нужно сделать абсолютно новую версию отчета. Когда все данные были собраны и дашборды готовы, я запустила новый проект на тестовую группу. Спустя неделю собрала от них фидбек и внесла некоторые доработки. К окончанию программы мой отчет был доступен всем сотрудникам компании.
Коля. Направление — ML
В рамках Tinkoff Internship я попал в команду речевых технологий.
Еще на втором этапе отбора я познакомился с Настей, моим будущим куратором, и Вадимом — нашим менеджером по продукту. Настя дала несколько алгоритмических задачек, а Вадим рассказал о работе над голосовым помощником, роботами и аналитикой колл-центров. Вопреки расхожему мнению, мы отвечаем не только за голос и уши голосового помощника Олега, У нас есть множество других интересных задач по интеграции голосовых технологий для различных клиентов. После Tinkoff Internship я остался в команде, сейчас мы ищем как профессионалов, так и мотивированных новичков.
Во время программы я занимался оптимизацией инференса. Дело в том, инференс нейронных сетей довольно часто сводится к операциям с плотными матрицами. При этом для авторегрессионных моделей, например для WaveNet, его выгоднее выполнять на CPU, чтобы можно было поддерживать больше одновременных потоков инференса.
Однако производительность «наивной» реализации матричного умножения с автоматической оптимизацией средствами компилятора редко достигает 10% от максимально возможной для отдельно взятого CPU. Для большей производительности необходимо использовать более тонкую оптимизацию. Существует много различных подходов к оптимизации матричных умножений для инференса нейросетей на CPU. У Насти были серьезные наработки по данному вопросу, мне же предстояло собрать их всех в единую библиотеку GEMM на C++. Такие библиотеки используются в популярных фреймворках: в TensorFlow это Eigen, в PyTorch — FBGEMM.
Кроме Register Blocking, Cache Blocking и SIMD-расширений процессора в библиотеке активно используются возможности C++: статический полиморфизм (CRTP) и генерация кода на этапе компиляции. Забавный факт: в определенный момент пришлось ненадолго переключиться с оптимизации матричных умножений на оптимизацию компиляции кода, использующего библиотеку. В итоге наша библиотека обгоняет Eigen (многократно) и FBGEMM на большинстве тестов. Дальнейшая работа будет направлена на внедрение библиотеки в наш движок для инференса.
Один из стандартных бенчмарков FBGEMM: произведение матриц
[M × 512] и [512 × 512]
Итоги
От Tinkoff Internship у нас остались только положительные впечатления. Круто, что нас считают полноценными участниками команды, дают реальные задачи и позволяют решать их самостоятельно. Если возникают трудности, наставники помогают, но не просто озвучивают советы, а дают возможность самому найти решение.
Решать задачи с людьми, не лишенными чувства юмора, которые могут профессионально руководить и писать крутой код, всегда дает отличный шанс развивать свои хард- и софт-скилы, набираться опыта и начинать свою работу в ИТ.
На Tinkoff Internship сейчас открыт новый набор — записаться и пройти экзамены можно до 8 декабря на сайте fintech.tinkoff.ru/internships/about
Практика в Тинькофф Банк дает студентам возможность получить ценный опыт работы в области интернет-банкинга. Нередко выпускники вузов отлично подкованы теоретически, но испытывают острый дефицит реальных профессиональных навыков, поэтому крупные компании не слишком охотно берут в штат новоиспеченных специалистов. Для тех, кто не намерен после университета терять время на доучивание и переучивание, стажировка в Тинькофф Банк без диплома станет надежным вложением, проценты с которого в будущем послужат быстрому продвижению в профессии.
О компании
Тинькофф Банк – единственное российское финансово-кредитное учреждение, функционирующее полностью онлайн. Клиентская база – без малого семь миллионов человек. Все операции проводятся через интернет или по телефону, потому что офлайновых отделений просто нет.
На своей платформе банк предоставляет как собственные, так и партнерские финансовые услуги. Компания разработала популярные мобильные приложения, которыми пользуются не только клиенты Tinkoff.ru:
- «Штрафы ГИБДД»;
- «ВКармане»;
- «С карты на карту».
С 2015 года Тинькофф трижды становился лауреатом ежегодной премии Best Digital Bank Award, учрежденной бизнес-изданием Global Finance, а в 2017 г. журналом The Banker был признан банком года.
Стажировка в Тинькофф Банк
Регулярные стажировки в Тинькофф Банк для студентов и выпускников вузов проводятся по четырем направлениям:
- Аналитика (бизнес-технологии).
- Исследования.
- Разработка.
- Тестирование.
Все они летние, аналитики постигают секреты профессии в течение месяца (июля), исследователи, тестировщики, разработчики ПО – в течение двух (июля и августа). Пройти стажировку можно в городах, где есть офисы центров разработки Тинькофф Банка:
- в обеих столицах – в Москве и Санкт-Петербурге;
- Екатеринбурге;
- Новосибирске;
- Ижевске;
- Рязани;
- казанском наукограде Иннополисе.
Стажеры выполняют реальные рабочие задачи – такие же, как и те, что решают штатные сотрудники Тинькофф Банка. Загруженность полная – 40 часов в неделю (возможен 30-часовой сокращенный график), оплата достойная – 30 тысяч по окончании курса. Несколько первых дней уходит на адаптацию и знакомство со структурой компании, после чего стажеру выдается проект, над которым он работает наравне с другими сотрудниками, но под руководством ментора – так в Тинькофф Банке называют наставников. Они знакомят подопечных с особенностями бизнес-процессов, объясняют новичку его позицию в проекте, а потом проводят учебу в «полевых условиях».
Как проходит отбор
Чтобы попасть на стажировку в Тинькофф Банк, надо пройти двухэтапный отбор, который начинается весной. Первый шаг – до 14 мая отправить резюме со специализированного сайта компании (fintech.tinkoff.ru), выбрав направление. К заявке организаторы стажировки просят добавить небольшое эссе о себе.
Собственно отбор проходит так:
- Онлайновый тур (14–17 мая) – претенденты решают специально разработанные для каждого направления задачи.
- Личное собеседование в офисе (22 мая – 15 июня) – на интервью приглашаются те, кто успешно сдал экзамен. Очно тоже предстоит решить несколько соответствующих профилю стажировки задач и познакомиться с ментором.
Ежегодно стажировку в Тинькофф Банке проходит около 190 человек, конкурс – примерно 10 человек на место.
Тест для прохождения стажировки в Тинькофф Банк
На заочном интернет-этапе стажеры каждого из направлений решают разные задачи:
- аналитики – математические;
- разработчики – на алгоритмы и структуры данных;
- исследователи – обоих видов;
- тестировщики проходят тест на общие знания.
Задачи прошлых лет и их решения выложены в официальной группе компании в ВК.
Пример задания
Кроме того, у банка в «Телеграме» есть бот @TinkoffMathBot для тренировок в решении задач. Основательно прокачать навыки перед экзаменом организаторы стажировок советуют на informatics.mccme.ru.
Лучшие стажеры из числа выпускников и аспирантов имеют все шансы на постоянной основе войти в штат банка. Студенты старших курсов уже после окончания вуза могут претендовать на трудоустройство, пройдя только этап личного собеседования. В среднем на работу в Тинькофф Банк после стажировки устраивается 37–40 человек.
Практика в Тинькофф Банк
Компания проводит преимущественно летние стажировки, но банковские менеджеры по персоналу подчеркивают, что могут предложить индивидуальную программу производственной практики тем студентам, которые обратятся в HR-отдел с личными просьбами. В этом случае процесс будет организован в полном согласовании с вузовским учебным планом и по стандартному регламенту: с ведением дневника, отзывом руководителя и написанием отчета по практике.
И еще пример.
В «штатном режиме» производственную и преддипломную практику в Тинькофф Банке могут проходить студенты базовых вузов компании, например МФТИ, ИТМО, ВШЭ, МГУ, если профиль их обучения – банковское дело, прикладная математика или IT.
Как попасть
Резюме можно отправить по адресу recruitment@tinkoff.ru. Если кандидат заинтересует менеджера по персоналу, студента пригласят на собеседование. Отбор будет таким же, как для стажировки: онлайн-экзамен и интервью, на котором тоже придется решить несколько советующих специальности задач. Кроме того, важны оценки по профильным предметам (их подтвердит академическая справка). Еще на собеседование нужно принести направление на практику из деканата.
Отзывов о стажировке и практике в Тинькофф Банк немного, ведь для обучения компания набирает меньше двух сотен студентов в год. Но все, кому удалось на время стать частью команды, отмечают интенсивность работы и то, что получили навыки, которые потом очень пригодились.
В конце марта N + 1 опубликовал тест «От простого к сложному», подготовленный вместе с Тинькофф. Мы составили его из математических задачек, проверяющих некоторые важные для аналитиков качества — в результате тем, кто справился лучше всего, компания предложила поучаствовать в летней стажировке. А теперь по просьбе читателей мы рассказываем, какими были правильные ответы к задачам из этого материала.
Задача №1
Условие: В отделе по разработке мобильных приложений банка Т работает 45 человек. Из них 16 занимаются разработкой, 17 — системной аналитикой, а еще 18 — дизайном. В отделе есть люди, которые занимаются двумя видами деятельности одновременно: разработкой и аналитикой занимаются четверо, разработкой и дизайном — трое, аналитикой и дизайном — 5. Руководитель отдела Давид занимается и дизайном, и разработкой, и аналитикой. Сколько человек в отделе Давиду нужно уволить, потому что они ничем не занимаются?
Решение: Заполним схему (рис. 1) по условию задачи. Легко посчитать, что чем-то занимаются 11 + 10 + 9 + 4 + 1 + 2 + 3 = 40 человек, а в отделе 45. Следовательно, 45 − 40 = 5 человек, которые ничем не занимаются.
Ответ: 5
Задача №2
Условие: Фиолетовый банкомат сломался и неправильно разменивает деньги: если в банкомат положить рубль, он выдаст 67 долларов, а если положить 1 доллар — 15 рублей. Можно ли, подойдя к банкомату и имея только 1 рубль, получить после нескольких операций одинаковое количество рублей и долларов?
Решение: Заметим, что если мы размениваем один доллар, то общее количество всех денег увеличивается на 14, а если рубль — на 66. Иначе говоря, вне зависимости от того, как мы размениваем деньги, после каждой операции их общее количество увеличивается на четное число. Изначально у нас есть один рубль, то есть после каждого обмена мы получим один + четное число, то есть нечетное число денег. Нечетное число на два не делится, поэтому одинакового количества рублей и долларов быть не может.
Ответ: Нет
Задача №3
Условие: Несколько лет назад Миша купил в кредит желтую машину. Он взял в банке кредит на 100 тысяч рублей и выплачивал его x месяцев. В конце первого месяца Миша выплатил банку 10 тысяч рублей, а в каждый следующий месяц выплачивал на 7 тысяч рублей больше, чем в предыдущий. В последний месяц выплата составила 73 тысячи рублей. Сколько тысяч рублей составила переплата по кредиту?
Решение: В последний месяц Миша заплатил 10 + 7 × (x — 1) = 73 тысячи рублей. Отсюда найдем, что x = десять месяцев. Значит, всего Миша выплатил 10 + 17 + 24 + 31 + 38 + … + 73 = 415. В таком случае переплата составила 415 — 100 = 315 тысяч рублей.
Ответ: 315
Задача №4
Условие: Предприниматель Олег считает, что натуральные числа p и p2 — 14p + 40 приносят удачу. Известно, что оба числа простые и больше трех. Найдите сумму этих чисел.
Решение: Число p2 — 14p + 40 = (p — 4)(p — 10) является простым, если одна из скобок по модулю равна 1, вторая по модулю равна простому числу, а произведение скобок является натуральным числом. Рассмотрим все p, при которых одна из скобок по модулю равна 1. Это следующие значения p : 3, 5, 9 или 11. Вариант p = 3 не подходит, так как p по условию больше трех. Вариант p = 9 также не подходит, поскольку p должно являться простым числом. При p = 5 значение выражения равно -5 и не является натуральным. Значит, подходит только p = 11. В этом случае p2 — 14p + 40 = 7. Сумма чисел равна 18.
Ответ: 18
Задача №5
Условие: Треугольник ABC построен на стороне прямоугольника DBCE так, что точка A лежит вне прямоугольника, BC = 6, BA = 3. Какую максимальную площадь может иметь фигура DBACE, если известно, что отрезок DB равен высоте треугольника ABC, проведенной из точки A?
Решение: Обозначим (рис. 2) за AF высоту треугольника, тогда по условию AF = DB. Площадь искомой фигуры: S = SABC + SDBCE = AF × BC/2 + DB × BC = AF × BC/2 + AF × BC = 1,5 × AF × BC, AF = AB × sin α. BC и AB заданы в условии — значит, площадь максимальна, когда синус максимален, то есть когда 𝑠𝑖𝑛 α = 1. Получается, что S = 1,5 × 6 × 3 × 1 = 27
Ответ: 27
Задача №6
Условие: Перед новым годом HR-департамент компании Т запустил игру в необычного «тайного Санту». Два соседних отдела банка должны вручить друг другу подарки таким образом, чтобы каждый человек из одного отдела вручил по одному подарку каждому человеку из другого. Известно, что среднее арифметическое людей в этих двух отделах равняется 45. Помогите HR-департаменту посчитать, какое максимально возможное количество подарков могло быть сделано в Новый год в этих двух отделах?
Решение: Пусть в одном отделе работает n человек, а в другом — m. Тогда по неравенству о средних 45 ≥ √m × n, то есть 2025 ≥ m × n. Значит, максимальное значение, которое может принимать m × n, равняется 2025. В новый год подарков сделано 2 × m × n, то есть максимальное количество подарков, которое могло быть сделано, равно 2 × 2025 = 4050
Ответ: 4050
Задача №7
Условие: Параллельно стороне AC треугольника ABC проведены прямые MN и PQ, причем так, что точки P и M лежат на стороне AB, а Q и N — на BC. BH — это высота треугольника PBC. PQ = 2, MN = 4, BN = 2, BC = 6, BH = 1/7. Найдите площадь четырехугольника APQC.
Решение: Треугольники BPQ, BMN и BAC (рис. 3) подобны. Поэтому AC = MN × 3 = 12, BQ = BN/2 = 1, BF = 1/7 × 6 = 6/7. Тогда HF = 6/7 — 1/7 = 5/7. Площадь трапеции отсюда: APQC = HF × (PQ + AC)/2 = 5/7 (2 + 12)/2 = 5
Ответ: 5
Задача №8
Условие: Мария постоянно забывает последнюю цифру пароля от своего банковского счета. Чтобы пользоваться счетом, она написала себе подсказку: цифра равна количеству решений уравнения x + 3|y| + 5 = 0, при условии, что (x + 2 + (y − 1)2 = 10. Найдите эту цифру.
Решение: Построим графики этих уравнений на плоскости (рис. 4). Первое уравнение задает окружность, а второе — «галочку». Количество решений уравнения — это количество точек пересечения графиков этих уравнений. Из построения видим, что точек пересечений ровно 3. На рисунке они отмечены как A, B, C.
Ответ: 3
Задача №9
Условие: Сотрудникам компании Т, которые выполняют дополнительные рабочие задачи, полагается премия. Если сотрудник сверхурочно работал n часов, то размер премии в S тысяч рублей вычисляется по формуле S = p + n2, где p — остаток от деления числа 102022n на 12. Сколько тысяч рублей выплатят сотруднице Варе в качестве премии, если она проработала дополнительно 14 часов?
Решение: Найдем чему равен остаток от деления числа 102022𝑛 на 12.
10 ≡ 1 mod 3 ⇒ 102022n ≡ 1 mod 3
102 ≡ 0 mod 4 ⇒ 102 × 1011n ≡ 0 mod 4
Остаток от деления на 12 должен быть меньше 12, делиться на 4 и быть сравнимым с 1 по модулю 3. Числа меньшие 12 и кратные 4 — это 0, 4, 8. Из них только 4 сравнимо с 1 по модулю 3. Выходит, что премия Вари равняется 4 + 14 × 14 = 4 + 196 = 200
Ответ: 200
Задача №10
Условие: Оливер угадывает любимое число Стаса. Стас дает Оливеру подсказку: этим числом является среднее арифметическое корней уравнения (2022 − (22 + x)2)2021 − 2(22 + x)6 = 20222022. Какое у Стаса любимое число?
Решение: Заметим, что если корнем уравнения является число a, то число —a — 44 — это тоже корень уравнения. То есть все корни уравнения можно разбить по парам. Сумма корней в паре a + (-a — 44) = -44. Допустим, всего этих пар n штук — тогда среднее арифметическое будет равняться -44 × n/2n = -44/2 = -22. Это и есть любимое число Стаса.
Ответ: -22
С 1 декабря 2021 года начинается зимний набор в «Тинькофф Старт» — программу оплачиваемых стажировок от «Тинькофф».
Стажировка пройдет по направлениям: аналитика, QA, бэкенд-разработка (Java, C++, Python, Scala, .Net, Golang), фронтенд, мобильная разработка (iOS и Android), ML, маркетинг и менеджмент образовательных проектов.
Три месяца участники вместе с кураторами «Тинькофф» будут работать над реальными задачами компании.
Все кураторы — опытные профессионалы в своих областях: разработчики, тестировщики, аналитики и другие эксперты «Тинькофф». Им можно задавать любые вопросы и общаться на протяжении всей стажировки. Стажер сразу погружается в рабочую среду и работает над улучшением настоящего продукта, а не над придуманной задачей. Поэтому три месяца стажировки дают сразу и практические навыки, и навыки общения и коммуникации в бизнес-среде.
Ниже — одна из задач, над которыми работают стажеры. Это проект интерна с прошлой программы «Тинькофф Старт» — Матвея. Во время стажировки он работал в команде аналитики рисков и занимался задачей учета отказов по заявкам в построении модели вероятности дефолта.
В чем суть
Представим, что у банка есть модель, по которой принимается решение, выдавать определенному человеку кредит или нет. Она оценивает заемщика, предсказывая вероятность его неплатежеспособности. Людям с высокой вероятностью дефолта банк отказывает, а с низкой — выдает кредит.
Вся информация о выданных кредитах находится в хранилище. Там же содержится и целевая переменная, которая служит индикатором дефолта клиента. Со временем аккумулируется все больше и больше данных. Поэтому команда решила создать новую, более мощную модель, которая будет лучше учитывать и обрабатывать весь объем информации, а также предсказывать неплатежеспособность (то есть дефолт) людей.
Здесь возникла проблема: полученная модель строится и обучается на данных только по тем людям, которым одобрили кредит. О тех, кому отказали, информации нет. Кредит они не получили, поэтому и целевая переменная для них не определена.
Когда же модель запускалась на всем потоке людей, исследовались все заявки, в том числе и очень плохие, которые в процессе обучения модель вообще не встречала. Поэтому на таких заявках модель могла вести себя некорректно и непредсказуемо. Это своеобразная ошибка выжившего.
Такого эффекта удалось бы избежать, если бы банк начал выдавать кредиты всем желающим, без учета риска дефолта на старте, а потом строить модель на полученной расширенной выборке.
Нужно было придумать другой способ и проверить его состоятельность. Именно это и стало основной задачей стажировки Матвея. Вместе с куратором они ставили эксперименты с использованием разных современных технологий.
Что получилось
Одна из метрик, которая позволяет оценить качество модели, называется AUC (Area Under Curve — «площадь под кривой ошибок»). Простой пример. Допустим, есть признак Х, который принимает большие значения у людей с низкой вероятностью дефолта и маленькие — с высокой. Тогда AUC — это вероятность того, что у случайного платежеспособного человека значение признака Х больше, чем у человека, который точно вышел бы в дефолт.
Так, если AUC какого-то признака равен 1, то по этому признаку можно безошибочно определить, сможет человек выплатить кредит или нет.
Действующая модель строилась только на данных клиентов, которым был одобрен кредит. Поэтому ожидалось, что AUC увеличится, когда реализуется новая техника.
В результате удалось разработать модель, которая приблизила аналитиков к полным данным. Новая модель улучшает качество разделения заявок и точнее предсказывает вероятность дефолта.
Задача Матвея была сложной, объемной и содержала массу нюансов. Сейчас он продолжает заниматься ею уже после завершения стажировки как штатный сотрудник. Матвей отмечает, что в процессе стажировки ему очень пригодились базовые знания Python и SQL. А еще математический практикум, который преподают на 3-м курсе мехмата МГУ.
Зимний набор в Тинькофф Старт
Если пример Матвея вдохновил, приглашаем в команду «Тинькофф» — поработать над одним из проектов. Чтобы стать участником:
-
подайте заявку на сайте «Тинькофф Старта»;
-
сдайте онлайн-экзамен с 1 по 22 декабря;
- пройдите онлайн-интервью с командами.
В программе могут участвовать студенты, магистранты и молодые специалисты из Москвы и других городов России, в которых есть Центры разработки «Тинькофф».
«Тинькофф Старт» действует с 2016 года и работает со студентами и молодыми ИТ-специалистами. Более 66% стажеров, которые прошли программу, устроились на постоянную работу в «Тинькофф».
IT-собеседование в Тинькофф
Рассказываем, как подготовиться к собеседованию на IT-вакансию: https://www.tinkoff.ru/career/it/
Этапы собеседования
- Предварительное собеседование.
- Техническое собеседование.
- Знакомство с командой.
- Приглашение на работу.
Этап 1: предварительное собеседование
Вы откликнулись на вакансию и отправили резюме — через некоторое время с Вами свяжется рекрутер и проведет предварительное собеседование.
На предварительном собеседовании знакомимся друг с другом. Беседа займет полчаса: рекрутер спросит Вас об интересах, опыте и мотивации, а затем расскажет о работе и вакансиях в Тинькофф. Не стесняйтесь задавать вопросы.
Рекрутер запомнит направление и проекты, над которыми хотите работать. В течение двух дней он свяжется с Вами и согласует время для технического собеседования.
Этап 2: техническое собеседование
Техническое собеседование состоит из нескольких отдельных тем — секций. Созвон по каждой секции длится 1-1.5 часа и проходит в Zoom с отдельным интервьюером. Вы можете пройти все секции сразу или в течение нескольких дней — скажите рекрутеру, как удобнее.
Как проходить секции:
- Подготовьте рабочее место: проверьте компьютер и интернет, подготовьте веб-камеру, возьмите пару листков бумаги и ручку. Рекомендуем выспаться и захватить бутылку воды.
- Не используйте для созвона телефон: Вы будете много кодить в онлайн-IDE, рисовать схемы и общаться с интервьюером.
- Задавайте вопросы и предлагайте разные решения, даже если они кажутся неправильными: интервьюер проверяет не только знания, но и как Вы подходите к решению задач.
Обычно нужно пройти 2—4 секции — это зависит от направления и Вашего опыта. Точное количество Вам скажет рекрутер.
Направления и секции в Тинькофф
Backend-разработка
- Секция по платформе или языку
- Секция программирования
- Системный дизайн
Frontend-разработка
- Секция по Web платформе и фреймворкам
- Секция программирования
- Архитектурная секция (для кандидатов уровня middle+ и выше)
SRE
- Проверка общих инженерных компетенций
- Выявление и устранение проблем
- Базовое программирование
Для позиций с фокусом на разработку возможно проведение дополнительных секций:
- Системный дизайн
- Секция программирования
Машинное обучение
- Секция программирования
- Секция по ML
- Дизайн ML-систем
Quality Assurance (QA Fullstack)
- Профильная секция тестирования (backend, mobile, web)
- Теория и практика QA
- Программирование для QA
Тестирование производительности
В секции программирования, по направлению тестирования производительности, используются задачи по кодированию уровня easy (leetcode), нацеленные на умение использовать простые структуры данных, а не на эффективную реализацию алгоритмов.
- Программирование для QA
- Секция по дизайну проектов тестирования производительности
Этап 3: знакомство с командой
После технической секции рекрутер подберет подходящие проекты и согласует созвон с командами. Обычно созвон длится полчаса: ребята рассказывают про текущие проекты, отвечают на вопросы и спрашивают о Вашем опыте, любимых задачах, увлечениях. Таких созвонов будет не более трёх.
После созвона с Вами свяжется рекрутер: скажите ему, в какой команде Вы хотели бы работать.
Этап 4: приглашение на работу
В течение нескольких дней мы вернемся с оффером. Если Вам понравятся условия и команда, останется согласовать дату первого рабочего дня.
Дополнение:
- Рекрутер отвечает между этапами в течение трех дней, на финальное решение уходит чуть больше времени. Рекрутер на связи: Вы можете связаться с ним, если нужно что-то уточнить.
- В беседе с интервьюерами задавайте вопросы и предлагайте разные решения. Интервьюер проверяет не только знания, но и как Вы подходите к решению задач.
- Бывает так, что на каком-то этапе интервью мы отказываем кандидату. Отказ не влияет на отношение к кандидату: он может попробовать подать заявку через полгода, а если откроется подходящая вакансия, мы предложим варианты.
- Если есть пожелания или что-то не понравилось, напишите нам: interview_issues@tinkoff.ru.