Найти в Дзене

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

Оглавление

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

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

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

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

-2

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

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

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

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

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

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

-3

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

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

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

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

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

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

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

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

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

-5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Собственный материал ИТ-компании Neti