👋 A photo of myself 👋
🦺

Hi,

I’m Dmitry Rodionov, a software engineer for Apple platforms.

Dmitry Rodionov, a software engineer for Apple platforms.

i.am.rodionovd@gmail.com
https://github.com/rodionovdhttps://linkedin.com/in/rodionovd

My main area of expertise is macOS development and related activities, but I’ve always been a generalist who is comfortable working with a diverse set of technologies in various, usually Apple-related, domains.

I’m available for hire

Currently open for full time opportunities.

Email, GitHub, Twitter, Mastodon, LinkedIn

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.

Experience

Sympli Versions Sympli Handoff Studies for Mac
Shotty Ensembles Studies for iOS
ImageFramer MemoryCleaner Trickster
Cuckoo Sandbox Cirkus for Mac Archiver for iPhone

Product Owner, macOS Engineer

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.

Sketch Plugin Developer

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.

macOS Engineer

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.

macOS / iOS Engineer

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.

Google Summer of Code Contributor

Cuckoo Sandbox, Summer 2015

Participated in Google Summer of Code during one of the summer breaks while pursuing a CS degree, adding support for analyzing macOS binaries in an automated malware analysis system.

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.

Software Engineer for Apple Platforms

2011-2017, freelance

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.

Clients include Mental Faculty, Apparent Software, ZipZapMac, farmerswife, XLware, Jacob Ruiz and others.

Open Source Contributor

since 2014

My open source contributions include:

Reverse Engineer

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:

Education

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.