Я в программировании уже 20 лет, и мне хочется поделиться своей историей. В ней будет чуть-чуть везения, много работы и парочка факапов. На самом деле, в моей жизни было много всяких фейлов, но я никогда не акцентировал на них внимание. Наступая на грабли, я думал, что просто набираюсь опыта.

Прошу пропустить эту статью тех, кого мотивирует показуха успешного успеха и бесят жизненные истории о развитии и упорном труде. Мне просто нечего вам рассказать. Тех же, кому нужна небольшая порция вдохновения для работы, приглашаю читать дальше.

 

Как появился интерес к ИТ

Интерес к программированию у меня появился в 7-м классе, когда началась информатика. Помню, учитель разрешал мне и еще двум товарищам оставаться после уроков, чтобы поиграть или попрограммировать на BASIC. За это мы раз в месяц мыли пол в классе. Ниже обложка книжки, по которой я учился программировать на BASIC.

Как я вырос из Java-разработчика в директора направления мобильной разработки

Когда я был в 8-м классе, в моем небольшом городке открылся центр иностранных языков. Я начал там заниматься английским, но через два месяца родители сказали, что мы не можем себе этого позволить. После распада Советского Союза у моей семьи, как, наверное, у всех, было плохо с деньгами. Я огорчился и перестал ходить. Через неделю одноклассник, с которым мы вместе занимались в центре, передал, что со мной хочет поговорить учитель английского, и уговорил пойти на урок. После занятия педагог сказал: «Я поговорил с директором. Ты можешь платить столько, сколько комфортно твоей семье».

Это было приятное событие. Не то, чтобы я кайфовал от английского, но мне нравилось, что я могу на нем общаться. Я долго думал, почему учитель так сделал — я же его не просил. Наверное, он увидел мои горящие глаза и решил помочь. В итоге я платил намного меньше, а потом дела у семьи наладились. На втором году обучения уроки по английскому проводили преподаватели из США. Мы занимались по полтора часа 5 дней в неделю.

После 9-го класса я перешел в лицей, где информатику вел американец на английском языке. Мы сидели за Windows 98 и проходили Word, Excel и другие программы, что было невероятно круто: в 1998 году было не так много мест, где преподавали последние версии офисных приложений.

Но мне хотелось узнать больше, и я три месяца занимался в ИТ-центре, который открыл наш учитель информатики. Там мы изучали, как устанавливать и переустанавливать Windows, работать в офисных программах и с интернетом. Кроме того, именно в центре я получил важный навык — научился печатать вслепую на английской и русской раскладках. Считаю, что каждый должен уметь печатать вслепую — это экономит огромное количество времени.

 

Международные сертификаты и проект из США

После 11-го класса учитель информатики пригласил меня на стажировку в свой ИТ-центр. Она длилась полтора года. Три месяца мы изучали, из чего состоит компьютер и как он работает. Когда техническая практика закончилась, я получил первый международный сертификат A+ Certified Technician от компании CompTIA. Затем в течение года мы осваивали программирование на Java, а после сдавали экзамен на сертификат Sun Certified Java Programmer (SCJP 2). Так я стал Java-разработчиком.

Как я вырос из Java-разработчика в директора направления мобильной разработки

После стажировки я остался работать в центре. Вел курсы: взрослых учил работать в программах Microsoft Office, а у школьников и студентов преподавал основы программирования. Также разработчики центра писали программы на заказ.

Запомнилось веб-приложение, которое мы делали для клиента из Штатов. Его компания получала большие партии болтов, шурупов, масок и других изделий от крупных производителей, расфасовывала в пакеты и коробки поштучно и отправляла в магазины или обратно поставщику. Веб-приложение должно было помогать менеджерам следить за входящими и исходящими деталями, контролировать расход упаковочных материалов и выставлять счета клиентам.

Первая версия платформы получилась не очень: вылезало много багов банально потому, что не было веб-разработчика уровня сеньор, который бы следил за процессом, а мне не хватало опыта сразу сделать хорошо. Помню неприятные созвоны, на которых спрашивали, почему приложение работает не так, как должно. Я злился — считал, что это вообще не моя ошибка. Сейчас понимаю, что баги появлялись из-за моей неопытности. Проект мы доделали и сдали, хотя и сильно затянули сроки. Мне даже заплатили бонус — $ 500. В 2003 году для 19-летнего меня это были огромные деньги!

Потом мы разработали вторую версию веб-приложения. Я знаю, что с точки зрения архитектуры она написана некрасиво, тем не менее более 10 лет платформа приносила деньги. Приложение помогло нашему клиенту заключить выгодные контракты с такими поставщиками, как 3M и Polaris. Считаю, что это достижение.

Как я вырос из Java-разработчика в директора направления мобильной разработки

В 2003 году на Java я написал клавиатурный тренажер Alfa Typing. Раньше на нем можно было изучать русскую и английскую раскладки. До 2017 года сайт поддерживал бывший коллега

В то время Java был популярен в Соединенных Штатах, и наш основатель продвигал его в компании, поэтому я изучал Java на стажировке. Но до России тренд дошел только через 3–4 года. Представьте, какой был буфер для развития! С другой стороны, это создавало проблемы. Центр никому такие знания не мог продать. В итоге нам пришлось переключаться на другие языки: JavaScript, PHP, HTML, MacroMedia Flash.

Из ИТ-центра я уволился через четыре года: директор вернулся в Америку и компания стала потихоньку загибаться. Следующие четыре года я учился на гуманитарной специальности, чтобы получить диплом, и фрилансил. Первые заказы искал на биржах фриланса и форумах woweb.com и htmlbook.ru.

 

3D-печать и программная инженерия

В 2014 году я переехал в Казань, потому что она ближе всего к Иннополису, городу для ИТ-специалистов, в котором я мечтал побывать. Там действительно круто. Переезд прошел быстро и легко. Я ничем не рисковал, потому что уже удаленно работал разработчиком в крупном интернет-магазине.

Как я вырос из Java-разработчика в директора направления мобильной разработки

Следующим местом работы стал стартап, куда меня пригласили ведущим разработчиком. Он объединяет владельцев 3D-принтеров с людьми, которые хотят что-то распечатать. Человек на сайте загружает модель, находит ближайший принтер, размещает заказ и через неделю получает по почте результат.

Вместе с командой мы делали сайт, настраивали интеграции с системами оплаты, подключали PayPal, писали скрипты для обработки 3D-моделей. На JavaScript написали алгоритм, который считает объем поверхности 3D-модели и на основе этого вычисляет количество необходимого материала и стоимость готового изделия.

К тому времени у меня накопился багаж знаний, который хотелось разложить по полочкам в голове. Для этого я пошел в магистратуру и два года отучился по специальности «Программная инженерия», где готовят и архитекторов, и руководителей проектов.

Как я вырос из Java-разработчика в директора направления мобильной разработки

На защите магистерской диссертации на тему «Кластерная потоковая обработка данных для Интернета Вещей»

 

Мобильное приложение из Нью-Йорка

Из стартапа я ушел через четыре года. Он остался в надежных руках — там собрались классные специалисты. Мне хотелось расти дальше, и я занялся проектом от логистической компании в Нью-Йорке, которая доставляет покупателям онлайн-заказы из аптек. У заказчика уже был веб-сайт, с помощью которого менеджеры контролировали передвижения водителей и доставку медикаментов. Но он жутко глючил и тормозил, поэтому клиент решил с нуля писать мобильное приложение и пригласил меня и еще одного разработчика. Это было в конце 2018 года.

До этого мобильные приложения я не делал, но с интересом взялся за задачу. Писать решил на React Native, так как у меня был богатый опыт работы с JavaScript и мне легко было включится в разработку. К тому же в магистратуре я научился инженерному подходу. Не надо бояться — нужно брать и делать. Если запустилось — классно. Не запустилось — ищи причину почему.

Как я вырос из Java-разработчика в директора направления мобильной разработки

Приложение для логистической компании в Нью-Йорке

Сначала я работал удаленно, потом меня пригласили в Нью-Йорк, и я полетел туда. В Нью-Йорке дорабатывал приложение и написал десктопное приложение на Electron, которое позволило компании расшириться и подключить к сервису еще несколько аптек. Очень интересный опыт. Я на реальных кейсах проверил, что JavaScript позволяет разрабатывать не только веб-, но и мобильные, и десктопные приложения.

Меня уговаривали переехать в Нью-Йорк, но мне нравится жить в Казани. Здесь комфортно и есть все, что нужно. А Нью-Йорк — классный город, в котором обязательно надо побывать. Хотя не удивляйтесь: там тоже бывают раздолбанные дороги. Помню, как в центре на дороге увидел глубокую яму. Я такой: «Это же Уолл-стрит! Что за фигня?!».

Как я вырос из Java-разработчика в директора направления мобильной разработки

Фотки из Нью-Йорка: слева — на конференции MariaDB, справа — рядом с Собором Святого Патрика

В Нью-Йорке я провел два месяца. Летом 2019 года пришлось лететь туда еще раз на месяц и для того же клиента дорабатывать в приложении модули по эккаунтингу, бухгалтерии, налогам и подсчету зарплаты для водителей.

 

Направление мобильной разработки в ИТ-компании

После возвращения из Нью-Йорка меня пригласили в ИТ-компанию. Двум клиентам требовались мобильные приложения, но в компании не могли реализовать их своими силами и попросили меня управлять разработкой. Я согласился и предложил собрать приложения на React Native, так как у меня был в этом опыт. Идею поддержали. Чтобы оказывать услуги официально, в компании создали направление мобильной разработки и наняли программиста. Под моим руководством он делал первые приложения. Мы успешно сдали оба проекта, и основатели компании предложили мне возглавить направление мобильной разработки. Это было в августе 2019 года.

Как я вырос из Java-разработчика в директора направления мобильной разработки

Одно из первых приложений, сделанных в ИТ-компании — приложение для торговой сети, которое распознает ценники

За год подразделение выросло до 35 человек. У нас есть iOS-, android-, бэкенд-, фулстек-, React Native и flutter-разработчики, тестировщики, дизайнеры, менеджеры проектов и продажники. Мы сделали 35 мобильных приложений — считаю, что это хорошее портфолио. Сейчас у нас идет параллельно 10–12 проектов.

Нельзя сказать, что направление прибыльное, но оно и не убыточные. В какие-то кварталы мы приносим прибыль, в какие-то нет. Для направления, которое появилось чуть больше года назад, это нормальная ситуация. Думаю, к новому году выйдем в стабильный плюс.

Как я вырос из Java-разработчика в директора направления мобильной разработки

На фото только половина направления, так как часть сотрудников работает удаленно

За год руководства у меня было немало факапов. Например, первое время я набирал неподходящих людей. Иногда кандидат так классно рассказывал о себе, что я думал «Какой крутой спец!» и приглашал его на работу. Я тогда еще не понимал, что некоторые просто хорошо умеют продавать себя. Через месяц становилось ясно, что человек вообще не тянет.

В работе с клиентами тоже случались фейлы. Сначала мы сильно промахивались в оценке проектов — иногда в 2–3 раза. Бывало, рассчитывали, что на проект уйдет 100 часов, а по факту он занимал 250–300 часов и приходилось работать за свой счет. Мне было тяжело и больно на это смотреть. Хорошо, что наши учредители — опытные ребята и ожидали периодов, когда мы будем уходить в минус. Сейчас промахиваемся реже, но иногда все равно не очень четко попадаем.

Нам есть, куда развиваться. Недавно начали делать приложения на фреймворке Flutter — у него большие перспективы. Улучшаем процессы управления проектами: например, наняли ещё тестировщиков, чтобы сдавать заказчикам более качественные решения без багов и ошибок. Хотим развивать нативное направление iOS и Android. В общем, работы еще много, но и сделано немало.

Всем, кто дочитал эту статью до конца, мне хочется сказать: не ставьте себе мысленные барьеры, думайте шире. Выбирайте цели, которые кажутся недостижимыми, смело идите к ним и у вас все получится. Если бы три года назад мне сказали, что я буду управлять направлением, в котором более 30 человек, я бы не поверил. Тогда я понятия не имел, как быть руководителем. Но я попробовал и сейчас кайфую, потому что развивать направление — очень увлекательный процесс: получаешь новый опыт, знакомишься с интересными людьми, работаешь над крутыми проектами.

Эта статья получилась объемная, но это еще не все, что я планировал рассказать. В следующий раз постараюсь сформулировать то, что стал понимать о жизни и работе программиста за 20 лет в профессии. Надеюсь, будет интересно и полезно.