Software Developer
Маю великий досвід у розробці програмного забезпечення під платформи Windows, MacOS та iOS з використанням мов програмування С++, Objective-C++ та Swift. Здебільшого займався розробкою бібліотек яки полегшували подальший розвиток цільового продукту.
Окрім основних, виконував допоміжні задачі по конфігурації проєктів, підтримці CI (Jenkins), реалізації утилітарних скриптів з використанням Bash, Cmd та Python.

Технічні навички:

iOS, MacOS, MS Windows
Xcode, Visual Studio, VS Code, CMake
Swift (3+ years)
C++ (20+ years)
Objective-C++ (10+ years)
Assembler x86 (2 years)
Auxiliary (Python, Unix shell, Windows shell)
Multitasking (classic, GCD, async/await)
Networking (HTTP/Web-Socket/Mixed clients)
Data Modelling (CoreData)
Reactive Programming (Combine)
UI (UIKit, AppKit, Qt, MFC/WinAPI)
Graphics (CoreGraphics, CoreAnimation, GDI/GDI+)
OSX Kernel (IOKit, KAuth, Endpoint Security)
Unit Testing (XCTest, Boost.Test, GoogleTest, QtTest)
Misc (Apple IAP, XPC, WebKit)
Jenkins, GitLab
Git, Mercurial, SVN
Jira, Redmine

Знакові для мене проекти:

- Участь в імплементації Win32 API на платформі MacOS Classics. Очолював команду яка відповідала за розробку функціоналу роботи з UI (User32). Даний підхід дозволив за короткий термін (менше року) перевести доволі велику програму (більше ніж 200 бібліотек, понад 800 діалогів) на платформу MacOS Classic

- Дизайн та розробка розширення MFC яке дозволяло в динаміці змінювати обробники команд та повідомлень. "Вартість" інтеграції в існуючий продукт була майже нульовою. Використання бібліотеки дозволило провести поступову декомпозицію "God" objects та спростило подальшу розробку продукту.

- Рефакторінг коду пов'язаного з undo у продукту з великою кількістю legacy коду.
Був реалізований Undo Manager з більш зручним інтерфейсом, старий інтерфейс залишили але переробили його на базі нового. Такій підхід дозволив проводити поступовий перехід на нову реалізацію, зберігаючи у робочому стані існуючій код але можливістю використання більш зручного інтерфейсу для імплементації нового функціоналу.

- Розробка Kernel Extension (KEXT) на платформі MacOS X. Цей компонент контролював доступ до файлів та був частиною функціоналу Real Time Protection.
Цікавий досвід але не можу сказати що мені дуже сподобалось через обмеження (відсутність C++ exceptions та STL, незручні умови дебагу)

Шукаю цікаву роботу у якості розробника з можливістю росту до tech-lead команди

Маю великий досвід у розробці програмного забезпечення під платформи Windows, MacOS та iOS з використанням мов програмування С++, Objective-C++ та Swift. Здебільшого займався розробкою бібліотек яки полегшували подальший розвиток цільового продукту.
Окрім основних, виконував допоміжні задачі по конфігурації проєктів, підтримці CI (Jenkins), реалізації утилітарних скриптів з використанням Bash, Cmd та Python.

Технічні навички:

iOS, MacOS, MS Windows
Xcode, Visual Studio, VS Code, CMake
Swift (3+ years)
C++ (20+ years)
Objective-C++ (10+ years)
Assembler x86 (2 years)
Auxiliary (Python, Unix shell, Windows shell)
Multitasking (classic, GCD, async/await)
Networking (HTTP/Web-Socket/Mixed clients)
Data Modelling (CoreData)
Reactive Programming (Combine)
UI (UIKit, AppKit, Qt, MFC/WinAPI)
Graphics (CoreGraphics, CoreAnimation, GDI/GDI+)
OSX Kernel (IOKit, KAuth, Endpoint Security)
Unit Testing (XCTest, Boost.Test, GoogleTest, QtTest)
Misc (Apple IAP, XPC, WebKit)
Jenkins, GitLab
Git, Mercurial, SVN
Jira, Redmine

Знакові для мене проекти:

- Участь в імплементації Win32 API на платформі MacOS Classics. Очолював команду яка відповідала за розробку функціоналу роботи з UI (User32). Даний підхід дозволив за короткий термін (менше року) перевести доволі велику програму (більше ніж 200 бібліотек, понад 800 діалогів) на платформу MacOS Classic

- Дизайн та розробка розширення MFC яке дозволяло в динаміці змінювати обробники команд та повідомлень. "Вартість" інтеграції в існуючий продукт була майже нульовою. Використання бібліотеки дозволило провести поступову декомпозицію "God" objects та спростило подальшу розробку продукту.

- Рефакторінг коду пов'язаного з undo у продукту з великою кількістю legacy коду.
Був реалізований Undo Manager з більш зручним інтерфейсом, старий інтерфейс залишили але переробили його на базі нового. Такій підхід дозволив проводити поступовий перехід на нову реалізацію, зберігаючи у робочому стані існуючій код але можливістю використання більш зручного інтерфейсу для імплементації нового функціоналу.

- Розробка Kernel Extension (KEXT) на платформі MacOS X. Цей компонент контролював доступ до файлів та був частиною функціоналу Real Time Protection.
Цікавий досвід але не можу сказати що мені дуже сподобалось через обмеження (відсутність C++ exceptions та STL, незручні умови дебагу)

Шукаю цікаву роботу у якості розробника з можливістю росту до tech-lead команди
