Наталья Денисенко — как в 17 лет стать Software Solutions Architect, а в 19 получить работу в Amazon
В 2015 году на DOU вышло интервью с Еленой Денисенко — о карьере программиста и должности Team Lead в 19 лет.
Наталья Денисенко добилась экстраординарных результатов в удивительно молодом возрасте: в 14 лет поступила в университет, в 17 лет работала на позиции Software Solutions Architect, в 18 лет стала спикером на международных IT-конференциях, а в 19 получила работу в компании Amazon в Сиэтле.
Наталья — младшая сестра Елены. Сейчас ей 20 лет.
— Наталья, расскажите о себе. Как вы заинтересовались IT?
Окружающие с детства замечали у меня неординарные способности в области точных наук, особенно по математике. Учебную программу, рассчитанную на год, я могла выучить за неделю.
Уже в 12 лет я освоила математическую программу выше уровня средней школы. К 14 годам изучила более сложные дисциплины, выходящие за рамки школьной программы. Например, матанализ, теорию вероятностей, матстатистику, дискретную математику, теорию графов, сложные вычисления, алгоритмы и структуры данных. Помимо этого, знала Java, Scala, C#, F# и компьютерные сети.
В итоге я перешла на домашнее обучение. Без проблем закончила среднюю школу и в 14 лет поступила в Гомельский государственный университет на специальность «Программное обеспечение информационных технологий». Училась заочно и параллельно работала. В 18 лет получила диплом.
— Наверное, учиться в вузе в таком юном возрасте было непросто?
Самое сложное было в том, что преподаватели изначально относились ко мне и моим знаниям скептически. Приходилось все время доказывать, что я по праву тут учусь и обладаю солидными знаниями.
Честно говоря, я не была образцовой студенткой. Я совмещала учебу с работой и не всегда вовремя сдавала практические и лабораторные задания. На сессии приходилось в авральном режиме все доделывать, иначе не допускали к сдаче зачета или экзамена. К счастью, знаний хватало, чтобы быстро подтянуть свои «хвосты».
На третьем курсе со мной произошел интересный случай. Я приехала на сессию, но не сделала лабораторную работу по базам данных. В деканате меня предупредили, что преподаватель по базам данных очень требовательный и что у меня вообще нет шансов сдать. Тем более большинство студентов не сдают этот экзамен с первого раза.
В результате мне пришлось за один день сделать лабораторную работу по MS SQL с применением встроенных функций аналитики данных SSAS. Оказалось, что субъективного экзамена нет — был просто тест, упрощенный вариант сертификации Oracle SQL Expert. Я успешно его прошла и получила в зачетку высшую оценку. Это был самый требовательный, профессиональный и справедливый экзамен за все время обучения. Этим преподавателем был Владимир Короткевич — отец самого титулованного спортивного программиста в мире Геннадия Короткевича. Было приятно заслужить высокую оценку именно от него.
Несмотря на некоторые сложности, я закончила университет с отличием. Очень благодарна за поддержку и помощь нашему ректору С. А. Хахомову.
— А где работали во время учебы? Какой была ваша первая работал по специальности?
Я начала работать еще с 10 лет. Выполняла часть заказов вместе с моей старшей сестрой. Как правило, я отвечала за создание баз данных и работу с ними. С 12 лет мне уже доверяли достаточно сложные задания — например, проектирование и разработку SOA сервисов.
Из-за возраста мне было очень тяжело первый раз устроиться на официальную работу. У меня были профессиональные компетенции по Java, Scala, C# и F#, я легко проходила любые собеседования. Но главной проблемой стало убедить работодателей в серьезности намерений, в своей ответственности, что на меня можно рассчитывать и не ждать сюрпризов. В реальности, когда работодатели видят перед собой ребенка, то им объективно сложно воспринимать его как профессионального специалиста. Кроме этого, есть законодательная ответственность и ограничения при работе с несовершеннолетним, поэтому работодатели не желали с этим связываться.
В итоге в 14 лет я все-таки получила свою первую официальную работу в качестве Software Engineer в небольшой компании, где занималась разработкой е-Commerce сервисов.
— Как дальше развивалась ваша карьера? Какие еще трудности возникали из-за юного возраста?
В 16 лет я захотела работать в крупной международной компании. Во многих мне отказывали и даже не допускали к техническому интервью. Обычно после предварительного собеседования меня спрашивали про возраст и прекращали разговор. Несколько раз я слышала от рекрутеров одну и ту же фразу, дословно: «Мир не готов к
Но я все-таки успешно прошла собеседования в две крупные компании. В итоге выбрала Luxoft. Работала на американском проекте в качестве Software Engineer. Внутри компании и коллеги, и менеджеры относились ко мне очень хорошо, никакой дискриминации не было. Я очень благодарна компании за доверие ко мне в то время.
Наверное, я бы и сегодня могла работать в киевском офисе Luxoft. Но пришлось уволиться по семейным обстоятельствам — моя семья переехала жить в Польшу. Я очень переживала, так как до 18 лет не имела права официально работать в Польше как постоянный работник компании. Пришлось достаточно быстро стать Big Data Architect и работать в качестве Independent Contractor. На тот момент я обладала всеми необходимыми компетенциями, подтянула лишь знания по управлению проектами, командами и бюджетированием. Получить первый проект в этой области помогли друзья и коллеги.
В реальном бизнесе отношение заказчика сводится не к внешнему виду и возрасту, а к твоей эффективности. Все по-честному. Что ты стоишь, то и получаешь — не больше и не меньше. В этот период я совершила самый стремительный скачок в своем профессиональном развитии. Это был самый продуктивный и, одновременно, самый сложный и тяжелый период. Приходилось работать сутками и без выходных.
Со временем я осознала, что сомнения работодателя в ценности молодого специалиста — абсолютно объективны. Вначале придется заслужить доверие работодателя, заказчика, коллег. В этом помогут высокие показатели и качество работы. Только потом вы сможете рассчитывать на беспристрастную оценку.
— Каким был самый интересный проект, над которым вы работали?
На позиции Big Data Software Solutions Architect для меня одним из самых сложных и увлекательных стал проект создания архитектуры закрытой рекомендательной системы для крупной e-Commerce площадки.
Я разработала архитектурную концепцию, которая базировалась на анализе данных обработки продаж продуктов и поведенческой стратегии покупателя. Целью было вероятностное прогнозирование клиентов, собирающихся купить товар, но по каким-то причинам не решающихся совершить покупку. В итоге была решена задача поощрения клиентов к совершению покупки — с учетом заранее разработанных мотивационных программ. В проекте были использованы технологии Hadoop, Spark, Spark MLLib, HBase, Redis, Flume, Sqoop и др.
Сложность проектирования заключалась в построении оптимальной Machine Learning модели, в разработке нестандартных алгоритмических конструкций. Сложность реализации — в производительности использования гибридных решений хранения данных и их анализа. Попутно решались такие задачи, как балансировка нагрузки веб-серверов, оптимизация алгоритмов распределенных кеширующих серверов и т. д.
Слева: в студии Microsoft Channel 9.
Справа: перед выступлением на конференции .NET Fringe
— Расскажите, как вы попали в Amazon?
В январе 2018, находясь в Польше, я прочитала на DOU объявление о том, что Amazon проведет Hiring event в Киеве. Необходимо было подать заявку на участие и прислать свое резюме. Буквально через несколько часов после этого мне дали предварительное техническое задание, которое я успешно прошла, решив две алгоритмические задачи. Почти сразу мне перезвонили и пригласили на собеседование. По его итогам спустя несколько дней предложили job offer. На собеседование мне пришлось специально приезжать в Киев.
На тот момент у меня были еще два job offers. Один — в США от известной аутсорсинговой компании на должность Senior Solutions Architect и с более солидной заработной платой. Второй — в Германию от крупной продуктовой компании на должность Big Data Senior Software Engineer с более скромной зарплатой.
Решение в пользу Amazon приняла очень легко. Я всегда мечтала работать в США в такой солидной и успешной компании, и по сравнению с этим, деньги и должность уже не были достаточным мотивирующим фактором. Кроме того, я заранее знала, что в Amazon буду работать над распределенными системами. А это моя основная специализация. С октября 2018 года приступила к работе.
— Какой технический бэкграунд помог пройти собеседование и получить предложение работы?
Я к тому моменту уже 5 лет работала с распределенными системами, в том числе на позиции Big Data Software Solutions Architect. Если говорить о деталях, разрабатывала архитектуру для масштабируемых распределенных приложений и высокопроизводительной обработки данных в облачных средах AWS/Azure, SMACK-стеке (Scala/Spark, Mesos/Docker, Akka, Cassandra, Kafka), в HADOOP-стеке (HDFS, Yarn, MapReduce и другие), в сфере анализа данных (Scala/Spark/etc). Помимо этого, создавала высокопроизводительные сервисы, в том числе микросервисную архитектуру, балансировку нагрузок.
Требования Amazon — понятные и стандартные для топовых IT-компаний. Нужно уверенно знать алгоритмы и структуры данных, уметь строить архитектуру ПО, демонстрировать свои лучшие личные и профессиональные качества, иметь хороший английский язык. Все. И все-таки требуется достаточно сильная подготовка и определенный опыт разработки.
На набережной Сиэтла
— За 2 года вы выступили на нескольких крупных IT-конференциях. Как пришли к такому увлечению?
Я большая поклонница парадигмы функционального программирования, очень люблю Scala и F#. Стараюсь их популяризировать, в том числе с помощью выступлений на конференциях.
Моей первой крупной конференцией стала довольно известная площадка O’Reilly «OSCON» в Остине, штат Техас. Она посвящена open source технологиям и реальным практикам, как успешно внедрить эти инструменты в рабочий проект. Я выступила с докладом «Интуитивные распределенные алгоритмы с F#». Рассказала о распределенных системах в целом и наборе алгоритмов распределенных систем в частности — включая различные алгоритмы для Snapshot, Gossip, Consensus и другие распределенные алгоритмы, используемые в реальных продуктах. Привела конкретные примеры реализаций распределенных алгоритмов на F#.
Затем я выступила на конференции DotNetFringe в городе Портленд, штат Орегон. Доклад назывался «Эффективное параллельное программирование на F # и Hopac». Он был посвящен параллельному и асинхронному программированию в решении реальных проблем эффективной обработки постоянно растущих данных и необходимости в более низких задержках. Дала представление о фреймворке Hopac — это библиотека F#, которая позволяет легко писать правильные, модульные и эффективные параллельные, асинхронные, реактивные программы. Показала, в каких случаях Hopac быстрее и полезнее существующих решений F# для параллельных и асинхронных вычислений.
Помимо этого, в 2017 году меня пригласили на подкаст «Women In Tech Show». В прямом эфире мы говорили о распределенных системных инструментах, моделировании данных и основных компонентах распределенных систем.
Затем было и телеинтервью — в студии телеканала Channel 9 компании Microsoft в Сиэтле. Я поделилась своей историей и рассказала молодым людям, как добиться профессионального успеха.
— Что вас мотивирует расти как специалист?
Моя мотивация сформировалась еще в раннем детстве. Я наблюдала, как и с каким удовольствием занимается моя старшая сестра, как она обсуждает какие-то аспекты программирования. Видела, как это увлекательно. Так и возникло желание заниматься IT.
Мне кажется, начинающие программисты обязательно должны быть интегрированы в соответствующую профессиональную среду — например, курсы при школе, специализированные классы, различные IT-сообщества и т. д. Это помогает найти единомышленников, технических менторов, организовать жизнь именно вокруг этой деятельности и этих людей. Тогда и появится соответствующий интерес и мотивация.
Но хоть мотивация и прививает любовь к будущей профессии, она не гарантирует успех.
— А что нужно для успеха?
Помимо способностей, нужны старание, труд, настойчивость в получении технических знаний и опыта. Это и определяет фактор успеха.
Думаю, что любой, кто захочет повторить мой путь, столкнется с главной преградой. Вся стандартная система работает против ваших успехов и достижений. Она ориентируется на определенный средний уровень. Следуя заданным алгоритмам поведения, обучения, карьеры, вы становитесь усредненным элементом этой системы. За пределами этой системы ваши характеристики могут оказаться неконкурентоспособными.
Чтобы быть успешным, недостаточно просто быть немного лучше других из вашего окружения. Вы должны быть лучше других на карте мировой конкуренции. На этом пути вас ждут трудности в любой момент и на каждом этапе: в школе, в вузе, при поиске первой работы, при карьерном продвижении.
Чтобы добиться по-настоящему ярких успехов, вы должны отвергнуть принятые стандарты и создать свои — более качественные и амбициозные. Максимум труда вкладывать в свое профессиональное развитие. Чтобы на выходе вы стали лучше выпускника престижного университета, чтобы при трудоустройстве на работу вы были успешнее конкурентов, чтобы ваш алгоритм, код или спроектированная архитектура вызывали уважение в IT-сообществе.
Во время выступления на конференции OSCON
— В каком направлении планируете развиваться дальше?
Мне ближе развитие в техническом направлении, поэтому в ближайшее время не собираюсь отказываться от своих приоритетов: Distributed Systems, Distributed Algorithms, Big Data, Data Science, Functional Programming, Cloud Computing.
Мой опыт в этих областях уже позволяет формировать видение, как будет развиваться рынок этих технологий в будущем. Буду стараться оказаться на переднем фланге разработки новых подходов и инструментов.
В 2019 году планирую издать книгу для заказчиков, архитекторов и разработчиков по распределенным системам.
— Вы довольны своими результатами?
Я оцениваю свои сегодняшние успехи как неплохой старт для продолжения. Думаю, я еще нахожусь в самом начале своего профессионального пути. Стараюсь постоянно переосмысливать свои профессиональные позиции с учетом требований времени, определяю новые ориентиры. Считаю, что никогда нельзя останавливаться на достигнутом. Необходимо постоянно двигаться вперед не к должностям, а к новым профессиональным достижениям. Я обожаю свою профессию и получаю огромное удовольствие от своей работы.
— Интересно узнать про вашу сестру. Где сейчас Елена и чем занимается?
Елена работает в компании Microsoft, тоже в Сиэтле. Она занимается развитием платформы Microsoft Azure: перспективным планированием, разработкой и внедрением новых сервисов и технологий. Часто выступает на конференциях. Думаю, что в будущем вы еще услышите о ней много интересного :)