Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Як працює Grammarly iOS Team.

Вітаю! Мене звати Славік Володько, я інженер в iOS-команді Grammarly, і я шукаю крутих iOS інженерів в нашу команду.

Супер, а чим ви займаєтесь?

Наша команда працює над Grammarly Keyboard: кастомною клавіатурою, що дозволяє покращувати англомовні тексти у будь-якому додатку на iOS-платформі.

А як ви працюєте? Які бест-практіси юзаєте?

  • У нас у команді немає QA-інженерів. Все, що ти релізиш – одразу йде на продакшн до користувача.
  • Окрім того в нас цілковита відкритість: усі цифри по кожному з продуктів доступні для всіх інженерів, а весь зворотний зв'язок від користувачів стікається в єдине місце, де кожен інженер може його почитати. Таким чином, зв'язок між інженером та користувачем в обидві сторони є максимально коротким.
  • Ми сповідуємо принцип автономності. Наприклад, ми очікуємо, що інженер сам вибудує собі ефективне покриття свого продукту тестами та надійний процес релізів.
  • Вся наша функціональність і навіть рефакторинги не випускаються одразу для всіх користувачів, а проходить фазу A/B тестування.
  • Ми постійно оцінюємо власний код з точки зору оптимізацій. Кастомні клавіатури, як і будь-які інші розширення на iOS, працюють в умовах обмежених ресурсів. У нас є лише 66 Mb RAM, і при споживанні зайвого біту система вбиває процес без попередження. У нас є лише 500ms на запуск та показ першого кадру, і система не соромиться вбивати наш процес на 501-й мілісекунді.
  • Однак, оптимізація тут не найскладніший виклик: найскладнішим є захист наших оптимізацій від змін, котрі ми вносимо при роботі над новою функціональністю. Тому в нас існує як ряд performance-метрик, так і певна кількість performance-тестів та stability-тестів. А щоб тримати UI ідеальним, тобто pixel-perfect polished ми запровадили snapshot-тестування для окремих компонентів.
  • У багатьох компаніях інженери виконують виключно поставлені перед ними задачі. Ми очікуємо, що інженер/ка сам/сама поставить перед собою задачу. Власне, один з найпопулярніших продуктів у Grammarly – Grammarly Browser Extension – у свій час починався з ідеї одного з інженерів. Так само і наша мобільна клавіатура свого часу починалась з ідеї одного із інженерів команди Grammarly Browser Extension. А нещодавно, один з iOS-інженерів теж запропонував новий продукт, не пов'язаний з клавіатурою та навіть з iOS, і сьогодні він вже очолює нову команду і готується до першого релізу.

Звучить круто. А чим займатимусь я, якщо/коли прийду до вас?

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

Супер. А що від мене треба?

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

З технічної точки зору, треба досвід створення додатків на iOS, хороше знання Swift, вміння проєктувати системи та вирішувати алгоритмічні задачі. Також допоможе досвід покриття коду різноманітними видами автотестів. Важливим є критичне мислення та здатність знаходити збалансовані рішення для складних проблем.

Пишіть мені, одразу з CV чи просто так, поспілкуватись. Для того є пошта vyacheslav.volodko@grammarly.com та Телеграм t.me/killobatt. Також я досить регулярно відвідую різноманітні iOS-тусовки в Києві, зокрема CocoaHeads/CocoaFriday, і там теж залюбки знайомлюсь із інженерами.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment