Summary:
●Over * years of experience in development of Android mobile applications
●6 apps published to Play Store.
●Skilled Java and Kotlin programmer.
●Skilled in Reactive-X in Android (RxAndroid, RxJava).
●Expertise with Jetpack for Android.
●Use of MVC, MVP, and MVVM architectures in Android development.
●Developed several successful mobile applications on Android platform
●Problem-solving skills in diverse areas such as front and back-end, design, threads, UI/UX, etc.
●Knowledgeable of newest patterns like reactive programming with RxJava, Dependency Injection with Dagger 2 and realtime databases with Realm and Firebase.
●Able to fully and clearly articulate ideas, problems, and solutions with the teams
●Proficient with the integration of mobile applications with Web based applications and data stores via web services
●Work with Product Management, Delivery teams and Project Management to translate requirements into tasks for deliverables.
●Experience developing rich application UI’s.
●Experience working on-site and off-site teams and management.
●Prioritize the technical architecture and technical debt of the Android app.
●Ability to devise creative yet technical solutions within time constraints.
●Build new features to enhance the UX for consumers.
●Have strong knowledge and demonstrated experience using Android Studio.
●Adept with design patterns: MVP, MVVM, MVC, Singleton, Adapter, Command, Observer, Builder and more
●Highly skilled implementing Material Design and using the support libraries for backwards compatibility
●Experienced with data persistence private, external and on the cloud
●Well versed in Test-Driven Development, JUnit Test Cases, Performance Optimization and Integration Testing
●Provided training, mentoring and support to developers with a focus in following best practices
●Experienced in the use of many android widgets and creating custom views
●Talented in creating UIs that dynamically optimize to the screen type/ layout and updated data
●Knowledge of common workflows, including Agile SCRUM.
●Implementation of Push Notifications and Messaging with Google Cloud Messaging (GCM) and Firebase Cloud Messaging.
Technical Skills:
●Programming Languages: Java, Kotlin, C++
●Architecture & Design Patterns: MVC, MVP, MVVM, CLEAN, Singleton, Builder, Decorator, Dependency Injection, Façade, Visitor, Proxy, Mediator, Interpreter, Command
●IDE: Android Studio, Eclipse
●Frameworks: Android SDK Reactive-RxJava, RxAndroid, Firebase, JetPack
●UI/UX: Android Studio Views, Floating Action Buton, Navigation Drawer, Navigation Graph, Compose
●Dependency Injection: Dagger 1, Dagger 2, Butter Knife, Android Annotations, IcePick, Hilt
●Project Management Processes: Agile Scrum, Pair Programming
●Testing: Mockito, Unit Testing, TestFairy, Espresso, Robotium, Robolectric
●Web Services: REST, SOAP, JSON, GSON, XML, OKHttp, Retrofit
●Databases: SQLite, Firebase, MongoDB, Ream, Room
●Development Platforms: Android Platform
●Project Tools: JIRA, Kanban, Confluence, Trello, Slack Debugging JIRA LeakCanary
●O.S.: Android, Linux, Windows
●Continuous Integration: Jenkins, Travis, Hudson
●Misc Android: Job Scheduler EventBus, MapKit, Location, Google Maps, LiveData
●Version Control: GitHub Git
●Threading: Event Bus Intent Services Handler Threads Loopers Loaders AsyncTask
Work Experience:
Principle Android Application Developer
Virgin Money, Newcastle, UK / February 2021 – Present
https://play.google.com/store/apps/details?id=com.virginmoney.uk.mobile.android&hl=en_GB&gl=US
I enabled Google Pay, depositing cheques, and automatically spending tagging to make payments quick and easy. Security is ensured with fingerprint or passcode sign-in. I also added savings pots, automatic money sweeps, Direct Debits, Standing Orders, and a feature to report a lost or stolen debit card.
Roles and Responsibilities:
●Implemented new payment journey improvements using Java and MVP approach for personal and business customers.
●Conducted DNBAs investigation and limitation for 20% customers and implemented changes based on findings.
●Added new help and support fragment and removed more option menu items using MVVM architecture and Kotlin.
●Introduced new payment tab showing all payments options using Kotlin and MVVM architecture, utilizing capability matrix API.
●Redesigned transactions and implemented enriched transaction data using Ethoca API and Kotlin.
●Implemented resetting passcode feature using RxJava, Java language, MVP architecture, and TDD approach with Junit and Mockito.
●Utilized Miro board for project management and collaboration.
●Fixed various defects from test environments using Java, Mockito, and Junit.
●Utilized Butternife and Data Binding in the project for efficient UI development.
●Utilized binding to bind UI components with app logic for faster development.
●Employed MVVM architecture to provide cleaner separation of UI and app logic.
●Employed MVP architecture for easier testing and faster development.
●Utilized Java and Kotlin for efficient programming and development.
●Utilized RxJava for reactive programming and easier handling of asynchronous events.
Senior Android Mobile Application Developer
Lyst UK, London, UK / May 2020 – February 2021
https://play.google.com/store/apps/details?id=com.lyst.lystapp
Lyst is the definitive fashion shopping app. Shop the hottest items from over 12,000 of the world’s best brands.
Roles and Responsibilities:
●Programmed modules in Kotlin using MVVM app architecture for ease of maintainability and extensibility, as well as improved quality testing.
●Implemented several libraries for Kotlin effort such as RxKotlin.
●Conducted meetings for requirement gathering, planning and retrospectives according to the Scrum methodology.
●Integrated different modules using Dagger2 dependency injection to ensure separation of responsibilities and create highly testable classes and objects.
●Worked closely with the UI/UX, Testing and continuous integration team to ensure a high-quality product.
●Generated technical documentation such as high and low-level designs, test plans, security and permission configurations, and helped with de documentation regarding user interface design, wire framing and database design.
●Developed and ran unit tests following TDD best practices using Junit, Mockito and Espresso for UI testing in the development process.
●Introduced reactive programming utilizing the RxAndroid library and Retrofit support for API calls in conjunction with RxJava/RxAndroid.
●Persisted non-sensitive data with Realm database and ensured that the database was using encryption algorithms when persisting user information.
●Implemented binding services from activities and the use of communication with services using Java threading for background processes and sync adapters.
●Added several animations and transitions without of the box features and third-party libraries.
●Used Chart Boost library to help track issues and market trends.
●Configured multiple analytic tools to get valuable information on a post-install state: Crashlytics, Mixpanel, Flurry, Answers.
●Implemented Jetpack Compose to integrate navigation drawer ModalDrawerLayout component and utilize the capability of MotionLayout to update custom properties of views.
Senior Android Developer
Greggs plc, Newcastle upon Tyne, UK / January 2019 – May 2020
https://play.google.com/store/apps/details?id=com.mobile5.greggs&hl=en_GB&gl=US
The all singing-all dancing, new Greggs App has landed, and in our humble opinion, your phone isn’t smart without it!
Roles and Responsibilities:
●Implemented Custom Attribute and Custom View, reused existing binding adapters and reduced boilerplate code with MVVM databinding in MVVM architecture.
●Programmed app modules on a Kotlin Android programming platform.
●Worked with Fresso library for image management and ExoPlayer for audio-video playback function.
●Applied elements of Kotlin Flow such as coroutines to interact with the database and networking operations in repository layer in Clean Code architecture.
●Handled Dependency Injection with Hilt to various modules to perform reusability of classes and decoupling of dependencies.
●Used Mockito Kotlin and MockK TDD library to test extension functions, coroutines and other Kotlin code
●Created custom components to meet business requirements and work with the platform and API teams to define the service interfaces to support the application.
●Performed daily code reviews on new submissions using SonarQube tool.
●Utilized Mockk library to Mock a call that uses coroutines, capture and replay an argument, perform integration test cases using Robolectric and generate global coverage report using JaCoCo plugin
●Injected network modules, BLE module, and inject mocks in test framework using Dagger2.
●Developed custom and compound views to match UI/UX specifications.
●Used Bitbucket as the version control tool to commit and update the project from the server.
●Optimized Retail Finder functional module using CPU profiler, Network profile and Google Maps SDK to discover the closest store to user location.
●Used Invision for analyzing designs and collaborate with designers & product managers to iterate on the design.
Android App Developer
Game Retail Ltd, Basingstoke, United Kingdom / July 2017 – January 2019
https://play.google.com/store/apps/details?id=co.uk.game.mobileapp
Welcome to GAME Reward App! Download for all the latest gaming news, all things coming soon and available for pre order, exciting prize draws, GAME Exclusives, best deals and much more.
●Migrated from MVP to MVVM architecture to reduce and consolidate code to make use of Android Ktx plugin.
●Utlized Android NDK to compile a native C/C++ library to be used (wrapper) in an Android package and call functions from client custom SDK.
●Utilized Unity 3D and ARCore to implement the Augmented Reality features.
●Started transition to new Kotlin codebase.
●Enabled collection of analytical information and user patterns by applying Crashlytics.
●Worked with RecyclerViews to display list data effectively and with custom adapters.
●Created Dagger components and subcomponents to inject the needed dependencies into different Android app fragments, presenters and components
●Applied bridge design pattern to decouple the interfaces from implementation and hide implementation details from the client programs.
●Parseed XML data using Moshi Serialization library and displayed professional service and drivers custom ListView.
●Conducted code reviews using BitBucket and JIRA.
●Performed functional and user-interface testing using Espresso and UI Automator
Android Application Developer
Marquee Arts Ltd., London, UK / February 2016 – July 2017
https://play.google.com/store/apps/details?id=com.marquee.mobile
Marquee TV delivers contemporary, innovative and classical performing arts and cultural programs from around the world, From the latest works to established favorites, Marquee brings dance, opera, theater, concerts, original series and documentaries to the screen of your choice.
Roles and Responsibilities:
●Applied MVVM architecture with some features still implemented in MVP.
●Applied design patterns Singleton, Façade, and Builder.
●Integrated AppsFlyer and MoPub SDK to support viewability measurement and flexible Ad Network.
●Integrated ExoPlayer with the app's activity lifecycle to support backgrounding, foregrounding, and playback resumption in single or multiwindow environment.
●Added ShowcaseView library to point out feature users might not notice and added guide to special features.
●Developed user login screens and designed the Context menus based on the Android Menu Navigation, Tabbed Navigation control and Action Bar Control.
●Applied WebViews for displaying login page and integrated Javascript interfaces to handle UI interaction.
●Integrated the In-app Billing API and added mechanisms to unlock features for new subscribers to gain access to Marquee service on all supported devices, including the Marquee.TV website.
●Integrated Adobe Primetime SDK to improve quality and reliability across all functionalities, including VOD, live and linear TV for live video coverage of NCAA Selection Shows and Championships feature.
●Incorporated Krux SDK to capture people data from all mobile platforms and perform backend data mining.
●Worked in TagSoup SAX-compliant parser SDK to parse HTML content to extract relevant data for further API parsing activities.
●Integrated Google Subscribers to Marquee TV have access to their Marquee service on all supported devices, including the Marquee.TV website.
Android Developer
iPlato Healthcare Ltd., London, UK / April 2015 – February 2016
https://play.google.com/store/apps/details?id=net.iplato.mygp
The iPlato Healthcare app is an easy-to-use way of seeing your records and making appointments and ordering repeat prescriptions. Download today and start managing your health at your fingertips – anytime, anywhere.
Roles and Responsibilities:
●Parsed RestFul API calls and built UI screens for Transfer prescriptions fragment.
●Implemented custom barcode algorithm to scan Prescriptions and add price to checkout module.
●Implemented Certificate pinning and stored encrypted membership card details in keystore.
●Programmed services, notifications, and alarm manager to Set Medication Reminders.
●Integrated AndroidPlot library for creating dynamic and static charts to display weekly and monthly trends in weight and blood pressure.
●Conducted unit tests for every feature developed and isolated the tested class from external dependencies using Mockito.
●Implemented the user interface using CompoundView, CustomView, ListView, ViewPager and TabLayout.
●Analyzed and optimized UI and back-end application code for efficiency and performance.
●Created stories (use cases, technical and functional requirements) and tests.
Education
Bachelors in Computer Science