Oleksiy Ivanov oleksiy@effectivedeveloper.com www.effectivedeveloper.com Software Engineer with 10+ years of software development including 6 years of writing exciting connected Apps for iOS, extensive knowledge and skills with Mobile, Cloud, Cross-platform and Embedded software development. Technical skills: Languages: Objective-C, C++, C, Sql, Python, PHP Techniques: Multi-threading, Cocoa Touch, Core Data, AVFoundation, UIKit, Core Image, Cloud services, Parse, Ood, OpenGL, Pki; Boost, WxWidgets, Stl, SqLite, Mfc, Soap, PostgreSql, OpenCv, Qt, Uml, Automated Reference Counting, JSON, REST, Storyboard; Scrum Tools: XCode, Eclipse, Gcc, MS Visual Studio.Net, MinGw, Source Insight, masm32; Git, SVN, CVS, Perforce SCM, Cruise Control, Hudson, Bugzilla, Jira, Confluence, Test Track Pro, MS SharePoint, MediaWiki, MS Visio, Doxygen, Html Help Workshop, Nsis Installer, Rpm tools, CMake, Gnu Make, NMake, SCons, Shark profiler, Cornerstone, ImageMagick, Gimp, Xcode OpenGL tools, Hopper debugger SOCIAL NETWORKING APP for iOS Implemented set of new features and improvements for Social Networking iOS App related to search functionality. Implemented ÒSearch for people, places and things on iPadÓ functionality to replace legacy left hand column search. Responsible for running A/B test, analyzing test results, responding/acting on feedback and bug reports. Archived about 40% search volume increase on iPad. Implemented iPad specific functionality for Content search on iPad. Used advanced A/B testing for validating impact of the introduced changes. Implemented set of server side changes to support client side feature development. VIRTUALIZED SECURITY SYSTEM for OSX Designed and implemented new features to virtual-to-native data exchange bridge. Implemented improved algorithm for capturing and transmitting state of the virtualized application via injection code to guest application, analyzing accessibility properties and core graphics information. Performed performance profiling and memory footprint optimization for multi-process sub-system for data movement. Introduced multithreading to existing worker process and analyzed performance gains. ELECTRONIC COUPONS REDEMPTION MOBILE APP Redesigned and reimplemented iOS Application for communicating with Azure based backend. Defined and implemented structure of local Core Data cache. Optimized cache system for performance. Applied multithreaded model for interacting with persistent store. Implemented a set of customized controls and container view controllers. Made proposals about UI design of the application. Refined and optimized network interaction module for the application. Refactored and made stability utilities to be used while interfacing ObjC to C++ code of the custom WSDL-to-C++ converter. Implemented system for delivering changeable content to the application from backend using HTML(5) as layout holder. Optimized user experience and application performance while using hybrid elements in application UI. HANDHELD ALCOMETER iOS APPLICATION Redesigned and reimplemented iOS Application for communicating with external Bluetooth LE accessory. Implemented detection of accessory and support of the custom communication protocol. Implemented UI views for guiding user over the measurement process. Implemented reconnection to the accessory in case of connection errors and handling of the other unexpected use cases. Implemented custom authentication techniques while transmitting measurement data to the REST web service. DISTIBUTED MOBILE BASED SYSTEM FOR FAMILY SAFETY As a lead software designer and lead developer of the system was responsible for technical communication with the customer, provided technical guidance to developers in the team (team 3 developers). Participated in requirements capture phase and provided technical recommendations about possible backend solution to develop/or to integrate. Designed distributed system for family safety for iOS and Android devices using COTS Parse Cloud service. Implemented client-Cloud data flow system, defined Cloud data structures and notifications flow. Designed and implemented system for semi-realtime event-driven data exchange between mobile clients using Apple Push notifications service with usage analyzing and auto-throttling. Implemented smooth interaction with the Cloud service with synchronizing/caching data in local Core Data database. Implemented customized UI controls and configured look of default iOS UI components. Implemented universal application for iPhone and iPad with support for all interface orientations. Designed and implemented multi-threaded tasks execution with prioritisation's and attaining smooth UI operations. Implemented a set of testing tool mechanisms for testing, debugging and verifying operations of the software under changeable network connection conditions. Implemented automatic management of network outages and correct operation of the software in such situations. Implemented local database storage using Core Data with ability to provide limited functionality under absent network connectivity conditions. Implemented sound analyzing, video recording and image capturing operations initiated by remote requests. Added In-App purchases for subscriptions in iTunesConnect, implemented basic validation of the In-App receipt and verifying receipt via Apple server, implemented storing payments history on the Cloud. Provided guidance for adding application in iTunesConnect and was responsible for submitting application for Apple AppStore review. Performed review of the functionality and performance of the system and provided recommendations about areas for improvement. LOCATION TRACKING AND ACTIVITY ANALYZING APPLICATION Movescount iPhone App in AppStore http://itunes.apple.com/us/app/movescount/id465054490 Implemented importing and exporting location data from/to GPX file for the Track recording iPhone application. Implemented recording location data to GPX file and playback location data from GPX file for debug, demonstration and automated testing purposes honoring locations timings and with adjustable playback speed. Implemented UI Automation test JS scripts for performing automated basic acceptance test of the application. Performed performance profiling, detected heaviest functions and redundant code. Optimized some routines of the application. Performed profiling of the memory consumption of the application. Investigated balanced approach between performance and memory consumption for Core Data related logic of the application. Responsible for preparing the application and updates of the application for the submissions to the Apple AppStore. Refined Objective-C wrapper for using sqlite instead CoreData in the application for the purpose of attaining better control over memory management and for faster transitions to latest database scheme. Implemented custom map overlay views using incremental drawing techniques. VIDEO EFFECTS AND PROCESSING APPLICATIONS Designed and implemented a set of iOS applications for video processing. Implemented realtime video processing with video capture, video preview and recording in full HD resolution on supported devices. Implemented gallery of the movies made by user. Implemented video sharing to YouTube, Facebook, Email, Camera Roll. Implemented image sharing to Facebook, Imgur, Email, Camera Roll. Implemented basic socializing features to the applications. Implemented displaying AdMob advertising in the applications and crosspromoting other applications. VIDEO PROCESSING APPLICATIONS Redesigned application for video editing. Reimplemented several part of the application using the AV Framework to increase speed of the video processing and enlarge set of supported input video and audio formats. Converted existing video processing algorithms from RGB to YCrCb color format. Rewrote calculation intensive parts of the code, implemented additional lookup tables, optimized speed of execution and memory consumption of the application, eliminated floating point operations from processing functions. Implemented producing reverse movie with reasonable performance, implemented producing movie with variable acceleration or deceleration rate. Investigated utilizing NEON instructions set for increasing speed of processing video and for increasing speed of converting video from YCrCb to RGBA. Implemented resizing video and cropping video features for the application using AV Framework methods and custom software libraries. Performed porting of the application for post-video processing from iPhone OS 3.X to iOS 4.2. Added support for HD 720p video. Added new effect, enlarged set of supported timescales for the application. Implemented sharing video to YouTube, Facebook and Twitter (via TwitVid) social networks. Implemented YouTube browser for browsing user-generated content from inside the application. Implemented fast and encouraging submission of the user-generated video content to contests. Implemented version of the application for iPad devices. Implemented new features variable speed of the video, sound fade and sound mix, reversed movie. Implemented direct Core Video Pixel buffer to OpenGL texture transformation in iOS5 devices for gaining significant performance increase. Converted parts of the processing algorithm to vImage functions, including alpha composing and convolution processing. IMAGE EDITOR APPLICATIONS Designed and implemented the user interface code and code of the underlaying software model of the iPad application reusing parts of the existing code for image processing. Implemented unlimited undo/redo feature with recording a full state of the application. Designed and implemented custom controls, crush reporting and logging utilities for the application. Performed optimization of the memory consumption of the application and speed optimization. Increased maximum allowed resolution of the image that can processed by the application. Investigated usage of the OpenGL hardware accelerator for the purposes of an image processing. Implemented vignette adjuster, resizing of the image, applying art frames for the image with changeable parameters, red eye removal and Òspot healingÓ tools. Implemented animated transition between image representations. Implemented custom toolbars, progress bar, list of images in docs with dynamic previews and other controls. Implemented integration with Facebook, Twitter and Flickr social networks for the purposes of sharing images and promoting the application. Designed and implemented several features for iPhone branch of the Image Editor. INTERNET MESSENGER APPLICATION Designed and implemented a set of new features for the iPhone/iPad application in the top ten of the Apple Store's social networking category: background wallpaper, animated emotions, copy&paste, multithreaded loading, fast loading mode. Investigated the application performance using Shark, gdb scripts and debug macroses and performed speed optimization. Promoted balanced approach for speed vs memory consumption of the program. Performed preparing of the application for the submitting to the Apple Store. Ported the application from iPhone OS2 to OS3.0 and to OS3.1. Established the continuous integration system based on Hudson for automated building of the iPhone application for test and release purposes. Ported the application to iPad (iPhone OS3.2). Performed refactoring in order to build the universal application for iPad and iPhone, iPod targets. Redesigned UI of the application for the hardware specification of the iPad. Ported the application to the iPhone OS4. RECORDS MANAGEMENT PROJECT Designed and implemented the program for collecting specific data, parsing data in flexible formats using regexp, storing data in the database, organizing and sorting saved data, exporting data in certain formats, generating results of the statistical analysis. Implemented the feature for generating periodic reports about the data flow and the certain parametres of the data over the time. Used Python language and Sqlite database. SECURE CLIENT-SERVER DATA PROCESSING SYSTEM Designed and implemented distributed system for client-server secure data exchange with authentification, encryption and data processing based on PKI and symmetric algorithms. Designed a set of classes for use in the system, integrated in-house written source code with the code that is generated by the ASN.1 compiler and with third party source code. Wrote the ASN.1 definitions for custom certificates extensions and for other purposes. Wrote and debugged server side software. Built the set of tools for initialization, debugging, testing, logging and troubleshooting of the software. Implemented client applications for different roles in the system (user, support personnel, registering clerk, administrator). The programs are written to run on Windows 2000, Windows XP and Linux Fedora. Wrote and maintained the SDK for integration the system by external programmers with third party software. Wrote user guides, technical description and API description documents. Wrote and put into practice in the programmers team a set of software process documents and rules. Held a team trainings about source control system, team collaboration environment, corporate code writing and documenting guidelines. Introduced new development tools and techniques. Promoted usage of the continues integration and remote desktop tools in the software development process. MODELLING PLATFORM Designed flexible platform for modelling processes. Implemented extensible framework that allows integration with the purpose-built calculation, visualization, model analyzing and custom modules. Wrote visualization module with features: 1D, 2D and semi-3D visualization while modelling session is running or using modelling data from external source. Implemented value-to-colour, isoline, vectorized and three-dimensional data representation. Elaborated data representation and settings storing format that is based on XML, custom XML+ZIP or XML with linked XML+ZIP packages that allows fast organizing of a large data arrays. Designed software module for importing and exporting data to HDF5 format. BLUETOOTH MONITORING SYSTEM Designed the application for tracking and storing the bluetooth devices presence and activity. Performed software design, implementation, debugging and deployment for the target platforms Windows, Windows Mobile Pocket PC, Smartphone 2003, 5 and 6. Implemented separate desktop application for analyzing and representing the gathered data. Integrated the web service for data exchange with the server during runtime. Designed the SqLite-based embedded database for storing gathered data. Performed optimization of the database module on the target devices. LOCK APPLICATION Designed and implemented the application for the mobile phones for a gaming rental agencies that completely prohibits the usage of the mobile phone in other ways than expected by the owner. Only predefined set of applications and midlets can be started by the end-user. Messaging, voice calls and accessing the phone settings can be blocked by the application depending on the build configuration and application settings. Wrote the program versions for the Symbian S60 2nd, 3rd editions and the Windows Mobile Pocket PC mobile devices. FULLSCREEN VIDEO CALLER APPLICATION Implemented the application that changes the behavior of a mobile phone, replaces the standard reactions for the set of events and creates new events. Performed design, implementation and documentation writing. Maintained the versions of the application for Symbian S60 2nd and 3rd editions. PODCATCHER (RSS READER WITH AUDIO DOWNLOAD AND PLAYBACK FEATURES) Rewrote the Java Me application in C++ language for Symbian S60 platform. Performed redesign, implementation and documentation writing. Built the installation packages with support for 2 languages and 2 platforms (Nokia S60 3rd and 2nd edition). MOBILE TRACKING DEVICE WITH GSM MODEM AND GPS/GLONASS RECEIVER Wrote the BSP, the core software, performed board bring-up and tuning. Wrote drivers for sdio card, GSM modem, nmea compatible gps receivers. Established communication of the device with the control center using GPRS, SMS and CSD bearers. Designed and implemented communication protocol with error detection. DECT CORDLESS PHONE WITH ADVANCED INFORMATION FEATURES Designed state machine for the SMS operations. Provided performance and footprint optimization using review of the intermediate assembler code, profiler and self-written debug macros. Performed debugging using jtag debugger and emulator with involvement of the gdb scripts. Refactored the build system and configuration management system. Implemented 4 build configurations. APPLICATION FOR 'TCL' AND 'C' SOURCE CODE GENERATION Redesigned the prototype using the model-view-controller pattern. Refactored existing source code. Rewrote 28 engine and Ui clases, implemented Unicode support. Implemented the xml-based configuration, logging and journaling features. Provided the user with an opportunity to change settings of the process of Tcl script creation. Wrote the utility for the source code generation for the specific Menu State Machines from the Xml definition file. UNIVERSAL CIPHER FOR SYMBIAN SMARTPHONE Created bearer-independent message type for secure data exchange via Bluetooth, GPRS and SMS. Ported cryptographic algorithm AES to the Symbian OS (Nokia Series 60). Performed speed and memory footprint optimization. Designed system prototype with speech encryption and data encryption features. Performed integration of the cryptographic, user interface and custom message type software units. VISUALIZATION OF A PROCESS AND DATA EXCHANGE PORTABLE APPLICATION Developed portable Gui application for embedded devices using Qt library. Utilized Linux system (Pda Zaurus CL-3000) for rapid application development and debugging. Established Internet connection on the target system using external GSM modem. UNIVERSAL STAND ALONE USER CONSOLE Wrote the software and hardware specification for the system. Performed board bring-up and hardware tuning. Established connection with the PS/2 keyboard, 40x4 character Lcd, host system (via Rs-232), external I2C Eeprom memory and Rtc. Implemented the BSP and drivers for the board. Wrote the example ÒText editorÓ application for the target system. UNIVERSAL VENDING MASHINE WITH REMOTE GSM CONTROL Determined the cost-effective set of software and hardware development tools. Performed coding in C/Assembler and integration with third-party libraries. Debugged software and hardware using VSM Proteus Emulator and Microchip ICD2 debugger. Established full-featured payment system including bill validator, coin validator and security tokens. Implemented remote firmware upgrade module via GSM network. APPLICATION FOR REMOTE CONTROL OF THE VENDING MACHINES Designed and implemented Windows application for control of the vending machines over the external GSM modem that supports GPRS, SMS and CSD bearers. Performed design and implementation of the database that holds statistics data for each vending machine. Implemented visual notifications about the status of the remote machines. Integrated the alarms system with the corporate email list. FULL-COLOUR LED SCREEN WITH OPTICAL LOOPBACK Designed algorithm for control the light-emitting parameters of a led using the optical loopback. Provided investigation of the control of the led by pwm current and its influence on a led's endurance. Implemented software algorithm for achievement the 24-bit color depth using low cost hardware parts. Designed scalable modular structure of the led screen using Ad Blackfin DspÕs and Pwm drivers. POLARIZATION DIFFERENCE IMAGING Designed the Mueller Matrix Imaging Polarimeter for use in medical, industrial and scientific applications. Achieved about 5% error in the measurement of the Stockes vector spatial distribution. Performed mathematical numeric and symbolic computations. Designed the special 2D case of the theory of polarization difference measurement and error minimization related to the experimental setup. Established optical equipment: He-Ne laser, video capture device, polarizer, interferometers, photo-electronic multipliers. Performed high level hardware design for custom video capture equipment, data communication channels, motor control and optical sensors. Provided implementation and integration of the software units written in C++, C and Assembler. Wrote video processing unit using Vfw and DirectShow backend. Wrote the driver for the custom video capture device in assembly language. EDUCATION September 2004 Ð June 2008 (with interruption, one year effective) Radiophysics and Electronics, Specialist Degree, University of T. Shevchenko, Kyiv, Ukraine. Specialist's thesis is about modeling of the electromagnetic field in 3D space by solving FDTD equations and writing software application for windows that perform these calculations. September 2000 Ð June 2004 Radiophysics and Electronics, Bachelor Degree, University of T. Shevchenko, Kyiv, Ukraine. The specialization is quantum electronics, bachelor's thesis is about automated measurement of the polarization parameters of light in 2D coordinates and writing software for devices involved in experimental setup. September 1996 Ð June 2000 Automation of the industrial equipment and operation of CNC equipment, non-university diploma, Technical professional school, Kremenchuk, Ukraine. Keywords: Live Effect, Realtime, Video, Cocoa Touch, AVFoundation, Core Data, Quartz Core, Core Graphics, UIKit, Core Animation, iTunesConnect, AppStore, iOS, iPhone, C++, Parse, Cloud, Core Image, JSON, Storyboard, OpenGL, GPU Image, StackMob, Audio Session, Core Image, iCarousel, Jira Miobile SDK, Crush reporting, symbolication, In-App, UI Automation, Soap, JSON, Test Flight Oleksiy Ivanov -1- of -6- oleksiy@effectivedeveloper.com