Senior Software Developer with focus on iOS/Android apps and big data
- Strong knowledge of Computer Science fundamentals: efficient algorithms and data structures, their time and space complexity. Some experience with image and sound processing, Markov models and neural networks
- Mobile apps: business app and game development for iOS and Android
- Server side: experience implementing projects with scalable architecture and writing code that handles petabytes of distributed data; *nix server and cluster configuration
- Databases: SQL and NoSQL, highly scalable HBase-like databases
- Was a winner of programming contests and a member of a programming contest team in university
- Implemented large-scale web search functionality on top of an existing web crawler and 10+ PBytes of live data
- Investigated possible applications of neural networks for the exiting projects (TensorFlow and general theory / mathematics for neural networks)
- Configured and maintained clusters of servers (Puppet, *nix)
- Worked on a distributed data mining system (Selenium, PHP, OCaml, MySQL, Logstash, ElasticSearch, Kibana)
- Implemented challenging multithreaded optimizations for the core of the distributed database (C++14, OCaml)
- Led the development of more than 12 various iOS and Android projects: financial, medical, sports, social networks, restaurant and beauty salon industry, etc. Technologies used: Android SDK, iOS SDK, SQLite, GCM/C2DM / Push notifications, CorePlot, Calabash, Cucumber, OCMock, CocoaPods, Ruby on Rails, PHP, Paypal SDK, Amazon S3, Amazon EC2, MySQL, PostgreSQL, PostGIS, RabbitMQ, Redis, Rediska, Facebook Graph API, FBML, jQuery
- Estimated projects, interviewed developer candidates
- Designed scalable and maintainable architecture and API
Notable projects include CashNetUSA (iOS, Android):
- Significantly reduced the development time and the amount of bugs by designing and writing custom frameworks tailored specifically for the project, to handle network connections, models and UI objects
- Designed the architecture; led the development of iOS and Android apps; wrote automated tests
Settlers for iPhone
Wild West Guns for iPhone
- Programmed UI, graphics, game logic, AI, sound on both projects (C++, Objective C, Lua, OpenGL ES, OpenAL, iPhone SDK, Instruments, Adobe Flash, ActionScript)
- Made critically important performance and memory usage optimizations (C++, ARM assembler)
- Wrote various tools and scripts to process game resources (Microsoft Visual C++, Python, XML, Windows and Unix shell scripts); wrote a map editor (C++/CLI)
- Invented a way to automatically convert animation resources and wrote corresponding tools, which were critical for projects feasibility (Microsoft Visual C++, Photoshop scripting with ActionScript)
- PHP/MySQL developer: worked on an automated data mining tool (PHP, MySQL, a lot of regular expressions) and a backend for an online store
- ASP.NET / MS SQL developer: programmed UI, logic and database for a directory of educational institutions and employee attestation data
- Wrote several plugins for Miranda Instant Messenger (C++). Made code contributions to Miranda IM core and its base plugins.
- A Pocket PC driver for an infrared keyboard, and an application that converts formulas from TeX format to graphical representation and shows them in a tooltip in real-time during typing (written in C++ for Windows CE platform).
- Wrote a tool for batch conversion of formulas in Microsoft Word documents from TeX format to regular Word formula objects (Microsoft Visual C++, COM, Microsoft Word API) - this tool along with the keyboard driver were used by me in university to write electronic lecture notes on a pocket PC, instead of writing on paper.
- Wrote scripts for Google Spreadsheets to automate handling of information about Canadian immigrants: http://tinyurl.com/FSW14-Spreadsheet. Programmed several innovative charts to better visualize the information. Made non-trivial automated estimates on when each immigrant application will be processed by the immigration centre. Wrote a script to detect duplicates and similar entries. Made optimizations to the spreadsheet so that it loads and updates its data orders of magnitude faster.
- Prototype of a game for iPhone similar to Supaplex (C++, Objective C, OpenGL ES, iPhone SDK).
- Prototype of a live wallpaper app for Android devices (OpenGL ES, JNI, Java, C++).
- Software part of an iris recognition system (my master's work at university), C++ and MySQL.
- An application that maintains information about all music located on a hard drive and allows generating an HTML report with names of artists, albums and songs (C++, MFC, MySQL).
- MIDI file player for MS-DOS (written in 2002 on C++ and x86 assembler). At that time I didn't have any possibility to get MIDI documentation from anywhere, so I reverse-engineered a MIDI driver from an MS-DOS game and also completely reverse-engineered MIDI file format from existing MIDI files.
- 3D labyrinth game for MS-DOS. It used techniques and programming tricks similar to old Wolfenstein 3D game. Written on Pascal + x86 assembler in 2002.
- Bachelors in Applied Mathematics with Honours
- Masters in Information Science with Honours