Наталя Денисенко — як в 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 із застосуванням вбудованих функцій аналітики даних AS. Виявилося, що суб'єктивного іспиту немає — був просто тест, спрощений варіант сертифікації Oracle SQL Expert. Я успішно пройшла і отримала в заліковку вищу оцінку. Це був самий вимогливий, професійний і справедливий іспит за весь час навчання. Цим викладачем був Володимир Короткевич — батько найтитулованішого спортивного програміста в світі Геннадія Короткевича. Було приємно заслужити високу оцінку саме від нього.

Незважаючи на деякі складності, я закінчила університет з відзнакою. Дуже вдячна за підтримку і допомогу нашому ректору С. А. Хахомову.

— А де працювали під час навчання? Якою була ваша перша працював за фахом?

Я почала працювати ще з 10 років. Виконувала частину замовлень разом з моєю старшою сестрою. Як правило, я відповідала за створення баз даних і роботу з ними. З 12 років уже мені довіряли досить складні завдання — наприклад, проектування та розроблення SOA сервісів.

З-за віку мені було дуже важко перший раз влаштуватися на офіційну роботу. У мене були професійні компетенції з Java, Scala, C# F#, я легко проходила будь співбесіди. Але головною проблемою стало переконати роботодавців у серйозності намірів, своєї відповідальності, що на мене можна розраховувати і не чекати сюрпризів. У реальності, коли роботодавці бачать перед собою дитину, то їм об'єктивно складно сприймати його як професійного фахівця. Крім цього, є законодавча відповідальність і обмеження при роботі з неповнолітнім, тому роботодавці не бажали з цим зв'язуватися.

У підсумку в 14 років я все-таки отримала свою першу офіційну роботу Software Engineer в невеликій компанії, де займалася розробкою е-Commerce сервісів.

— Як далі розвивалася ваша кар'єра? Які ще труднощі виникали через юного віку?

У 16 років я захотіла працювати у великій міжнародній компанії. У багатьох мені відмовляли і навіть не допускали до технічного інтерв'ю. Зазвичай після попередньої співбесіди мене запитували про вік і припиняли розмова. Кілька разів я чула від рекрутерів одну і ту ж фразу, дослівно: «Світ не готовий до 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-співтовариства і т. д. Це допомагає знайти однодумців, технічних менторів, організувати життя саме навколо цієї діяльності і цих людей. Тоді і з'явиться відповідний інтерес і мотивація.

Але хоч мотивація і прищеплює любов до майбутньої професії, вона не гарантує успіх.

— А що потрібно для успіху?

Крім здібностей, потрібні старання, праця, наполегливість в отриманні технічних знань і досвіду. Це і визначає фактор успіху.

Думаю, що кожен, хто захоче повторити мій шлях, зіткнеться з головною перепоною. Вся стандартна система працює проти ваших успіхів та досягнень. Вона орієнтується на певний середній рівень. Слідуючи заданими алгоритмами поведінки, навчання, кар'єри, ви стаєте усередненим елементом цієї системи. За межами цієї системи ваші характеристики можуть виявитися неконкурентоспроможними.

Щоб бути успішним, недостатньо просто бути трохи краще за інших з вашого оточення. Ви повинні бути краще за інших на карті світової конкуренції. На цьому шляху вас чекають труднощі у будь-який момент і на кожному етапі: у школі, у вузі, при пошуку першої роботи, при кар'єрному просуванні.

Щоб домогтися по-справжньому яскравих успіхів, ви повинні відкинути прийняті стандарти і створити свої — більш якісні і амбітні. Максимум праці вкладати в свій професійний розвиток. Щоб на виході ви стали краще випускника найпрестижнішого університету, щоб при працевлаштуванні на роботу ви були успішнішими конкурентів, щоб ваш алгоритм, код, або спроектована архітектура викликали повагу в ІТ-співтоваристві.

Під час виступу на конференції OSCON

— В якому напрямку плануєте розвиватися далі?

Мені ближче розвиток в технічному напрямку, тому найближчим часом не збираюся відмовлятися від своїх пріоритетів: Distributed Systems, Distributed Algorithms, Big Data, Data Science, Functional Programming, Cloud Computing.

Мій досвід у цих областях вже дозволяє формувати бачення, як буде розвиватися ринок цих технологій у майбутньому. Буду намагатися опинитися на передньому фланзі розробки нових підходів і інструментів.

У 2019 році планую видати книгу для замовників, архітекторів і розробників з розподіленим системам.

— Ви задоволені своїми результатами?

Я оцінюю свої сьогоднішні успіхи як непоганий старт для продовження. Думаю, я ще перебуваю в самому початку свого професійного шляху. Намагаюся постійно переосмислювати свої професійні позиції з урахуванням вимог часу, визначаю нові орієнтири. Вважаю, що ніколи не можна зупинятися на досягнутому. Необхідно постійно рухатися вперед не до посад, а до нових професійних здобутків. Я обожнюю свою професію і отримую величезне задоволення від своєї роботи.

— Цікаво дізнатися про вашу сестру. Де зараз Олена і чим займається?

Олена працює в компанії Microsoft, теж в Сіетлі. Вона займається розвитком платформи Microsoft Azure: перспективним плануванням, розробкою та впровадженням нових сервісів і технологій. Часто виступає на конференціях. Думаю, що в майбутньому ви ще почуєте про неї багато цікавого :)

Опубліковано: 21/01/19 @ 11:00
Розділ Різне

Рекомендуємо:

Technical Writing дайджест #1: підбірка технічних словників, розглядаємо вміння та навички техрайтерів
Java дайджест #41: підсумки 2018-го і прогнози на 2019-й
Як я здав iSAQB CPSA Foundation Level Exam і навіщо він потрібен розробнику
PI Planning — планування для великих команд: як його провести і що виходить на практиці
DOU Labs: як в KeepSolid створили додаток для електронного підпису документів