Як Junior дорости до Architect та секрет 95% мобільної безпеки. Інтерв'ю з розробником Олексієм Максименком (GeeksForLess Inc)

7 порад щодо успішної самопрезентації, 4 поради щодо успішного зростання у професії, 3 найкращі книги та 3 крутих ком'юніті. Продуктивно поспілкувались з iOS/Android розробником рівня Architect Олексієм Максименком, який на онлайн-саміті Make it in Ukraine 2020 буде ділитись корисним практичним досвідом. Олексій працює в компанії GeeksForLess Inc, яка за версією DOU стабільно входить до Топ-50 IT-компаній.

Як усе починалось, як вдалось вирости до Lead і Architect

Я розпочинав тоді, коли тільки починався ринок мобільних застосунків для систем iOs та Android. Було ще мало рішень, замовники хотіли власний продукт. Усе що було потрібно — швидко навчатись, швидко знаходити розв'язання та швидко робити, дотримуватись стандартів, адаптуватись до ринку. І при цьому — не вигоріти.

Ще мені подобалось не тільки самому робити, а й ділитись з іншими, структурувати та систематизувати свій досвід, навчати інших. Мені це завжди було цікаво — отримати знання та досвід, а потім сформувати з них чітку структуру та систему. На таку комбінацію навичок є попит. Адже не усім підходить створювати команди та навчати. Іноді люди можуть просто писати код, але навчати не можуть або не люблять. У мене збіглися обидва напрямки, тож я отримав пропозицію — став Lead, а потім — Architect.

Як здобути глибокі знання? Вчиться у найкращих

Навколо багато людей з цінним багажем знань. Є Ліди (Lead), які бажають ділитись знаннями: або пишуть дослідження та статті, або стають менторами. Треба звертати увагу на тих, хто реалізував успішні проєкти, та тих, хто гарно викладає методологію. Звісно у мене були ментори в компаніях, де я працював. Зараз знаходжу лідерів думок, вивчаю їх підходи. Намагаюсь застосувати їх до конкретної задачі або адаптувати та модифікувати.

Ідеально — знайти собі ментора, який вас навчатиме та наставлятиме. Якщо не вдається — знайдіть команду, з якою будете працювати, розв'язувати завдання та зростати. Якщо не вдається і це — знайдіть «віртуальну» команду — екосистему або ком'юніті.

Ось 3 екосистеми для навчання та розвитку розробників, які мені найбільше подобаються:

3 книги, які раджу прочитати розробникам:

  1. Clean Code: A Handbook of Agile Software Craftsmanship. Robert C. Martin 
  2. Code Complete: A Practical Handbook of Software Construction, Second Edition. Steve McConnell
  3. Застосування UML 2.0 і шаблонів проєктування. Крег Ларман
Як Junior дорости до Architect та секрет 95% мобільної безпеки. Інтерв'ю з розробником Олексієм Максименком (GeeksForLess Inc)

Порада для Junior та Middle

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

Звісно, це стосується більш-менш стандартизованих типових задач. Якщо тема складна (наприклад, низькорівнева робота з аудіо та відео, тоді потрібні спеціалізовані джерела та допомога фахівців.

Як ефективно вивчити англійську

Звісно, краще вчити англійську, коли вже зрозумілий напрямок роботи. Адже важко на 100% ефективно вивчити мову, не знаючи, у якій сфері доведеться працювати.

До того ж безумовно ефективним є вивчення мови в середовищі носіїв або у професійній спільноті на роботі.

Щоб швидко вивчити необхідний мінімум запасу слів, можна взяти одну з популярних методик: метод 25 кадру, метод Лозанова або будь-який, що вам підійде. А вже далі вдосконалювати.

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

Запам'ятайте: головне не те, чи розмовляєте ви без помилок, а те, наскільки професійно ви виконуєте свою роботу. Навіть на рівні Senior вам пробачать неідеальну англійську, якщо ви добре розв'язуєте задачі.

Що найскладніше трапляється в розробці

Бувають складні проєкти, буває нестача експертизи в певних спеціалістів (наприклад, згадана раніше низькорівнева обробка аудіо та відео). Але найскладніше, як на мене, це Full Stack розробка. Для кожної з платформ треба знати технології на досить високому рівні, швидко орієнтуватись, підбирати правильне рішення під кожну з задач. Це складно.

Чи вдається дотримуватись Work/Life Balance

Це дуже важко. Завжди доводиться щось приносити в жертву. В IT навантаження часто йде хвилями. Прийшла хвиля, усі мобілізувались, включились в роботу, і все — жодного Work/Life Balance. Хвиля закінчилась — змінюємо орієнтири в інших бік: родина, хобі. І так — до наступної хвилі.

Але можна і до хвиль підходити раціонально.

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

2. Коли втрачається здатність обирати правильні рішення, треба перемикатися. Мені непогано допомагає йога, медитації, біг, тріатлон. Головне, щоб вони не уводили дуже далеко від задач та діяльності. Оскільки можна захопитись.

Про проєкти, що найбільш запам'ятались

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

Про культурні відмінності

Взагалі, за моїм досвідом роботи з кроскультурними командами, якихось критичних відмінностей, які заважають роботі, немає. Є певні шаблони, але поведінка залежить більше від темпераменту, від конкретної людини, незалежно до приналежності до якоїсь національності чи культури. Є, наприклад, стереотип щодо індусів. Звісно є такі, які недбало ставляться до роботи (такі люди бувають у кожній національності). Але мені довелось працювати з індусами, які дуже професійно виконували свою роботу і дуже добре розмовляли англійською (а не так, як усі звикли думати). У них є чому повчитись.

Що українським IT-компаніям та фахівцям не завадить покращити

Завжди є, що покращити. Часто не вистачає відкритості до замовника, орієнтування на цінність, достатнього рівня співробітництва в команді.

Як себе позиціювати, щоб потрапити на роботу в міжнародну компанію

1. Компанії люблять успішні кейси в портфоліо, роботу над відомими й амбітними проєктами, роботу з професійними та відомими командами. Тож краще напрацювати таке портфоліо.

2. Переконливо покажіть набір своїх технічних навичок та soft skills.

3. Доведіть, що можете розмовляти англійською (див.вище).

4. Покажіть мотивацію. Компанії хочуть працювати з тими, хто хоче працювати з ними.

5. Добре підготуйтесь до інтерв'ю (технічно і морально). Методики ті ж самі, що й для роботи з публічними виступами. Приберіть страх та скутість, увімкніть у собі зацікавленість. Для цього зараз є дуже багато психоемоційних технік.

Наприклад, зараз дуже трендова техніка, яку опрацьовують великі університети й відомі компанії, — це Mindfullness.

6. Частіше ходіть на інтерв'ю. Якщо 50 разів відмовлять, то надалі у вас не буде страху перед відмовою.

7. Навіть, якщо 2020 рік видався стресовим, зрештою цей досвід роботи в стресових умовах все одно буде корисним і задасть правильний вектор розвитку.

4 поради щодо успішного шляху від Junior до Senior та вище

1. Найважливіше у зростанні — це відповідальність. Чим більше ви можете взяти відповідальності за певні проєкти, та чим більше буде таких проєктів з різними технологіями, тим краще для розвитку та прокачування рівня. Особливо, якщо ви заходите до складної ніші, де мало хто готовий брати відповідальність, то маєте більше шансів на швидше  зростання.

2. Активно шукайте можливості для розвитку, не сидіть без розвитку.

3. Балансуйте розвиток Hard Skills та Soft Skills. Важливо не лише добре знати технічну частину, а й розвивати здатність будувати комунікації з керівництвом та командою. У кожної людини є свої особливості. Тому позиція «Сприймайте мене таким, як я є» заважає розвитку. Коли я пройшов курс з коучингу, то зрозумів: у будь-яких відносинах, особливо професійних, раппорт (довірчі відносини, контакт та взаєморозуміння в широкому сенсі) — це надзвичайно важливо. Ви можете знати хоч 10 найкрутіших технологій, але якщо не «спіймали» раппорт — ефективної взаємодії не буде.

4. Щодо самопросування потрібно пам'ятати головне — розумійте оточення. Активність і натиск — це не завжди добре. Якщо керівництво та команда не помічають вашої активності, це ознчає, що немає раппорту. Можна змінити оточення або шукати ключ до поточного оточення, команди, керівництва, стати «своїм» (мова про належність та спільність інтересів та відчуття «свій — чужий»). Іноді навіть люди, які не проявлять ініціативи, але виконують свою роль дуже добре, також можуть просуватись кар'єрою. Але їх треба підштовхнути до цього.

Правильний підхід зрештою залежить від конкретної ситуації в конкретній компанії, від активності чи пасивності самого керівництва, від цінностей компанії. Треба розуміти: директивне керівництво або навпаки, створює середовище для розвитку та ініціативи. Майстерність якраз в тому, щоб зрозуміти, як себе поводити в певному оточенні та що треба, щоб бути «своїм» і поділяти цінності та погляди цього оточення.

Короткий тизер теми виступу на онлайн-саміті: Як розробнику швидко закрити 95% усіх питань з безпеки особистих даних

На саміті я докладно розповім про досить показовий кейс з Mobile Security. Якщо коротко, ідея така. Якщо починаєте проєкт, обов'язково якомога раніше проаналізуйте головні ризики цього проєкту. Тренди — це добре, хороша архітектура — це добре, але безпека даних — це дуже важливо. Якщо проєкт працює з особистими даними (дані кредитних карт, особисте листування, особисті фотографії), то ці дані треба професійно закрити та захистити. Користувач повинен розуміти, що його інформацію не буде втрачено.

І навпаки, не треба застосовувати усі відомі вам технології безпеки, якщо проєкт цього не потребує. Підходити до безпеки треба адекватно.

Взагалі, якщо знати, що з позиції безпеки пропонує платформа (наприклад, Google), як його застосувати, що зробити з тим, що не покриває платформа, то 95% питань безпеки буде закрито. Ті 5%, що залишаться, — це вже полірування.

Отже, не забудьте забронювати місце на заході, щоб почути виступ Олексія Максименка та багатьох інших цікавих спікерів. І, найголовніше, поспілкуватись з ними!
Докладна інформація щодо програми та переліку спікерів — на сайті онлайн-саміту. Реєструйтесь, щоб не забути завітати та добре провести час.


Поділитись у соцмережах

Автор
Денис Якушенко
Про автора
Редактор Make it in UA
Thanks for signing up
Oops! Something went wrong while submitting the form.

What else would you like to know?

Rated 4,6
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Do you have enough information to go ahead?
Powered by Verifalia email verification