I’m looking to be involved in high-level product discussions and user research as well as shaping technical solutions and writing code. I admire companies that innovate in accessibility, UI design tooling, productivity, and collaboration.
|Studies for Mac
|Studies for iOS
|Cirkus for Mac
|Archiver for iPhone
Sympli, 2017 – now
As a macOS engineering lead and a product owner of Sympli Versions, I've got to wear a lot of them hats:
👨🍳 Product. Helping the team shape a product vision, I’m drafting feature proposals and driving them across the board, iterating on feedback and adjusting ideas to business needs. I’ve managed to compose a few high-level roadmaps and some more detailed action plans for specific feature trees along the way.
👨✈️ Team. At times, it’s my responsibility to convey technical requirements for backend, desktop, QA, and marketing teams; coordinate their workload and adjust the scope of work to meet deadlines. I’ve also hired, interviewed, and onboarded a few teammates.
🕵️♂️ Customers. I’m often the first responder for customer support requests, a technical writer, and an author of various marketing materials. So there're daily Intercom, emails, log files, and crash reports to go through.
👨🌾 Tech. Here my focus is on building a robust native macOS app that has to orchestrate user documents, branching, git-level storage and transport layers, semantic Sketch document versioning and diffing, design reviews and discussions, and UI-driven conflict resolution flow covering cross-dependent design components. All of that with Swift, some C++, NSOperations, Core Data, libgit2, and AppKit.
Sympli, 2017 – now
I’m also responsible for the desktop side of Sympli Handoff where most of my effort goes into a non-trivial native Sketch plugin that manipulates internal Sketch data model directly bypassing limited official APIs and sports a standalone AppKit UI flow.
My favorite part of this project is an extensive automated test suite that validates private API contracts and specific document layout cases against multiple versions of Sketch during a CI run. All checks are performed dynamically inside Sketch via code injection and a bit of Objective-C metaprogramming. There’s also image snapshot testing for tricky setups that would be a nuisance to validate otherwise.
Apparent Software Inc., 2017, freelance
I was in charge of Batch Processing feature in ImageFramer: adapted an existing single-threaded image processing engine to work in a multi-threaded environment required for parallel application of image templates; built a UI flow for the highly-configurable batch export process.
Also made a few smaller contributions to Trickster: introduced a light theme (and theming support in general); updated the way file previews work there; made Watched Folders play nicely with macOS Sandbox.
The Mental Faculty B.V., 2016, freelance
Worked on data import modules for a flashcard app Studies: built components for importing card sets from Quizlet.com and Excel spreadsheets, accompanied by documentation and sample code.
Contributed to a data sync framework Ensembles by updating its Dropbox-based cloud file system to work with Dropbox SDK v2; discovered and reported issues in the Dropbox SDK itself.
Cuckoo Sandbox, Summer 2015
The project involved automating virtualized macOS environments, (ab)using DTrace for dynamic analysis of potentially malicious executables, and writing end-to-end Python tests covering communications between a host OS and a virtual machine.
Worked on a multitude of tasks: from refactoring legacy codebases and writing Swift wrappers for C libraries to architecture review sessions and technical mentorship, to developing Sketch and Apple Mail plugins, to kernel extensions and libimobiledevice-based MDM tools, to building full-featured iOS & macOS apps.
My open source contributions include:
A long time ago in a galaxy far, far away…
Digging through the internals of various apps, frameworks and OS components made me a natural at figuring out the hidden magic that makes them work – which comes in handy when writing software for Apple platforms as they are notoriously closed source and underdocumented.
Here’s a few of my research projects from that period:
Bachelor’s Degree in Computer Science. My graduation project was a decompiler for the Ruby virtual machine (YARV) bytecode. It was a part of a larger proof of concept aiming to bypass RubyEncoder’s code obfuscation.