Software Developer in Belgrade, Serbia
Senior iOS Developer2017 - 2018OnyxCorp (via Toptal)
Technologies: Objective-C, Cocoa Touch, Qt/C++, End-to-end Encryption, Signal, Realm, Objective-C, Swift, Xcode, POSIX, Xcode Server
- Worked on MVP for an enterprise end-to-end communication software leading product development and engineering for iOS.
- Developed a product management process in collaboration with designers and developers.
- Deployed a CI pipeline using Xcode Server.
- Consulted designers on UX and Apple HIG best practices.
- Implemented encrypted chat protocols using a modified Signal protocol (Double Ratchet Algorithm and Diffie-Hellman key exchange with post-quantum cyphers).
- Developed an extensive test coverage for the encryption library using XCTest.
Technical Screener2017 - 2017Toptal
- Made key decisions in screening hundreds of highly-skilled software developers from all over the world through a three-step screening process (online timed algorithmic test, live coding interview, and test project review).
- Helped develop algorithmic challenges used to test potential candidates.
Full-stack Developer2016 - 2017BlipMe (via Toptal)
Technologies: Node.js, iOS, Swift, Objective-C, MapKit, MongoDB, PubNub, Keystone.js
- Worked on the project as a solo full-stack engineer.
- Took over the existing legacy codebase and almost completely revamped the front-end as well as added new features to the back-end.
Developer2015 - 2016SeatCrawler (via Toptal)
Technologies: Reverse-engineering, Python, Flask, iOS System Internals, Jailbreak, React.js
- After reverse-engineering Couchsurfing mobile app as a personal project, I published a blog article about reverse-engineering private APIs which quickly gained popularity and started a discussion on this topic in the industry.
- Reverse-engineered and found ways to programmatically solve most common Captchas.
- Built proof-of-concept full-stack web apps to consume private APIs directly or through a proxy back-end.
- Built a cluster of jailbroken iPhone device to automatically intercept and decrypt APNS messages and serve security tokens via an API.
Developer2015 - 2016TurnTalk
Technologies: Objective-C, Parse, iOS, End-to-end Encryption
- Developed an MVP for the product, helped define the features required, and contributed to the design of the app.
- Designed and implemented a custom protocol for end-to-end chat message encryption.
- Designed and implemented custom UI animations.
CEO2014 - 2015Traffle
Technologies: Objective-C, Parse, Flickr API, Facebook API, UI Animations
- Designed and built and MVP for a location-based social travel iOS app.
- Worked on this startup in a team with a designer while also handling engineering, marketing, and business development.
- Featured on Producthunt, Betalist, PSFK, Skift.com, and other industry-related sites.
Software Engineer2012 - 2013Amadeus
Technologies: C++, STL, Boost, Python, Shell Scripting, Jenkins, Scrum, Kanban, Mercurial
- Worked on data management infrastructure, in particular on a data management tool able to provide real-time data mining features with predictable throughput despite unpredictable workload.
- Developed new database engine features such as SQL-like predicate matching, new data storage representation, and additional tools and scripts for maintaining infrastructure.
Software Engineer2010 - 2011MegaFon
Technologies: Python, PyQt, Qt
- Developed various software in Python/PyQt used for automation of remote mass-integration of new GSM and UMTS sites into the radio network as well as for changing parameters of existing sites.
Software Engineering Intern2007 - 2009RET Research Institute (Moscow State Technical University)
Technologies: C, POSIX API, Network Programming, MySQL, C++, Qt, OpenGL
- Developed software infrastructure for a radio telescope system on the Linux platform.
- Designed a C/POSIX API and client-server system for inter-communication between modules through a MySQL database.
- Developed GUI applications used for monitoring and controlling of system parameters (using C++/Qt)
- Extended and managed internal software development processes. Provided consulting services.
Software Engineering Intern for openSUSE2008 - 2008
Technologies: Python, RPM, GTK, Shell Scripting, Qt
- Ported and further developed automatic application crash reporting software for Linux (written in Python).
- Blipme (Development)
BlipMe is a community of students who work together to share what’s happening on campus in real-time in order to make college life better for everyone.
- Traffle (Development)https://betalist.com/startups/traffle
Traffle helps you to skip tedious trip planning phase to provide you with a pristine experience of spontaneous travelling. We believe in eliminating travel planning by providing our users not only with suggestions for destinations where to travel based on the time and money budget, but also with recommendations for interesting people they could meet there.
I built an MVP of the app in collaboration with a designer, and pursued this project as a startup, doing business development and marketing.
- TurnTalk (Development)
TurnTalk is all about local and secure communication app which strives to make it easy and comfortable to learn about and get in touch with the people around us.
I developed an MVP for the product, helped to define the features required, and contributed to the design of the app. As a part of the project, I built a custom encryption protocol for end-to-end message encryption.
- Reverse-engineered Amazon App Store API (Development)https://github.com/nderkach/amazon-app-store-api
Reverse-engineered Amazon App Store API (test project) using Flask and HTML5/jQuery front-end.
- A Tutorial for Reverse Engineering Your Software's Private API: Hacking Your Couch (Publication)Reverse engineering and hacking are usually related to malicious activities that result in sleepless nights of engineers responsible for system maintenance. Reverse engineering is a tool that we can utilize to find the flaws and improve our software in many aspects. This article shows us how to use these techniques to learn more about different implementations of web API.
- Nikolay is a mentor in the Toptal Global Mentor’s Program. This program is a partnership between Toptal and General Assembly to provide high quality mentorship for students from minority and low income backgrounds who are looking to begin their careers as professional software engineers. Nikolay shows commitment to diversity in tech by mentoring a General Assembly student every week for a year, covering everything from coding tips and tricks to advice on making it in the industry.
FrameworksiOS SDK, UIkit, Cocoa, Core Location, MapKit, iOS Frameworks, Address Book, Flask, Cocoa Touch, Core ML, Core Data, Jinja, Boost, MLKit
Libraries/APIsMapBox iOS SDK, CocoaPods, Xcode Server, Facebook Pop, Core Animation, Facebook SDK, PubNub, Node.js, Parse SDK, Facebook API, Flickr API, Sockets, Flask-RESTful
ToolsInterface Builder, Sublime Text, Git, Xcode, Fastlane, Mongoose, Mercurial, Vim Text Editor, Webpack, MATLAB, Travis CI, Jenkins
ParadigmsApp Development, REST, Kanban, Agile Software Development, Continuous Integration (CI), Test-driven Development (TDD), Scrum
PlatformsParse, Heroku, iOS, MapBox, Mobile, MacOS, Linux, Firebase, AWS EC2, Amazon Alexa, Docker
StorageMongoDB, Realm Database, PostgreSQL, MySQL, Realm, SQLite
OtherSignal Protocols, Applied Cryptography, iOS Cryptographic Services, Cryptographic Protocols, Cryptography, Reverse Engineering, Apps, Real-time Locating Systems (RTLS), Maps, UI Kit, Security, iBeacon, Mobile App UX, Mobile UX, Deep Learning, Artificial Intelligence (AI), Project Management, Machine Learning, Network Programming, Music
- Master of Science degree in Electronic Engineering2005 - 2011Bauman Moscow State Technical University - Moscow
- Bachelor of Mathematics degree in Applied Mathematics2007 - 2010Bauman Moscow State Technical University - Moscow