I’m available for hire!
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:
|Studies for Mac||MemoryCleaner||Trickster|
|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 fullfil my need for a challenge: it’s a normal situation for me to spent a few hours reverse-engineering Sketch.app in order to figure out how it works internally so I can do the impossible possible.
Here’s a few of publicly available Sketch plugins I built recently:
|Sympli||States||7 Columns Calendar Creator|
|Symbol Navigator soon!||Your project here|
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 🥘.