Verified Expert in Engineering
Kotlin Multiplatform Developer
Andrei is a freelance Android developer with more than 10 years of professional Android experience. He is passionate about making code scalable, testable, and multiplatform. Andrei is experienced with TDD/BDD paradigms and collaboratively orchestrating large architectural code changes.
Git, Android Studio
The most amazing...
...thing I've developed is a multiplatform payment terminal emulator.
Senior Android Developer
Industry Leader in Waste Management Services
- Introduced new features and improved a slow and unreliable app.
- Led the complete refactoring to the modern Android stack: declarative Jetpack Compose framework, Dagger/Hilt, MVVM, Kotlin Coroutines, and Delegates that allowed optimizing the UI and resources for real-time geolocation-based algorithms.
- Implemented automation algorithms using real-time geolocation and spatial trigonometry, processing 1000s of parcels and trucks multiple times per second.
- Established the whole CI process in the company: Git repository, CircleCI with a local and remote build cache, uploading builds to a private FTP server;
- Split the monolith codebase into multiple Gradle modules, helping developers separate the responsibilities;
- Introduced extensive ViewModel tests to the codebase;
Senior Android Developer
- Worked on a new version of one of India's oldest and most popular cryptocurrency exchange apps from scratch using declarative UI (Jetpack Compose) and Kotlin Multiplatform for both mobile platforms.
- Participated in key decisions about architecture that would make the app scalable, testable, and stable between the mobile platforms.
- Maintained and updated the old legacy version of the app while adding new features and ensuring the stability of the old ones.
- Gained experience working with the modern UI frameworks (Jetpack Compose) and multiplatform ViewModels shared between iOS and Android.
Java Android Developer
- Created a foreground service wrapping native C++ code provided by the client into an external API that multiple partner applications could use.
- Connected a custom barcode scanner/imager of Zebra TC57 and similar devices to the Foreground Service.
- Made a test app to help the client to demonstrate the abilities of their native C++ image recognition solution to their customers and expand their presence in the mobile space.
Senior Android Developer
- Assisted in stabilizing and scaling the existing codebase of a security-sensitive financial B2B library as a part of the mobile reliability team.
- Implemented emulated payment terminals with Kotlin Multiplatform and coroutines and an emulated back-end that reduced total test execution time from around one hour to just a few minutes on all the platforms, including iOS, Android, and JVM.
- Achieved exceptional experience working across platforms using iOS, Android, JVM, and the full-stack environment.
- Featured Toggle, which allowed to dynamically control certain library features from the server, providing a safety mechanism for all the new features. Developed a microservice from scratch, along with the client versions for all the platforms.
- Introduced a breakpoints feature into the test code, allowing the concurrent legacy codebase to test faster and more reliably.
- Promoted an event-based multiplatform architecture as part of the team to at least two other teams, together with the best practices.
- Engaged to work on a popular video app with hundreds of thousands of DAUs and was accountable for everything, including building features, analytics, testing, publishing, keeping the app up-to-date, and improving the underlying infrastructure.
- Helped to establish the best dependency injection practices, decomposition patterns, multi-module projects, and Kotlin delegation, which made the codebase scalable, flexible, and testable.
- Initiated and moved the caching infrastructure towards the Apollo GraphQL cache, which made the codebase scalable, delivering optimistic UI updates across the app from a single source of truth.
- Contributed to establishing the best unit, integration, and instrumented testing practices for the team, which helped ensure the feature quality and analytics implemented.
- Worked on a mobile version of HubSpot (inbound marketing and sales software), building features that compliment the desktop experience and bringing use cases that are most valuable for users on the go.
- Worked mostly on core and infrastructure for both Android and iOS apps.
- Improved the data layer, data retrieving, and caching of the proprietary solutions and Room persistance library.
- Improved performance and reliability, reported errors and metrics, and analyzed and created an automatic alert system.
- Improved testability and scalability, integrating the best dependency injection practices into the codebase (Android).
- Encouraged independence of different mobile teams, splitting the existing codebase into different modules and repositories.
- Developed an iBeacon-enabled mobile app that notifies the user about currently available deals based on their location.
- Worked on a world-famous game conference app for fetching up-to-the-minute updates and activities planning.
- Modified Android standard apps to provide an auto-setup feature for a railway operator to its company-wide adopted tablets.
- Developed a video-processing app for a sports brand, cutting slow-motion video and overlaying a precise timestamp on each frame.
- Developed a secured money-management app.
- Worked on several Cocos2d-x games.
Mobile and Web Developer
- Developed several J2ME games.
- Worked on several CMSs written in PHP.
- Developed a Twitter client for Android 1.6.
- Developed a ringtone-creator for Android that cut audio files of several formats frame-by-frame.
- Developed several card games for Android 1.6.
- Developed a tiny CAD app for Windows Mobile 6.1.
HubSpot Mobile Apphttps://play.google.com/store/apps/details?id=com.hubspot.android
iBeacon-enabled Mobile App
Technologies: Java, iBeacon
Sport Video Timer App
Technologies: Java, C, FFmpeg
Technologies: Java, LibGDX, OpenGL
DLNA Library and Apps
Technologies: Java, C, DLNA, and AIDL.
Tehnologies: C++, Objective-C, Java, Cocos2d-x
World-famous Game Conference App
- Updated news and timetable
- Activities planning (reminder notifications)
- Map of the event
- Twitch.tv (a video platform for gamers) live streaming
Technologies: Java, REST
Android SDK, Dagger, .NET Compact, Dagger 2, React Native, LibGDX, Cocos2d-x, Ktor, KOIN
RxJava, Android API, RxJava 2, Retrofit, REST APIs, Parse SDK, Facebook SDK, Picasso, Android Universal Image Loader, Otto, Android Support Library, Firebase Android SDK, WorkManager API, NDK, Camera API
Android Studio, Android Jetpack, greenDAO, Mercurial, Git, Subversion (SVN), Jenkins, Android NDK
Mobile Development, Unit Testing, Model View Viewmodel (MVVM), Cross-platform, REST, Dependency Injection, Functional Programming, Functional Reactive Programming, Behavior-driven Development (BDD), Test-driven Development (TDD), Clean Architecture
Android, J2ME, Windows Mobile, Firebase, iOS
HubSpot, Mobile App Development, Mobile Apps, Google Material Design, OkHttp, Observer Pattern, Room, CI/CD Pipelines, Jetpack Compose, UI Testing, iBeacon, OAuth, Coroutines, Kotlin Multiplatform, Full-stack, Apollo, AIDL, Java Native Interface (JNI), Full-stack Development, Geofencing, Location Services and Maps, Performance, Minimum Viable Product (MVP), Hilt, Android Foreground Services, IPC, Image Recognition, Software
Realm, MongoDB, SQLite, Compose.io
Bachelor's Degree in Software Systems in Telecommunications Networks
The Higher State College of Communications - Minsk