← Back to list

Portfolio

Flutter

● Principal developer of our flagship gaming platform and mobile clients. ● Currently has over 10+ million installs on the android platform (plus country-specific real-money clients). ● 100+ million registered users across all platforms. ● Development of new features. ● Mentoring team members. ● Code reviews. ● Resolving application crashes on customer devices, continuous integration, and overall application architecture. ● Development of a new graphical editor for custom animations used in the game (using cross-platform Flutter, Dart framework, targeting Windows and MacOS). ● Client is a multi-layer cross-platform application (C++, Java, Kotlin, JNI, Objective C, HTML). ● There are 4 layers: - Communication layer. - Cross-platform layer (shared between Windows, MacOS, iOS, Android). - Mobile layer (Android, iOS). - Then individual platform implementation layer (iOS, Android, Windows, MacOS). ● I develop mostly on cross-platform and android layers, but occasionally do some iOS/windows development. ● Android-specific layer uses Kotlin, Java, C++, Android SDK/NDK, ADT, Android Studio, JNI, gradle. ● Android application implements platform-dependent UI and also has WebViews for integration of third-party games. ● JNI is used for communication between Java and C++. ● Application supports android versions 4.x to 10.x (via support library). ● Rich UI supports fragments and is customized for phones/tablets with different screen resolutions/screen density. ● Setting up the development environment and guiding developers. ● Jenkins automated builds, ubuntu virtual machine for development, git source control, automated android UI testing with robotium. ● Integration of 3rd party partner libraries/applications. ● Creation of branded builds/applications for different verticals/vendors.

Conceptwave Software

● Responsible for J2EE architecture of the new release of application server. ● Leading the team of developers, providing guidance, support, code review. ● Design and implementation of new configuration web application (GWT, smartclient, castor) in pure Java. ● Porting configuration and logging into J2EE standard. ● Support deployments on Weblogic, Websphere, JBoss (AIX, Solaris). ● Reimplementation of metadata persistence layer with XML (xstream, Java annotations). ● Integration of openid authentication into the server. ● Implemented automated testing framework for designer application (FEST testing framework). ● Overlooking over the architecture of server / designer applications, doing code reviews, mentoring developers. ● Prototyping of designer application as an eclipse plugin with Scala language as main metadata scripting language.

Capital One

● Team leader for mobile platform team. ● Mobile platform is a foundation for Capital One Canada mobile application, used by application team. ● Code reviews. ● Mentoring. ● Architecture of platform modules. ● Roadmap. ● Techinical debt management. ● Automated testing. ● Pipeline configuration. ● Implementing features. Current projects: ● Refactoring UI tests to improve pipeline performance. ● Preparing to introduce Jetpack Compose to replace xml layouts, RxJava, Dagger with Compose UI, ViewModels.

Skills

C
C++
Dart
Java
Javascript
Kotlin
Objective C
Object Pascal
Scala
Shell
SQL
Swift

Work experience

Team Leader
03.2022 - 08.2022 |Capital One
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Team leader for mobile platform team. ● Mobile platform is a foundation for Capital One Canada mobile application, used by application team. ● Code reviews. ● Mentoring. ● Architecture of platform modules. ● Roadmap. ● Techinical debt management. ● Automated testing. ● Pipeline configuration. ● Implementing features. Current projects: ● Refactoring UI tests to improve pipeline performance. ● Preparing to introduce Jetpack Compose to replace xml layouts, RxJava, Dagger with Compose UI, ViewModels.
Senior Developer
11.2011 - 02.2022 |Flutter
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Principal developer of our flagship gaming platform and mobile clients. ● Currently has over 10+ million installs on the android platform (plus country-specific real-money clients). ● 100+ million registered users across all platforms. ● Development of new features. ● Mentoring team members. ● Code reviews. ● Resolving application crashes on customer devices, continuous integration, and overall application architecture. ● Development of a new graphical editor for custom animations used in the game (using cross-platform Flutter, Dart framework, targeting Windows and MacOS). ● Client is a multi-layer cross-platform application (C++, Java, Kotlin, JNI, Objective C, HTML). ● There are 4 layers: - Communication layer. - Cross-platform layer (shared between Windows, MacOS, iOS, Android). - Mobile layer (Android, iOS). - Then individual platform implementation layer (iOS, Android, Windows, MacOS). ● I develop mostly on cross-platform and android layers, but occasionally do some iOS/windows development. ● Android-specific layer uses Kotlin, Java, C++, Android SDK/NDK, ADT, Android Studio, JNI, gradle. ● Android application implements platform-dependent UI and also has WebViews for integration of third-party games. ● JNI is used for communication between Java and C++. ● Application supports android versions 4.x to 10.x (via support library). ● Rich UI supports fragments and is customized for phones/tablets with different screen resolutions/screen density. ● Setting up the development environment and guiding developers. ● Jenkins automated builds, ubuntu virtual machine for development, git source control, automated android UI testing with robotium. ● Integration of 3rd party partner libraries/applications. ● Creation of branded builds/applications for different verticals/vendors.
Consultant
08.2011 - 11.2011 |Imerj
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Development and bug fixing of a custom branch of Android Gingerbread open source project to support dual screen phone. ● Involved both in framework (OS) and in applications (messaging, email). ● Resolving complex memory leak, thread leak, thread locking problems.
Senior Developer / Team Lead
02.2009 - 09.2011 |Conceptwave Software
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Responsible for J2EE architecture of the new release of application server. ● Leading the team of developers, providing guidance, support, code review. ● Design and implementation of new configuration web application (GWT, smartclient, castor) in pure Java. ● Porting configuration and logging into J2EE standard. ● Support deployments on Weblogic, Websphere, JBoss (AIX, Solaris). ● Reimplementation of metadata persistence layer with XML (xstream, Java annotations). ● Integration of openid authentication into the server. ● Implemented automated testing framework for designer application (FEST testing framework). ● Overlooking over the architecture of server / designer applications, doing code reviews, mentoring developers. ● Prototyping of designer application as an eclipse plugin with Scala language as main metadata scripting language.
Consultant
10.2008 - 01.2009 |Sonatype Inc
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Research and development of m2eclipse plugin (eclipse plugin for seamless maven integration). ● Flex integration plugin. ● Development of Flex integration for m2eclipse: seamless integration of FlexBuilder IDE with m2eclipse and Maven. ● The goal of this integration is to have the same build, debug and deployment process in eclipse and command line (FlexBuilder, Eclipse, m2eclipse, Maven, JBoss). ● Development of problem reporting plugin for automated error submission from m2eclipse. ● Developing new features and fixing bugs in m2eclipse plugin. ● Development of POM editor for m2eclipse: this is a combined editor that has form-based interface tabs for high-level editing of pom.xml, and source tab that allows direct editing of xml code with code completion. ● Two-way synchronization of xml source and form contents is implemented. (Eclipse, EMF, EMF2DOM, WST).
Co-founder / Developer
02.2006 - 05.2009 |Slashid Inc
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Participated in architecture and development of identity management solution and privacy framework. ● Patented protocol allows single sign-on with untrusted identity management server. ● Design and development of J2EE server component (servlets), persistence (XML + hibernate + JDBC), user interface (GWT).
Consultant
04.2005 - 09.2008 |Dexterra Inc
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Research and development of wireless application platform/tools for various mobile devices (RIM blackberry, Pocket PC, Symbian). ● Development of RAD tools for user interface design. ● The UI design tools are implemented as an eclipse plugin, using Eclipse modeling framework (EMF) as a persistence layer and Graphical eclipse framework (GEF) as visualization/DND editor framework. Editors for various data types are implemented – user interface, workflow. ● Framework for GEF/EMF integration was created. Using Eclipse, Eclipse PDE, SWT, EMF, GEF. ● Implementation of cross-platform hybrid scripting language, using SableCC as a platform-independent compiler, parser generator and StringTemplate to generate platform-specific language translations. The idea of language was devised from Javascript. ● Code generation implementation for RIM devices using in-house template library that supports inheritance. ● Source for code generation is an xml file persisted by RAD UI design tools, and the output is the actual java code that is compiled and executed on the device. Generated code provides a significant performance advantage over interpreting the UI xml file at runtime. Deployed code size for application with approximately 100 screens (including images) is only 350 kilobytes. ● Various optimizations for generated code for RIM Blackberry (reduced generated code size 50%) ● Development of a custom UI library for RIM Blackberry (providing customized look-and-feel for an application). ● Development of custom runtime (messaging, device-side logging, persistence) that supports user interface for RIM blackberry. Using RIM JDE, Eclipse, RIM simulator. ● Customer care portal implementation using innovative Millstone pure java library for development of web applications and Hibernate to access the underlying database. ● Adding new features, components to Millstone library. ● Creation of portal database schema. Web application doesn't contain a single jsp.
Senior Software Developer / Team Lead
07.2002 - 03.2005 |Syndesis Ltd
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Creation of design documents, implementation (all parts of the system), performance analysis and consideration, evaluation and integration of third-party products for enterprise application development and deployment, managing source code tree, guiding junior developers, reviewing code. ● Configuration of standard Eclipse environment for the team of developers (using checkStyle, myEclipse, spring, profiler plugins). ● Development of a custom user registry for integration of legacy security system into WebSphere. ● Mapping of legacy security roles into J2EE roles. Automated installation of user registry into WebSphere (WebSphere Application Developer, jacl, Java) ● Development of generic graphical widget library for object listing and selection, generic navigation framework (Java, Javascript, cross-browser DOM, dynamic data model, metadata-driven, XML, castor) and integration into existing GUI. ● Integration of existing web application into WebSphere application server (WebSphere, WebSphere Application Developer, ANT). ● Network topology viewer with support for user interaction and dynamic data model (SVG with embedded Javascript, JSP, Java). ● Workflow engine and visualization, integration of workflow with existing services (Java, JSP, servlet, SVG). ● Portal interface to existing application servers, exposed as a web service (Java, Axis). ● Integration of Covalent ERS as a frontend for application, with support of automatic installation and configuration, SSL configuration (Java, shell scripting, expect, etc.) ● Fine tuning the application and http servers to reach the required throughput of 300 simultaneous users.
Software Developer / Contractor
05.2000 - 04.2002 |Syndesis Ltd
Android, Kotlin, Java, RxJava, Dagger, Retrofit, Firebase, Espresso, Mockito
● Web Interface to legacy system (implementation, deployment and support). ● This interface is accessible through a web browser (Netscape 4.x or IE 4.x, 5.x). ● Apache serves static content, while java server pages are served by Tomcat. JSP’s are using java beans, which in turn through RMI invoke server objects. ● Server objects are using direct JDBC calls for read-only access to database (Informix), and Corba interface (OrbixWeb) for operations which might modify data in the database (and in the underlying network) to support the inherent transactional nature of legacy system, which might be accessed at the same time from other applications and interfaces. ● The legacy system is using C++ as an implementation language. ● Development is performed under Sun Solaris 2.7, and deployment environments include Solaris 2.7, Solaris 2.6 and Windows NT 4.0.

Educational background

Computer Science (Masters Degree)
1994 - 1999
Moscow State University

Languages

RussianNativeEnglishNative