I’m Dmitry Rodionov, a macOS developer and software solution provider.
I’m available for hire!
I work in plenty of different areas: from low–level system utilities and reverse–engineering to rich user-facing Cocoa applications and Sketch plugins.
I do care about the end product and take pride in all of my work, no matter if it’s a simple script or a complex software system. Everything I do is crafted and polished to perfectly fit your business needs and make you happy, no less.
I’ve been building Mac and iOS solutions since 2011, working on dozens of projects: as a contractor for software shops (Sympli, Mental Faculty, Apparent Software, ZipZapMac, farmerswife), as a collaborator with design studios (Jacob Ruiz Design, Eden Vidal, Angelo Milanetti, Lstore) and as a solution provider for a lot of companies around the globe (Upward Mobile LLC, DEVV.IT AB, LenoFX, Element TwentySix, ProtoDype Limited — just to name a few).
Drop me a message and let’s create something great together!
Objective-C, Swift, C, Cocoa, AppKit, Sketch, Sketch Plugins, CocoaScript, Foundation, CoreData, Sandbox, Accessibility, UX, reverse-engineering, testing, Ruby (for Rake mostly), probably some Python.
Remember the dark times when Interface Builder and Xcode were two separate apps, 32–bit runtime required you to @synthesize your properies manually and all Cocoa programmers had to know when to call -autorelease on things? Yep, I was there.
Things have changed drastically since then: now we have pleasant developer tools, new awesome programming languages and a lot of documentation (well even Apple has a blog on Swift!).
But what remains (somewhat) the same is AppKit and I really enjoy working with this beautiful beast. My secret is that I always keep a disassembler window open with AppKit.framework loaded into it 🌈 This way I’m sure I know what happens under my feet; how to avoid this and work around that.
I also understand how macOS works on the low-level (multithreading, sandboxing, XPC, SIP, launchd, you name it) and this knowledge often serves me well when I build any non-trivial software system that is environment-aware.
Here’s a few public macOS projects I took part in recently:
![]() |
![]() |
|
Versions | Shotty | Done Time |
![]() |
![]() |
![]() |
Studies for Mac | MemoryCleaner | Trickster |
![]() |
![]() |
|
ImageFramer | Daruma | Ensembles |
Your project here |
Sometimes I help my clients with iOS applications as well by building new features or solving puzzling issues and refactoring the codebase.
![]() |
![]() |
![]() |
Archiver | Studies for iOS | File Manager |
![]() |
||
AVPlayer | Your project here |
I love Sketch. But even more than that I love writing plugins for this tool because it gives me an ability to utilize my Cocoa-fu and, at the same time, to fulfill my need for a challenge: it’s a normal situation for me to spend a few hours reverse-engineering Sketch.app in order to figure out how it works internally so I can do the impossible possible.
As I mentioned above, I prefer building Sketch plugins with the native toolchain: Objective–C (or Swift) and Cocoa. This empowers me to create any UI I need without struggling with CocoaScript’s poor (read, nonexistent) xib/storyboards support and general luck of important features. I also like types, so anything JavaScript-ish is not what I’m comfortable working with on any non-trivial project.
Here’s a few of publicly available Sketch plugins I built recently:
![]() |
||
Sympli | States | 7 Columns Calendar Creator |
![]() |
||
Symbol Navigator soon! | Your project here |
By the way, States is open–source. I heard that some internal parts of Auto Layout for Sketch were based on its code ✨
I learned a ton from the community so it feels great to be able to give something back by sharing my knowledge and experience with others!
A few years ago I was very curious about the low-level stuff: dynamic code injection, dyld tricks, function hooking, etc. I also started to dig into implementations of libraries and third-party applications via reverse-engineering in order to figure out how they work and how I can replicate them, or (in case of system libraries) work around some unexpected behaviour.
Believe it or not, but the stuff I learned by doing all of that actually helps me almost every day. Especially when working on Sketch plugins where I need to know exactly which internal Sketch APIs to use and how.
I have a plenty of low-level libraries and research projects on my GitHub. Among them are:
I have a bachelor’s degree in Computer Science from Tomsk State University. My thesis was on building a prototype of Ruby virtual machine bytecode decompiler.
I live in Saint Petersburg, Russia. I love dogs, enjoy long walks and Asian cuisines 🥘.