Diool

(Совместно с Toptal, 2020 - 2023) Платежная система для бизнеса, работает в Камеруне

Тенические особенности: Diool - это платежная система для небольших магазинов и точек обслуживания (аптек, прачечных, автомастерских, и т.п.). Во-первых, эта система используется продавцом/кассиром чтобы принимать платежи от покупателей (главным образом платежи с помощью mobile money - это своего рода электронный кошелек, привязанный к номеру мобильного телефона покупателя, широко используется в Африке вместо банковских карт). Во-вторых, владельцы и администраторы бизнеса могут использовать свой "счет" в Diool для расчетов с поставщиками и контрагентами.

Android-приложение Diool поддерживает:

  • Различные виды транзакций для физлиц (функционал кассира): обычные покупки, "пополнение" mobile money кошельков, обслуживание "платежей по квитанции"
  • Управление бизнес-аккаунтом пользователя, пополнение/вывод средств, история транзакций
  • Управление настройками организации: конфигурация точек продаж и сотрудников (кассиров и др.)
  • "Список контактов" для отправки платежей контрагентам
  • Выставление счетов контрагентам
  • Для некоторых видов операций предусмотрена процедура подтверждения операции владельцем или уполномоченным администратором
  • Все функции приложения настраиваются в зависимости от тарифного плана и типа пользователя

Персональный вклад: Полностью занимался всей Android-частью проекта, от анализа требований до публикации в Google Play. Изначально принял существующий проект с кодом, в процессе работы переписал приложение почти полностью, реализовал множество фич. Вместе с командой (backend-разработчики, Web-разработчики, QA, дизайнер, продакт-менеджеры) мы выпустили десятки релизов.

 

Billfold

Point-of-sale система для обслуживания массовых мероприятий. 2018-2020

Технические особенности: Представим себе массовое мероприятие (концерт, фестиваль, и т.п.). Внутри на мероприятии есть несколько точек продаж (бары, кафе, сувенирная продукция). На входе на мероприятие посетитель получает электронный браслет, с помощью которого, среди прочего, можно оплачивать покупки внутри мероприятия. Billfold занимается технологическим обеспечением этих точек продаж. Система состоит из нескольких Android-приложений и серверной части, также ряд клиентских функций доступен через web-сайт.

Android-часть представляет из себя набор установленных на мероприятии стендов, в основе каждого стенда - Android-планшет с предустановленными приложениями Billfold. Виды стендов:

  • Регистрация посетителей и активация браслетов
  • "Касса" на точке продажи типа takeaway. Сдвоенный стенд: один планшет на стороне покупателя, другой на стороне продавца.
  • Компактная версия вышеупомянутой кассы для обслуживания столиков официантами
  • "Касса" для пополнения баланса денежных средств на браслетах
  • Стенд для контроля прохода на мероприятие (мини-СКУД)

Система поддерживает:

  • Различные способы оплаты: наличные, браслет с предварительно пополненным балансом, браслет с предварительно привязанной кредитной картой, ряд платежей "бонусами"
  • Различные настройки заказов: чаевые, налоги (актуально для США), скидки, разделение чека (оплата одного заказа разными людьми) и т.п
  • Конфигурирование под потребности конкретного мероприятия
  • Частичную работу при сбоях в сети, включая оформление заказов
  • Десятки тысяч клиентов и заказов в течение одного мероприятия
  • Полное оформление заказа, включая оплату, занимает от 7 секунд

Персональный вклад: Принял существующий проект от другого разработчика. С этого момента полностью занимался разработкой всей Аndroid-части. Позднее на проект был добавлен еще один разработчик, погружал его в проект, наставлял и делал codereview. За время работы кардинально стабилизировал работу системы, внедрил аккуратную архитектуру, которую могут поддерживать другие разработчики. Добавил в систему большое количество нового функционала. Постоянно участвовал в анализе требований с заказчиком: многие фичи после технической экспертизы были кардинально пересмотрены и были в итоге реализованы более удобным и стабильным способом, чем предполагалось изначально

 

Gruzer

(в рамках фрилансерской деятельности совместно с агенством Azbuka, 2015-2017) - приложение для сервиса грузового такси

Технические особенности: Приложение-сервис. Точнее, два приложения: для водителя и для клиента сервиса. Общение с сервером заказчика по HTTP/JSON. Много работы с картами и геолокацией. Особое внимание уделялось user-friendly составляющей приложения, логике переходов между экранами и отказоустойчивости.

Персональный вклад: Полная разработка двух приложений (для водителя и для пользователя) по макетам iOS-приложения. Частичная адаптация дизайна и элементов приложения под Android

 

Графический движок для отрисовки курсов валют и не только

(в рамках фрилансерской деятельности совместно со Studio Mobile, 2015-2016) - графический движок для отрисовки торговых пар, индикаторов и другой трейдерской информации

Технические особенности: Не является приложением как таковым. Наша команда разрабатывала библиотеку - графический движок, который заказчик (фирма-разработчик ПО для торговли на бирже) планировал встраивать в свои продукты. Движок обеспечивает:

  • Отрисовку "свечей" торговой пары, текущего курса из данных, получаемых на вход
  • Отрисовку объемов сделок, индикаторов, пользовательских ордеров
  • Изменение масштаба и прокрутку с анимацией, автомасштабирование по высоте
  • Возможность добавления/редактирования пользователем своих графических элементов (линий, текстовых записей, отметок на графике)
  • Полную кастомизацию программистом, использующим движок, всех элементов (цвета, шрифты, размеры, расположение, режимы прокрутки/масштабирования), возможность добавления своих графических элементов
  • Кросс-платформенность с iOS около 70% логики (с использованием утилиты j2objc)
  • Приемлемую производительность (=

Персональный вклад: Тимлид команды из 3-4 человек (включая себя). Разработка архитектуры движка, оценка и постановка задач подчиненным разработчикам, контроль их выполнения, code-review, организация рабочего процесса, техническое общение с заказчиком, анализ требований. Программирование наиболее сложных частей движка.

 

CoinKeeper

(в рамках работы в Touch Instinct, 2012-2013) - приложение для ведения домашней бухгалтерии.

Технические особенности: платформа Mono For Android, сложный интерфейс, богатый вычислительный функционал, синхронизация пользовательских данных между несколькими устройствами через сервер, админ-панель для сервера, ин-апп покупки в приложении

Персональный вклад: основной разработчик Android-клиента. Серверная часть и общая логика - вместе с коллегами по команде. Имел честь представлять приложение на AndroidExpo в июне 2012 г.

 

Flowerr.ru

(в рамках фрилансерской деятельности, 2015) - приложение для сервиса доставки цветов. Каталог, оформление заказа, оплата.

Технические особенности: Довольно классическое приложение-сервис. Загрузка каталога и оформение заказа по HTTP-API, предоставленному заказчиком. Оплата через сторонний сервис cloudpayments.ru. Основная задача - сделать приятное "на ощупь", легкое и быстрое приложение с минимумом необходимых возможностей.

Персональный вклад: Полная разработка Andriod-приложения с нуля по заданным макетам.

 

Zoi

(в рамках работы в Studio Mobile, 2014-2015) - приложение для работников "Скорой помощи" (увы, не российской). Корпоративное, в Google Play отсутствует, описание на сайте заказчика http://www.starwesttech.info/solutions/, промо-видео http://www.starwesttech.info/video-gallery/. Позволяет врачу во время вызова записывать разнообразные данные о происшествии (место происшествия, личные данные пациента, характер травм/жалоб/болезни, диагноз, назначения, проведенные "операции", итп). По прибытии в больницу данные закачиваются на сервер и сохраняются там для истории, статистики либо отчетов.

Технические особенности: Ruby-сервер, два планшетных клиента - Android и iOS. Приложение содержит огромный набор настроек касательно того, какие данные и в каком порядке доступны для ввода (около 15 секций данных - жалобы, личные данные, назначения, "схема ДТП" и др., более 20 типов данных - строковые, числовые, дата/время, фото/видео, геолокация, специфические типы), причем настройки полностью конфигурируются с сервера. Приложение в основном работает в оффлайн-режиме (на вызове интернет обычно недоступен), но также обладает полным набором онлайн-функционала (авторизация, лицензии, синхронизация). Имеется возможность настройки скинов, печати отчетов, сканирование штрихкодов водительских прав и другой "нестандартный" функционал.

Персональный вклад: Team Lead Android-клиента в команде от 3 до 6 разработчиков. Планирование архитектуры, обучение разработчиков (для многих это был первый проект на Android), техническое планирование задач разработчикам, контроль исполнения, код-ревью, непосредственная разработка ядра системы и отдельных модулей.

 

MaybeCoffee

(в рамках фрилансерской деятельности совместно с агенством Azbuka, 2018) - сервис знакомств с функционалом заказа кофе

Технические особенности: Любопытная бизнес идея - сервис знакомств, на котором можно не только познакомиться, но и сразу же пригласить партнера на чашку кофе. С технической точки зрения - обычное клиентское приложение, сообщающееся с сервером по HTTP. Значительный внутренний функционал: профиль пользователя с фото и интересами, поиск по карте с геолокацей, чат, внутри чата же - выбор кофейни, меню, оформление заказа. Кроме того, нашей же командой было разработано приложение для продавца кофейни с функционалом приема и подтверждения заказа

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

 

"Умный дом" для самолета

(в рамках работы в Studio Mobile, 2013-2014) - (NDA не позволяет открывать имена, пароли и явки) - приложение для управления системами комфорта (вентиляция, освещение, окна, аудио-видео, и т.п., системы безопасности и полета не затрагиваются) в самолете (речь, в основном, о частных самолетах).

Технические особенности:

Состав системы:

  • Java-сервер
  • Два мобильных клиента для пассажира (Java/Android, Objective-C/iOS)
  • Несколько Desktop-клиентов (стационарные терминалы для стюардесс, .NET-Forms-WPF, Windows, позднее - Android)
  • Web-клиент для пассажира (HTML5+JS, не был выпущен, заказчик посчитал модуль ненужным)

Сервер установлен непосредственно в самолете, клиенты отправляют команды на сервер по Wi-fi (protobuf+sockets). Подключение сервера и передача команд к самолетному железу происходит по API, предоставляемым заказчиком по согласованию с нашей командой.

Персональный вклад: принял руководство уже готовым проектом от предыдущего PM. Возраст проекта на момент приема - примерно 4 года, состояние - активное развитие, доработка и внедрение новых фич. Фактически, полное руководство проектом (кроме бухгалтерско-договорной части) под ненавязчивым присмотром генерального. Общение с заказчиком, оценка сроков, постановка задач разработчикам, контроль за их исполнением. Непосредственная разработка:

  • Доработки на сервере
  • Доработки и новые фичи на Android-клиенте для пассажира
  • Разработка с нуля Android-терминала для стюардессы (портирование существующего WinForm-клиента на Android)
  • Совместно с коллегой - разработка Web-клиента
  • Внимательное присматривание за iOS-проектом без активного кодирования

 

Digit Wars

(в рамках работы в Touch Instinct, 2011) - геолокационная MMORPG. На данный момент проект закрыт, описание можно взглянуть здесь http://4pda.ru/forum/index.php?showtopic=399169

Технические особенности: платформа Mono For Android, сложный интерфейс, геолокация+карта, взаимодействие с сервером и соцсетью ВКонтакте

Персональный вклад: основной разработчик Android-клиента на ранней стадии (после был переведен на другой проект, доделывали в релиз другие ребята). В процессе подбора оптимального интерфейса и согласований с заказчиком, фактически, создал около трех разных полнофункциональных клиентских приложений. Принимал также небольшое участие в разработке сервера.

 

Relax FM

(в рамках работы в Touch Instinct, 2011-2012) - клиентское приложение для одноименной радиостанции. На данный момент выпущена новая версия, приложение по ссылке выше не работает, увы =(

Технические особенности: нативное приложение (Java/Android), нестандартный прием аудиопотока AAC (позже переделали на MP3), использование готового серверного API (новости, блоги)

Персональный вклад: единственный разработчик Android-клиента. Участвовал в проектировании серверного API (сам сервер был предоставлен заказчиком, но API проектировалось силами заказчика заново по нашим спецификациям)

 

Немобильная разработка

 

Erste Energy

(2017) - биллинг-система для учета теплоэнергии ("счетчики" на батареях в квартирах)

Технические особенности: C#, WPF. Система собирает данные с датчиков тепла, установленных поквартирно, и на основе их показаний рассчитывает плату за отопление. Несмотря на кажущуюся простоту задачи, методика расчета должна учитывать целый спектр неочевидных нюансов: смена жильцов в середине месяца, различная мощность обогревателей, различное положение квартир в здании, отдельный расчет обогрева помещений общего пользования, возможность выхода из строя части датчиков, различные формулы расчета, применяемые в разных домах, и т.д. Со стороны заказчика предъявлялись высокие требования по удобству системы в повседневном использовании. Еще одна особенность: полное отсутствие компетенций по разработке ПО на стороне заказчика.

Персональный вклад: анализ требований со стороны закзачика, проектирование системы, проектирование UI (позднее - совместно с дизайнером), создание прототипа под Windows. Полученные наработки были позднее использованы заказчиком при развитии проекта (было решено делать web-версию)

 

ESELTA

(в рамках работы в ООО Петерсофт, 2010-2011) - интегрированная система безопасности - мониторинг и управление пожарной, охранной сигнализацией и системами контроля доступа

Технические особенности: огромная распределенная клиент-серверная система (C#, БД Microsoft SQL, Entity Frmwk+Remoting, WPF), широкий ассортимент поддерживаемого оборудования, разнообразные протоколы связи c железом, высокая нагрузка на севрер

Персональный вклад: доработка и отладка отдельных модулей под руководством старшего разработчика (как интерфейс, так и логика), внедрение нового оборудования в систему

 

НаБегу

Сайт с фотографиями легкоатлетических пробегов Санкт-Петербурга и области

Технические особенности: CMS Joomla, доработка вручную, php-хостинг, фотографии хранятся отдельно на сторонних сервисах, группа ВКонтакте, большая часть аудитории - старше 40 лет

Персональный вклад: полностью личное творчество. Just for fun и пропаганды спорта ради

 

Система учета монетной продукции

(в рамках работы в ПГУПС, 2008-2009) - проект кафедры "Робототехника" по созданию системы автоматизированного подсчета мешков с монетами при погрузке для Монетного Двора Санкт-Петербурга

Технические особенности - нестандартное оборудование, работа под управлением DOS/Windows, высокая ответственность (деньги как-никак)

Персональный вклад - разработка программной части. Коллега с кафедры занимался железом

 

Не совсем разработка

 

Преподавательская деятельность

(2008-2009) В рамках работы в ПГУПС в течение семестра с небольшим вел семинарские занятия у студентам под дисциплинам "Структуры данных" и "Программирование на C++"

(2015-2016) В рамках "школы разработчиков" Studio Mobile провел три курса обучения для групп молодых Android-разработчиков

(2021) Провел курс Java-разработки в школе Бруноям

 

Спортивное программирование

(2009) В рамках работы в ПГУПС вел в качестве тренера команду от института на региональный четвертьфинал ACM ICPC. Впоследствии сам участвовал в RussianCodeCup, VKOpen и других соревнованиях, правда, особых успехов пока что не добился.

Статус: свободен, ищу проекты

Обновлено 22 апреля 2024

 Скачать резюме в PDF

 In English