Oleksiy Ivanov *******@******************.*** www.effectivedeveloper.com
github.com/OleksiyA
Software Engineer with 8+ years of software development including 4 years
of writing exciting connected Apps for iOS, extensive knowledge and skills
with Mobile, Cloud, Cross-platform and Embedded software development.
Technical skills:
Languages: C++, Objective-C, C, Sql, Python
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
July 2013 - Current Bromium, Cambridge, UK
OSX DATA SYSTEM
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.
Implemented refinements and performance optimization for Core Graphics and
Accessibility analyzing code.
February 2013 - July 2013 Envizio, Kyiv, Ukraine
ELECTRONIC COUPONS REDEMPTION MOBILE APP
Envizio website http://envizio.com
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.
August 2011 - January 2013 Symbio, Helsinki, Finland
HANDHELD ALCOMETER iOS APPLICATION
Alcosystems website http://alcosystems.se/product_en.html
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
Biisafe Universal iPhone/iPad App in AppStore
https://itunes.apple.com/us/app/biisafe-safety-service-remote/id561022474
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.
August 2011 - Current Independent developer
VIDEO EFFECTS AND PROCESSING APPLICATIONS
Water Droplets with Realtime Lightning and Thunder
http://itunes.apple.com/app/id464900611
DayToDark video recorder: Pumpkin's Tricks
http://itunes.apple.com/app/id472003581
Snow Live HD http://itunes.apple.com/app/id487716437
Waterize Video Live http://itunes.apple.com/app/id484648029
Cool Movies! http://itunes.apple.com/app/id518351044
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.
June 2010 - August 2011 MacPhun, Kyiv, Ukraine
VIDEO PROCESSING APPLICATIONS
Vintagio iPhone App in AppStore
http://itunes.apple.com/us/app/vintagio/id335148458
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
PhotoPal iPad App in AppStore
http://itunes.apple.com/us/app/photopal/id380312615
PerfectPhoto iPhone App in AppStore http://itunes.apple.com/us/app/perfect-
photo/id322556359
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.
May 2009 - June 2010 Shape Services, Odesa, Ukraine
INTERNET MESSENGER APPLICATION
IM+Pro Universal iPhone/iPad App in AppStore
http://itunes.apple.com/us/app/im+-pro/id296246130
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.
2010 Short term projects on fixed price and T&M terms for different
companies
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.
November 2007 - February 2009 Information Protection Center, Kyiv, Ukraine
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.
September 2007 - July 2008 Software Part of the Specialist's (5 year)
degree thesis, University of T. Shevchenko, Kyiv, Ukraine
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.
2007 Short term projects on fixed price and T&M terms for different
companies
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
Developed for La Mosca
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.
June 2005 - July 2007 Flextronix, Kyiv, Ukraine
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.
2006 Short term projects on fixed price and T&M terms for different
companies
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.
June 2004 - June 2005 Smart Mashines, Trebukhiv, Kyiv region, Ukraine
UNIVERSAL VENDING MASHINE WITH REMOTE GSM CONTROL
Successive version of the vending machine on manufacturer's website
http://www.smartmachines.com.ua/mk02.html
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.
September 2003 - July 2004 Software Part of the Bachelor degree thesis,
University of T. Shevchenko, Kyiv, Ukraine
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