Resume

Sign in

Android,Dependency Injection, Espresso, Git, JUnit, Material Design

Location:
Seattle, WA
Posted:
October 27, 2021

Contact this candidate

Resume:

PROFESSIONAL SUMMARY

Android development experience spans 9+ consecutive years.

* **** ********* ** **** Store.

Experience in Agile SCRUM, Android Studio, Git, GitHub, Trello, Slack, Jira, and Atlassian Stack.

Experience implementing Android Jetpack components such as Room, ViewModel and LiveData.

Experience with the Kotlin programming language and hands-on configuring LiveData classes in Kotlin, applying Kotlin coroutines with architecture components, etc.

Experience refactoring and transitioning code bases as well as architectures from MVC to MVP to MVVM using Kotlin and Java.

Experience integrating RESTful APIs to provide external services to the application.

Encrypted environment configuration with sessions and user login using Encrypted Shared Preferences.

Understanding of current cloud development tools and methodologies.

Ability to architect, design, develop and test applications from scratch.

Comfortable interacting with RESTful API and data formats like (JSON, XML, etc.).

Worked with various integrated development environments (IDE)/frameworks, including Dagger2, Bluetooth, Android Studio, Eclipse, Android Annotations, Robotium test framework, Espresso test framework, Mockito, SpongyCastle cipher suites, Jenkins, JUnit unit testing, and Visual Studio App Center.

Experience covers back-end to front-end development and includes building new functions/features and

modifying existing functions/features.

Experienced using 3rd party frameworks and libraries for web services and APIs.

Expertise with ListView and adapters to load data onto lists at runtime.

Use of Localytics to find issues, retrieve statistics, and improve performance.

Work with Loopers for asynchronous callbacks with the Loading Everywhere library.

Used Mixpanel and Flurry to generate customized events in the analytics retrieval.

Actively involved in designing and implementing Business Delegate, Data Access Object, Session Façade, Service Locator and Data Transfer Object design patterns.

Developed the app to adapt to different orientations (Landscape/Portrait) and various resolutions.

Implemented full life cycle of SDLC from Analysis, Design, Development, Deployment and Testing of Application.

Creating JSON serializable interface for description of data.

Used persistent data on the device to store information already loaded for future use.

Solid computer programming background, full SDLC, OOP, OOD, and functional programming.

Familiar with Google guidelines and APIs including Material Design, permissions APIs, GCM and Firebase.

Leak Canary used to manage, trace, and fix memory leaks issue within the Android app.

Technical Skills

IDE: Android Studio/IntelliJ, Eclipse

Programming Languages: Java, Kotlin, C++, C

Databases: SQLite, MySQL, Room, Firebase DB, Realm

Architectural Patterns: MVVM, MVP, MVC

Development: Continuous Integration/Deployment, Jenkins, Circle-CI, TDD, JIRA, Confluence, Git, GitHub, SVN, BitBucket

Web Services: REST, SOAP, XML, JSON, GSON, Moshi, Retrofit, Volley

Threading: RxJava, Coroutines, Loopers, Loaders, AsyncTask, Intent Service

Testing: JUnit, Mockito, Espresso, Robolectric, Selenium/Cucumber

Android Development: RxAndroid, RxKotlin, RxCache, AndroidKTX, OkHTTP, Dependency Injection, EventBus, Handlers, Dagger, NDK, Material Design, Jetpack, Slices, Sketch, MPAndroidChart, AndroidAnnotations, ExoPlayer, VideoView, MonkeyRunner, JobScheduler, LeakCanary, Bluetooth BLE, Nougat, Otto, Timber, SyncAdapters, IcePick, Braintree SDK, ReLinker, Glide, SpongyCastle, Google Cloud Messaging, Caligraphy, Stripe SDK, AndroidPhotoFilter, Push Notification, Chromecast, Spork, Parse, Parceler, Crashlytics, Cipher Flurry, Mixpanel, Urban Airship

PROFESSIONAL EXPERIENCE

SENIOR ANDROID MOBILE APP DEVELOPER

June 2021 – PRESENT

Premera

Seattle, WA

Premera MyCare - https://play.google.com/store/apps/details?id=com.premera.mycare&hl=en&gl=US

Premera Health and Fitness: https://play.google.com/store/apps/details?id=com.premera.android&hl=en_CA&gl=US

Assigned to a dev team that works in association with effective Agile Project Management methods, exercising daily SCRUMS.

Performed technical work in Android Studio with Kotlin codebase following MVVM architecture.

Used reactive frameworks such as RxJava, RxAndroid, RxBluetooth, and RxKotlin.

Used Google GSON to parse through JSON files.

Implemented LiveData to notify views of any database changes, manage activity, and fragment lifecycles.

Used Koin for Dependency Injection and Data Binding with Observable for easy binding integration with Koin for Dependency Injection.

Wrote analytics code using Adobe to track user interactions in the app.

Worked with Firebase Cloud Messaging (FCM), which was later used to send out reminders to crew members.

Consumed REST API securely over HTTPS and Retrofit.

Integrated KOIN module to existing code for simple-to-understand DI and a well-structured codebase.

Implemented Proguard/R8 rules to both apps for better code obfuscation, smaller APK size, and enhanced security to fix warning on Google release.

Implemented new external vendors into the virtual care categories section of app to link to external links with info/services.

Involved in biweekly releases and deployment of both apps.

Worked on logic of displaying error states and empty states to user when they are not eligible for certain services.

Used Espresso to test new UI implementation or changes in code.

Used Jenkins to build and maintain CI pipelines.

Debugged and fixed access to Bluetooth settings, network connectivity, Wi-Fi Multicast reception, and

connect and disconnect from Wi-Fi.

SENIOR ANDROID APP DEVELOPER

MAY 2020 – June 2021

McDonalds

Chicago, IL

https://play.google.com/store/apps/details?id=com.mcdonalds.mobileapp&hl=en_CA&gl=US

Assigned to a dev team That inherited the project for US market from previous vendor, and assumed a leading

role taking team ownership of the task and making sure the project was successful.

Managed the build for both iOS and Android, making sure testflight upload was successful as well as Google play for BETA.

Used a consul (configuration repo) for JSON config of local changes, which was bundled in project repo.

Used Jira for task ticket generation and ticket tracking.

Created tags and release notes to pass off to External QA team for testing.

Produced multiple process documents in Confluence process docs.

Merged PR for both consul (configuration repo) and project repo. I have the most amount of PR raised. Also do a lot of PR reviews for team.

Used Adobe for push notifications.

Completed JSON file configuration every release to take core feature and enable US market as per BTA and PMO requirements.

Led stand-up calls and attended client calls.

Used MParticles tools for event handling.

Used New Relics for crash reporting and user journey of checking API calls to come up with issues reported by customers.

Created several keys and values, including SPA for US team (applied PhraseApp).

Utilized Jenkins for CI/CD pipeline for QA, BETA and DEV jobs.

Use Charles Proxy to trace API calls.

Served as Admin person for App Center (gave other team members access and uploaded AAB file to Google console).

Involved in many ticket triages and passing off to right core component team.

SENIOR ANDROID DEVELOPER

MAY 2019 – May 2020

NYTimes – Latest News

New York, NY

https://play.google.com/store/apps/details?id=com.nytimes.android&hl=en_CA&gl=US

Worked on a large Agile team that included API developers, designers, Android developers, and testers.

Worked on existing large codebase in MVVM architecture with data-binding implementation.

Migrated Spanish version of the app to Kotlin using Anko, Android KTX, JetPack, coroutines, extension functions, delegate properties and null-safety checks.

Worked on RxJava2/ Retrofit to ping API calls to the back-end server and apply map, flatmap, buffer, merge, reduce and zip functional operators to JSON data.

Used Espresso for the automated UI testing RecyclerView interactions and Mockito was used with Retrofit for mocking the API call (Mockserver).

Upgraded Google in-app purchases API and GooglePay API to buy digital access to NYT Crossword and NYT Cooking for $24.99/month.

Performed static code analysis and code review (Collaborator).

Got ‘Best sellers lists at the top of the Books section’ acceptance criteria.

Replaced old Videoview MediaPlayer API with ExoPlayer SDK to watch exclusive NYT stories and videos.

Redesigned navigation for swiping quickly across sections.

Fixed a tedious issue where some users were unable to see images render.

Improved Android Keystore program to store cryptographic keys in a container and protect key material from unauthorized use.

Replaced MixPanel implementation with Firebase push notification services to send breaking news alerts.

ANDROID DEVELOPER

MAR 2018 – MAY 2019

Hush - Beauty for Everyone

Los Angeles, CA

https://play.google.com/store/apps/details?id=com.shophush.hush

Worked with a mid-sized team that operated in alignment with an Agile project delivery methodology.

Worked closely with the back-end and designers.

Communicated with web servers using Retrofit/OkHttp libraries to display a range of brands and products in custom RecyclerView.

Refactored the architecture from MVP to new Architectural Lifecycle aware components using LiveData, ViewModel, and Room database.

Managed OOM (Object-Oriented modelling) exceptions to improve performance using Crashlytics, Leakcanary, Android Device Monitor (DDMS), and JIRA.

Upgraded existing local database from SQLite to Realm to store product list and details for offline access.

Utilized Facebook Stetho, Debug tools, Job schedulers, Services, and Android Profiler to identify issues and enhance the performance.

Made app compatible to Android O by improving the background processing limits, notification channels, battery consumption, and memory.

Improved the search UI that finds out what you are looking for and coded “Add to bag” and “checkout” user interfaces.

Added Braintree SDK and updated Stripe SDK to accept user payments at checkout for selected products.

Integrated Braze SDK base analytics library and user interface library for in-app messages, push, and the news feed.

Used Google Protocol buffers library to perform XML serialization of data.

Worked on the free/paid Subscription product flavors of the app to expose different user-stories.

SENIOR ANDROID DEVELOPER

JUL 2016 – MAR 2018

FlightAware Flight Tracker

Houston, TX

https://play.google.com/store/apps/details?id=com.flightaware.android.liveFlightTracker&hl=en_CA&gl=US

Assigned to a mid-sized team that operated in an Agile environment with daily Scrums.

Attended Scrums meetings to keep track of the current sprints.

Worked with a Model View Presenter architecture.

Applied design patterns Singleton, Factory, Facade, and Builder pattern to help with modularity and maintainability.

Updated OpenStreetMap modular tile provider system to support online and offline tile sources,

Designed notifications UI and send real-time push notification for flight alerts and airport delays with MixPanel external client SDK.

Replaced old UI with NavigationView drawer, swipe tabs and material design features to build new master screen.

Used AChartEngine ChartFactory, GraphicalActivity and GraphicalView interfaces to plot flight paths.

Programmed codehaus jackson XML converter with Retrofit configuration in service layer to get flight list and details.

Refactored legacy code to accommodate all new changes in data download and synchronization strategies to Reactive code – RxJava.

Used MobileAppTracking library for attribution analytics to measure the value of advertising partners.

Incorporated device specific content-providers and build own custom content providers based on client requirements.

Wrote unit test cases for ’Nearby flights’ and ‘real-time flight status’ presenters using Mockito library with method interactions and spy objects.

Used Apache Commons Codec to produce Base64 encode/decode mechanism for web service communication.

ANDROID DEVELOPER

AUG 2014 – JUL 2016

Discotech: VIP bottle service, guestlists, tickets

Los Angeles, CA

https://play.google.com/store/apps/details?id=me.discotech&hl=en_CA&gl=US

Worked within a Mid-sized team.

Worked on the algorithm to compare and see bottle service pricing at different venues.

Integrated ImageViewTouch library to include zoom and pan capabilities on image view widget.

Included Google Guava library to perform caching, primitives support, concurrency, annotations, string processing and I/O functions.

Coded the network layer using Volley networking library to display venue and access bottle menus in customized ListView with sticky headers.

Improved map view styles and search in any area feature.

Wrote functional integration testing using Robolectric in TDD manner.

Performed code analysis, optimization and checked Android quality control using PMD, Findbugs, Checkstyle, Gradle and jaCoCo reports.

Incorporated HockeyApp SDK for alpha/beta testing, error reporting and user feedback for the app.

Simplified communication between Activities, Fragments, Threads and Services with subscriber-publisher pattern using event bus library.

Included localization features for French and Italian versions of the application.

Used YouTube Android Player API to incorporate videos.

Applied Crashlytics to bug and app crash reporting.

ANDROID DEVELOPER

JUN 2012 – AUG 2014

Allrecipes Dinner Spinner

Seattle, WA

https://play.google.com/store/apps/details?id=com.allrecipes.spinner.free&hl=en_CA&gl=US

Small team with BDD approach.

Implemented New Relic to record custom metrics and networking.

Refactored unorganized spaghetti codebase into MVC architecture following SOLID principles.

Improved search by keyword, ingredients options UI, data-parsing in coordination with other iOS developer.

Downloaded cooking videos using DownloadManager and saved it on internal phone memory.

Incorporated Facebook SDK to share cooking triumphs with friends.

Posted Cook’s profile data to backend using RestFul web-services using AsyncTaskLoaders.

Pair programmed to call native C/C++ Code using NDK.

Worked closely with the external designer team to import the assets correctly through Zeplin web platform.

Used Android web view for loading html pages and working around cookie manager.

Added ACRA library to automatically post-crash reports to a GoogleDoc form.

Fixed critical and major bugs reported by testers on JIRA in 2 weeks sprint cycle.

Used BitBucket for source control management and continuous integration with Travis CI.

EDUCATION

Bachelor of Computer Engineering

McMaster University, Hamilton, Ontario, Canada



Contact this candidate