← В ленту

Портфолио

LiveSwitch (Surrey, BC)

В качестве старшего разработчика программного обеспечения в LiveSwitch я был ответственен за создание и поддержку ряда микросервисов на бэкенде с использованием C#. Одним из моих первых заданий было решение проблем стабильности сервиса видеозаписи который часто сталкивался с испорченными метаданными файлов видеозаписи. Чтобы быстро решить эту проблему и ответить на жалобы клиентов, я реализовал решение которое автоматически анализировало и исправляло испорченные файлы при их поступлении в сервис видеозаписи. Это позволило нам временно решить проблему, давая время для расследования почему файлы метаданных видеозаписи были созданы как испорченные. Еще один проект над которым я работал заключался в улучшении эффективности сервиса событий который отслеживает активность видеотрансляции и выставляет счета клиентам соответственно. LiveSwitch использовал сервис Google "BigQuery" для хранения и доступа к большому количеству событий, что приводило к значительным расходам на оплату услуг BigQuery от Google. Чтобы уменьшить расходы на хранение данных в Google и повысить прибыльность LiveSwitch, я предложил и реализовал решение для выгрузки и агрегации данных на облачные сервера общего назначения, которые были значительно дешевле, чем специализированное хранилище больших данных от Google. Кроме того, я обнаружил альтернативный и значительно более дешевый метод использования Google BigQuery API, обеспечив дальнейшее сокращение затрат. В результате этих усилий LiveSwitch смог резко сократить затраты и улучшить прибыльность.

DirecTV/AT&T

Я был частью команды разрабатывающей клиентов для потоковой трансляции игр NFL на различных программируемых ТВ-платформах для DirecTV, дочерней компании AT&T. Когда я присоединился к команде, это было сразу после конференции Apple на которой было объявлено, что платформа Apple TV теперь откроется для сторонних приложений. Это давало возможность для DirecTV разработать приложение "NFL Sunday Ticket" для AppleTV, поэтому мы должны были начать разработку с нуля. Весной руководство считало что мы не сможем завершить приложение до начала следующего сезона NFL осенью того же года. Они считали что приложение будет доступно для клиентов только в следующем году NFL сезона. Однако наша команда превзошла ожидания, завершив приложение к осени того же года, открыв новый источник дохода от подписок Apple TV для DirecTV на год раньше, чем ожидалось. Кроме того, мы смогли завершить проект досрочно с оставшимся еще временем, что позволило сделать две дополнительные итерации переработки интерфейса, сделав приложение с более продуманным и красивым интерфейсом, которое получило много похвал от высшего руководства. В этом проекте было много проблем, особенно с компонентом видеотрансляции Apple TV, который имел очень ограниченные возможности настройки. Мы должны были проявлять изобретательность в поиске способа заставить компонент работать в соответствии с техническими требованиями.

Top Producer Systems/Move

Я присоединился к Top Producer Systems (бывшей дочерней компании Move) в критическое время для компании, когда она находилась в процессе планирования перехода от продажи коробочного программного обеспечения для агентов и брокеров недвижимости к полностью онлайновой, основанной на подписке системе. Я активно участвовал во всех трех этапах этого перехода. Первый этап включал в себя выпуск окончательной версии коробочного программного обеспечения, чтобы компания могла продолжать предлагать конкурентоспособный продукт во время перехода на онлайн-систему. Это был важный шаг, поскольку он дал мне обширные знания о специфических функциях программного обеспечения, которое находилось на рынке некоторое время. Я использовал эти знания в следующих этапах перехода. Второй этап заключался в разработке переходного проекта, который сохранял тот же пользовательский интерфейс Windows forms, но подключал приложение к онлайн-базам данных. Это был заказной проект для отдела недвижимости корпорации Cendant. Добавляя онлайн-поддержку к существующему оффлайн-продукту, мы могли синхронизировать данные между локальным приложением и большой облачной системой недвижимости Cendant. Чтобы это сделать, нам пришлось изучить и понять интерфейс API и внутреннюю структуру данных системы Cendant. Проект был успешно завершен. Третий этап предполагал проектирование полностью облачной онлайн-системы с нуля. Я играл ключевую роль в проектировании структуры базы данных для подсистемы потенциальных клиентов и был ключевым разработчиком для подсистемы отчетов по потенциальным клиентам. Это включало в себя проектирование базы данных OLAP и разработку инструмента ETL для загрузки и агрегирования данных из транзакционной базы данных потенциальных клиентов. Проект был успешно завершен и компания переключалась полностью на онлайн продукт.

AeroInfo/Boeing

Я был старшим членом команды iOS в AeroInfo, дочерней компании Boeing в Канаде, где мы разработали iPad-приложение для пилотов под названием ecoAFP. Приложение было разработано для беспроводной сбора бортовых сигналов, связанных с расходом топлива во время полета, создания детальных графиков различных параметров с наложенным поверх графиком расходом топлива и таким образом позволяя пилотам учиться какие стратегии приводят к наибольшей экономии топлива. Мы использовали компонент для диаграмм iOS от компании Shinobi, но из-за ограниченных их ресурсов мы столкнулись с множеством проблем при попытке интегрировать его в наше приложение. Это привело к задержкам проекта. Несмотря на то, что мы потратили несколько месяцев на решение проблем, даже прямая работа с разработчиками Shinobi не смогла решить проблему. Поскольку у нас не было доступа к исходному коду компонента, мы не могли решить проблемы без помощи Shinobi. Я предложил пересоздать компонент диаграмм Shinobi внутри компании, используя мои знания в области высокопроизводительности iOS-графики (OpenGL), которые я приобрел ранее разрабатывая игры перед тем, как присоединиться к AeroInfo. Я успешно воспроизвел функции из компонента Shinobi, которые нам нужны, и интегрировал их в наш продукт. В результате мы, наконец, смогли сдвинуть проект с мертвой точки используя компонент для диаграмм собственной разработки под полным контролем компании и с доступом к исходному коду. Это позволило нам создать приложение точно в соответствии с оригинальными спецификациями без нужды подгонять существующие функции компонента другого производителя под наши спецификации.

Netgear/Arlo (Richmond, BC)

В качестве старшего члена команды iOS в Arlo, компании, которая предлагает устройства для умного дома, такие как беспроводные камеры и домофоны, я играл ключевую роль в разработке нового продукта Arlo Pro3 Floodlight. Камера включает в себя очень яркий LED свет, питаемый батареей с минимальным снижением жизни батареи. С жестким сроком завершения реализации поддержки нового продукта на всех компонентах программного обеспечения, включая микропрограммы, бэкенд и три клиента (веб, Android и iOS), было крайне важно, чтобы мы работали быстро, чтобы добиться того чтобы программное обеспечение было готово вовремя для загрузки в первую партию камер, отправленных из Тайваня. Моя ответственность заключалась в добавлении поддержки Arlo Pro3 в iOS-клиент. Я участвовал в еженедельных встречах, в которых принимали участие представители всех компонентов программного обеспечения, чтобы обсудить выполненную работу и планировать следующие шаги, а также участвовал в совместных War Rooms для отладки проблем между компонентами. Несмотря на трудности координации нескольких команд, мы успешно завершили проект в срок без задержек.

Скиллы

ADO.NET
ASP.NET
AWS
AWS CloudWatch
AWS DynamoDB
AWS SQS
Backend Architectures
Backend Development
CSS
CSS3
Database Design
Database Development
Docker
Game Development
Google BigQuery
HTML
HTML5
Java
Javascript
Javascript
JSON
Kibernetis
Microservices
Mobile development
MS-SQL
MySQL
Objective-C
OpenGL
Performance Tuning
PHP
PostreSQL
RabbitMQ
Redis
RESTFul Services
SOAP Services
SQL Query Optimization
T-SQL
Web services
XML

Опыт работы

Software Developer II
12.2021 - 12.2022 |Amazon (Vancouver, BC)
Микросервисы, Java, AWS CloudWatch, AWS S3, AWS SNS, AWS SQS, AWS DynamoDB
• Член команды микросервисов бекенда Alexa Security Guard. • Разработка и поддержка EventListener и других связанных микросервисов. • Поддержка/анализ метрик и сигналов. • Анализ производительности. • Анализ внутренних журналов Atocha. • Работа с сервисами AWS CloudWatch, S3, SNS, SQS и DynamoDB. • Проектирование новой функции датчика дыма и CO 24/7.
Senior Software Developer
06.2020 - 09.2021 |LiveSwitch (Surrey, BC)
Микросервисы, C#/NET, AWS, PostreSQL, RabbitMQ, Google BigQuery, iOS/Android
• Член команды микросервисов бекенда. • Разработка, поддержка и расширение микросервисов видеозаписи, биллинга и других. • Проектирование и разработка нового микросервиса событий. • Оптимизация извлечения данных из BigQuery - достигнуто уменьшение стоимости извлечения данных в 150 раз. • Исправление критических проблем в мобильных SDK (iOS/Android).
Senior Software Developer
02.2018 - 06.2020 |Netgear/Arlo (Richmond, BC)
iOS, Objective-C, Swift
• Основной разработчик функционала для устройства источника света. • Разработчик процесса начальной настройки для устройств Chime и Doorbell. • Участвовал в разработке нового поколения интерфейса пользователя - UX 3.0 • Основной исполнитель проекта интеграции с HomeKit • Основной исполнитель проекта "Owl" (камера с мощной подсветкой широкого обзора).
Personal Projects
08.2017 - 02.2018 |TopLineSoft Systems (Self-Employed , Vancouver, BC)
iOS, Swift, Android, Kotlin
• Создал "Windows для iPad" - менеджер файлов с интерфейсом настольной операционной системы для iPad (приложение не было опубликовано в App Store из-за правил Apple). Демо-видео: https://youtu.be/Wwf1TZEbFGE • Создал "Windows для Android" - менеджер файлов с интерфейсом настольной операционной системы для планшетов Android. Приложение опубликовано в Google Play. Демо-видео: https://youtu.be/c3RcmsBgEEk
Senior Software Engineer
03.2016 - 08.2017 |DirecTV (Contract, Los Angeles, CA)
AppleTV SDK, Swift
• Ключевой разработчик проекта AppleTV "NFL Sunday Ticket".
Personal Projects
11.2015 - 03.2016 |TopLineSoft Systems (Self-Employed, Vancouver, BC)
iOS, Swift, PHP, MySQL
• Создал и опубликовал приложение социальной сети "Past Meet".
Software Developer
06.2015 - 11.2015 |Dynamic Leap (Contract, Vancouver, BC)
MacOS, Swift
Разработка и успешное завершение Mac OS X приложения "ShotLister" для кинопроизводителей.
Owner/Developer
04.2015 - 06.2015 |TopLineSoft Systems (Self-Employed, Vancouver, BC)
iOS, Swift, PHP, MySQL
• Создал и опубликовал приложение социальной сети для покупателей “Zetware”.
Senior Software Developer
09.2013 - 04.2015 |AeroInfo (Contract, Vancouver, BC)
iOS, Objective-C, OpenGL
• Разработчик исследовательского iOS проекта профилировщика топлива "ecoAFP" с начала до конца. • Консультирование, наставничество и документирование алгоритмов и решений дизайна, реализованных в проекте "ecoAFP". • Разработка следующей версии ecoAFP под названием "RPM".
Software Developer
05.2013 - 08.2013 |Absolute Software (Contract, Vancouver, BC)
iOS, Objective-C
• Внедрил набор новых функций для приложения Absolute Computrace Agent для iOS.
Software Developer
10.2012 - 05.2013 |Oltis Software LLC (Contract, Bellevue, WA)
iOS, Objective-C
• Разработал iPhone приложение-калькулятор для финансов "Finance Logix". • Создал несколько заказных вариаций приложения "Finance Logix". • Добавил полную поддержку iPad в приложении "Finance Logix".
Software Developer
06.2012 - 10.2012 |Disternet (Contract, Vancouver, BC)
iOS, Objective-C
• Разработал iOS приложения для управления TV-приставкой и для проигрывания видео контента с мобильного устройства и на него.
Personal Projects
03.2010 - 06.2012 |TopLineSoft Systems (Self-Employed, Vancouver, BC)
iOS, MacOS, Objective-C
• Спроектировал, разработал и внедрил 24 (двадцать-четыре) программных продукта для iPhone/iPad и одно приложение для Mac OS X.
Software Developer
11.2009 - 03.2010 |Attollo Consulting Inc (Contract, Vancouver, BC)
C#/.NET, MS SQL Server, JavaScript, HTML, SMTP, ASP 2.0
• Принял участие в проектировании и разработке модификаций системы самообслуживания для колледжа "Keyano", чтобы взаимодействовать с централизованным образовательным порталом провинции Альберта, Канада. • Разработал техническую документацию и обучение персонала в отношении реализованного решения. • Проект был завершен вовремя до истечения срока, и поэтому колледж "Keyano" смог получить доступ в Интернет как запланировано и сообщил Министерству образования о готовности получить доступ к приложению в Интернете.
Personal Projects
11.2008 - 10.2009 |TopLineSoft Systems (Self-Employed, Vancouver, BC)
iOS, Objective-C
• Спроектировал, разработал и выпустил 9(девять) iOS приложений.
Software Developer
03.2008 - 05.2008 |Microsoft (Contract, Redmond, WA)
Mobile Windows 7, C++, C#/.NET
• Реализовал новые функции для компонентов оболочки Mobile Windows 7. • Создал модульные тесты для компонентов оболочки Mobile Windows 7.
Software Developer
11.2006 - 10.2007 |Microsoft (Contract, Redmond, WA)
Web services, C#/.NET, Microsoft SQL Server, Javascript.
• Реализовал несколько улучшений процесса сборки (синхронизация многопроцессорной сборки, правильная версионирование компонентов, автоматические проверки соответствия и т.д.) • Реализовал множество функций для компонентов Global Business Intelligence • Создал и изменил хранимые процедуры, таблицы базы данных, ограничения и пакеты SQL job для слоя базы данных службы Global Business Intelligence с использованием MS SQL 2005 OLAP Services. • Создал технические спецификации для интеграции Outlook и импорта данных для приложения Account Planning. • Реализовал функцию интеграции Outlook, утилита импорта данных, функция отчетности в Excel, формы пользовательского интерфейса, компоненты бизнес-логики среднего уровня и объекты базы данных для приложения Account Planning (JavaScript, C#, SQL).
Software Developer
11.2004 - 10.2006 |Business Objects (Vancouver, BC)
C#/NET, C++, Java, XML, Web services
• Разработал web-сервис для публикации документов (Java) и клиентские части web-сервиса на Java/C#. • Портировал фреймворк модульных тестов Java на C#. • Реализовал множество новых функций для C#, C++. • Разработал предложения и прототип для использования атрибутов/аннотаций вместо отдельных XML файлов. • Портировал бэкенд в новую систему сборки для Windows, Linux и Solaris (GMake, C++). • Разработал функцию Smart Server (Java).
Software Developer
10.2003 - 11.2004 |HireDesk Inc. (Richmond, BC)
Visual Basic, Javascript, HTML
• Разработал концептуальный поиск и интегрировал Outlook e-mail функциональность.
Software Developer
12.1999 - 10.2003 |Top Producer Systems (Richmond, BC)
Web services, Visual Basic, MS SQL Server, COM+, XML, MSMQ, C/C++, Code Warrior
• Участвовал в технических обсуждениях по крупному интеграционному проекту. • Руководил и наставлял небольшую группу разработчиков. • Внес вклад и был одним из ключевых драйверов архитектуры и дизайна подсистемы недвижимости. • Внес вклад в Интернет-систему производительности недвижимости с использованием трехуровневой архитектуры с использованием MS SQL Server 2000 и компонентов COM+. • Выполнил анализ данных/системы и проектировал спецификации обмена данными для интеграции двух систем недвижимости через обмен данными XML. • Проектировал и реализовал фреймворк разработки, реализован набор поддерживающих утилитарных программ, таблицы базы данных/хранимые процедуры (SQL Server 2000) и компоненты слоя бизнес-логики (COM+, MS Visual Basic 6.0, MS Visual C++ 6.0) для настройки системы недвижимости и ее интеграции с использованием сторонней системы через обмен данными XML и MSMQ. • Реализовал загрузку данных OLAP (ETL) и функциональность отчетности OLAP для системы недвижимости (MS SQL Server 2000, MS Visual Basic 6.0, COM+). • Реализовал веб-возможности, механизм обмена данными и функциональность интеграции системы между Windows desktop и сторонней системой с использованием компонентов ActiveX для интеграции в веб и HTML для обмена данными (MS Visual Basic 6.0). • Реализовал просмотрщик журнала синхронизации данных, поддержка цвета и функциональность настройки цвета для Palm OS (C/C++, Code Warrior).
Senior Software Developer
12.1998 - 11.1999 |Corvus International (Moscow, Russia)
PL/SQL,C++,Pascal,IBM AIX,Sun OS
• Разработал функциональность поддержки для системы клиент-сервер банка Oracle. • Разработал и реализовал интеграционный и миграционный системы данных из двух разных унаследованных банковских систем.
Software Developer
10.1998 - 12.1998 |Biblio-Globus (Moscow, Russia)
ASP, Visual Basic, MS SQL Server
• Разработал Intranet систему заказа книг для книжного магазина.
System Analyst
10.1997 - 09.1998 |Bank “MENATEP” (Moscow, Russia)
C++
• Участвовал в разработке трехуровневой системы банковского дела в одном из крупнейших банков России. • Выполнял анализ бизнеса и системы для банковского продукта. • Реализовал клиентская часть банковского продукта для учета налогов (C++). • Разработал и реализован конвертация данных и миграция системы из банковского приложения наследия (C++).
Lead Software Developer
06.1995 - 10.1997 |R-Style Software Lab (Moscow, Russia)
C/C++
• Основал новую линейку продуктов банковского учета акций для интегрированной системы клиент-сервер. • Руководил командой разработчиков программного обеспечения в количестве до пяти человек. • Внес вклад в создание отделов QA и документации, обучал первых членов этих отделов. • Тесно взаимодействовал с клиентами по отдельным продуктам. • Завершил анализ бизнеса и системы услуг учета ценных бумаг. • Разработал и реализовал продукт учета депозитария и облигаций (C/C++). • Разработал и реализовал интегрированную систему учета ценных бумаг (C/C++).
Software Developer
02.1994 - 04.1995 |TTD (Moscow, Russia)
C++, DBVista
• Разработал первую версию приложения Депозитария. • Руководил и участвовал в разработке второй версии приложения Депозитария (C++, DBVista)

Образование

Компьютерный Инженер (Магистр)
1988 - 1994
Московский Институт Радиотехники, Электроники и Автоматики (МИРЭА)

Языки

АнглийскийСвободно владеюРусскийРодной