О программе
У Google есть программа для экспертов в их технологиях. Чтобы попасть в неё, нужно выступать, писать, обучать, менторить или делать open‑source в технологиях Google. Программа называется «Google Developer Experts», и это самое привилегированное сообщество разработчиков, о котором я знаю.
Плюшки:
Ранний доступ к продуктам и экспериментальным версиям.
Приглашения на мероприятия Google.
Возможности выступать и знакомиться.
Официальное упоминание в Списке экспертов на сайте Google. Это увеличивает приглашения и упрощает собеседования.
![](https://habrastorage.org/getpro/habr/upload_files/426/9e0/4aa/4269e04aa152198cf315ff84ecf80fa2.png)
Мой брат уже несколько лет в этой программе как эксперт по Angular. Говорит, что ему это сильно помогает.
Мой путь во Flutter
В декабре 2020 я работал над стартапом, и мне нужен был самый дешёвый фронт, чтобы собрать приложения и веб из одного кода — потому что я был единственным разработчиком.
Самый большой опыт на фронте у меня был в jQuery. Моё последнее мобильное приложение — Тетрис на JavaME в 2006.
![Я делал мобильные приложения до того, как это стало модно. Я делал мобильные приложения до того, как это стало модно.](https://habrastorage.org/getpro/habr/upload_files/d27/da1/9d2/d27da19d24caefdf4ad554c277859b4b.png)
Это явно не «из одного кода», нужно было изучать что‑то новое. Я вспомнил, что мой друг говорил про Flutter как про следующую большую вещь (тогда ещё Flutter не обошёл конкурентов).
Я начал его изучать, и он захватил меня сразу. За несколько месяцев я сделал 60% своего MVP, но пришлось брать подработки, потому что тратить накопления был дико некомфортно.
Тот самый друг нанял меня, чтобы уложиться в срок по своему заказу на мобильное приложение, и вскоре я стал техлидом, через полгода в новой технологии.
Мы закончили проект в феврале 2022, и на последней неделе заказчику заблокировали юрлицо в Великобритании. Он россиянин, и этого оказалось достаточно.
Тогда же я переехал в Грузию и стал искать работу. У меня было 14 месяцев опыта, из которых 9 под NDA, и ни одного опубликованного приложения.
В местном чате программистов одна компания агрессивно пушила вакансию, и я откликнулся, просто для галочки. Но за скучным постом оказалось примерно такое сокровище:
Привет. Нам надо сделать фронт для Apache Beam. Всё open‑source. Каждый PR ревьювят инженеры Google, потому что много контрибьютеров Apache Beam это сотрудники Google. Всё это остаётся на GitHub навсегда, и ты сможешь легко доказать свою работу кому угодно потом. Если что‑то не нравится во Flutter, они могут команде Flutter напрямую это передать. Хочешь?
![Midjourney: “apache beam”. Midjourney: “apache beam”.](https://habrastorage.org/getpro/habr/upload_files/b01/adb/774/b01adb77448e1e5559f0bc885c0b3e0a.png)
Я искал работу на полставки, чтобы доделать стартап, поэтому сомневался. Но друзья сказали, что я буду оленем, если откажусь. Я согласился. Позиция была Senior, но меня взяли мидлом, потому что я не учил буквы в «SOLID».
![Midjourney: “not solid”. Midjourney: “not solid”.](https://habrastorage.org/getpro/habr/upload_files/037/548/b2e/037548b2e9f9863cc717f4bcea8ea280.png)
Всё‑таки после 17 лет на бэке и с опытом архитектуры я быстро стал Senior и вскоре вёл фронты для трёх проектов.
Через год мы сдали две обёртки для Apache Beam (Playground и Tour of Beam), и меня сократили.
Прекрасный повод для чего‑то нового: пора податься в GDE.
Мой open-source
С самого начала работы с Flutter я вытаскивал повторяемый код в свои пакеты. Летом 2023 у меня было 18 пакетов Dart. Самые заметные:
app_state: пакет навигации.
keyed_collection_widgets: замена стандартных табов, которая использует enum вместо индексов.
enum_map: map с гарантией на этапе компиляции, что в ней будут значения для всех ключей‑констант enum.
Ещё я был архиректором и главным разработчиком flutter_code_editor, который мы использовали в приложениях для Apache Beam. Наш менеджер великолепно договорился, что пакет с редактором кода остаётся у компании и не передаётся в Apache Software Foundation. Это увеличило заметность моей роли.
По мелочи я что‑то делал в code_text_field, web3dart, easy_localization_loader, visibility_detector и ещё нескольких пакетах, но подумал, что это слишком мелко, и не стал упоминать в своей заявке.
Мои статьи
Я начал вести блог в 2021. Ненавижу повторяться, поэтому во время ревью кода я часто не объяснял ошибку или анти‑паттерн, а писал статью и прикреплял ссылку. Так я получил первых 90 подписчиков на Medium.
Потом я написал статью‑хит и получил ещё 200.
Недавно я узнал, что Flutter Community на Medium возобновили приём статей от новых авторов. Я отправил им 4 статьи, но их тихо отклонили.
![“Flutter Community silently rejects articles”. “Flutter Community silently rejects articles”.](https://habrastorage.org/getpro/habr/upload_files/94d/e01/5df/94de015df9b8908ff42d6e2a39e20b31.png)
Моя заявка
Я всегда боюсь отказов, поэтому хотел узнать требования заранее: сколько надо подписчиков, просмотров и т. п. Но никто не говорил.
Мой брат попал в GDE по приглашению. У него было около тысячи подписчиков в Twitter, когда ему написали и позвали. И у меня тоже это число закрепилось.
С тех пор процесс поменяли: мне нужно найти сотрудника Google или существующего GDE, который выступит рекомендателем, если считает меня подходящим. Я спросил у парня из Google, с которым работали на проекте Beam, но он ничего не знал про программу, кроме официального описания. Я думал, что у всех сотрудников Google тренинги, как в «Назад в будущее», но нет:
![Таких тренингов в Google нет. Таких тренингов в Google нет.](https://habrastorage.org/getpro/habr/upload_files/dd9/d5f/a2e/dd9d5fa2eecb65b2a5d69307b13a944e.png)
Для программы нужно описать достижения за последний год. Работы у меня больше не было, и в Apache я уже не контрибьютил, поэтому моя анкета скоро протухла бы. Я решил не ждать, и мой бывший ревьювер из Google рекомендовал меня в программу.
Мои статистики на тот момент:
4 больших open-source проекта:
Фронт Apache Beam Playground: несколько тысяч пользователей.
Фронт Tour of Beam: несколько тысяч пользователей.
flutter_code_editor: 89% popularity.
app_state: 84% popularity.
316 подписчиков на Medium, 70 тысяч просмотров, включая:
Never have separate sign-in routes: 22,000 просмотров.
Avoiding late variables in Dart: 11,200 просмотров.
How to force newline at end of files and why do it: 8,300 просмотров.
Какие-то выступления.
Если вы не уверены, подходят ли ваши статистики, спросите существующего GDE.
Если ваши статистики ухудшаются в скользящем окне последнего года, я советую не ждать. Иначе можно упустить возможность, которая потом долго не повторится.
Воронка
В воронке несколько этапов:
Проверка анкеты: Команда Google проверяет, подходите ли вы по анкете.
Community interview: Существующий GDE беседует с вами, чтобы узнать. Здесь оценивают, что вы сделали для сообщества. И немного технических вопросов.
Product interview. Сотрудник Google из вашей технологии собеседует вас. Тут мы углублялись в технологии, и было приятно.
Я прошёл всё с первой попытки. К сожалению, больше рассказать не могу. :)
Всё заняло 17 дней от анкеты до финального письма, которое выкладывает каждый новый GDE:
![](https://habrastorage.org/getpro/habr/upload_files/06e/6e2/0d4/06e6e20d4f6fb8473276b468ac12b374.png)
Через некоторое время пришли все доступы, значки и т.п.
Что дальше
Я теперь буду писать много про Flutter и программу, поэтому:
Подпишитесь на мой канал в Telegram, теперь он -- первоисточник моих новостей:
![Мои тексты по Dart и Flutter, по разработке вообще, анонсы продуктов, вакансии и мысли о жизни. Мои тексты по Dart и Flutter, по разработке вообще, анонсы продуктов, вакансии и мысли о жизни.](https://habrastorage.org/getpro/habr/upload_files/68a/df9/d92/68adf9d925ed8d1435bd9c1c4bdfa6d5.png)
Русские переводы реже и с задержкой -- в русском канале.
Подпишитесь на программу GDE на Medium, LinkedIn и в Twitter.
Получите значок подписчика эксперта на платформе “Google for Developers”.