Post Job Free
Sign in

Michael Bonessi - Android Developer

Location:
Austin, TX
Salary:
95
Posted:
July 07, 2020

Contact this candidate

Resume:

Michael Bonessi

Senior Android Developer

Contact Information

737-***-****

adeetg@r.postjobfree.com

Tech skills

Kotlin Java TDD Firebase RxJava/RxKotlin Dependency Injection Architecture Agile Bluetooth BLE Restful API Retrofit Volley Parsing LiveData Cipher Restful web services Security Multithreading Room Database SQLite Database Continuous Integration Travis CI Version Control System Git GitHub Gitlab Bitbucket UI/UX Material Design Firebase Realtime Database Builder Pattern Firebase Crashlytics Firebase Analytics Factory Pattern MVVM MVP Espresso AndroidX jUnit Roboelectric Mockito PowerMock Test Automation RSA/ESA Dependency Injection Dagger Factory Adapter MVP MVVM Façade BLE

Summary

5+ years’ experience with native app development for Android.

2+ years’ professional coding experience in Kotlin.

Experience in Wireless device to device communication standards.

Deep understanding of memory management, file I/O, network programming, and multi-threading.

Expertise with TDD, unit testing, CI-CD, DevOps tools and processes.

Experience working with web services and collaborate with Back end engineers.

Extensive hands-on experience creating custom UI controls implementing Material Design.

Proficiency designing protocols, implementing delegate interfaces, and performance optimization following SOLID principles.

Android unit testing frameworks (JUnit, Robolectric, Mockito2, Powermock, Espresso etc.).

Experience interfacing with RESTful and SOAP services and other backend APIs.

Actively engage with developers across a range of disciplines.

Solid understanding of OOP, industry standard design patterns and data structures.

Experience with cloud message APIs and usage of push notifications.

Track record of shipping numerous successful products to the Play Store and drive business requirements across the SDLC.

Experience

Client: Cox Auto Inc.

Position: Senior Android Developer

Location: Austin, TX From: June 2019 - present

Stockwave: https://play.google.com/store/apps/details?id=com.vauto.auctiongenius&hl=en

SnapLot: https://play.google.com/store/apps/details?id=com.homenet.snaplot&hl=en

DigitalLot: https://play.google.com/store/apps/details?id=com.homenet.digitallot&hl=en

Provision: https://play.google.com/store/apps/details?id=com.vauto.provision&hl=en

Contribution:

Contributed with several projects across the organization. Worked on a team of 15 members including 4 QA, 6 android developers and 5 iOS developers.

SnapLot/DigitalLot: Interactive inventory management app for used car dealers to better keep track of the vehicles they have on their lots. Vehicles can be added using the camera to scan the VIN of the car to auto populate the data. Other features include a 360 camera for both interior and exterior views of the vehicle.

Provision/Stockwave: Another way to help manage inventory but also search for vehicles to buy and add to their lots. These apps have a few additional features that include pricing strategies for each vehicle based on mileage, vehicle condition, CarFax information, and even searching for ongoing auctions and vehicle locations at each auction for more opportunities to get vehicles to turn a profit on

Helped create new features/overhaul existing code to meet current standards of android development. Aided the team to help them bring quality products to consumers.

Participated on code reviews strategies to ensure and stablish best practices and enforces code quality for new developers and Jr Developers across several projects.

Implemented Material design to new activities/dialogs to keep the applications up to date with common android practices

Refactored code base to apply new architecture design patterns that follows best practices for Android applications

Worked closely with QA department to ensure uses cases scenarios completes on time

Added unit tests using Junit/Mockito to add better coverage to the code

Implemented firebase remote config to hide/show features for users

Contributed with language localization using string resources Wrote scripts to aid in code generation/gather strings for translations

Debugged and tracked backend functionality with several teams piers

Debugged API requests/responses through the Charles web proxy

Worked with Architecture components from Android Jetpack library like Room databases

Migrated content provider to updated room databases

Migrated existing applications from HockeyApp to AppCenter to get test builds out to QA

Closely worked with UI/UX designers to apply custom views and depending uses cases inflate programmatically views/layouts based on API responses

Integrated and consume firebase push notifications and hold a live database view

Collected information from Crashlytics to track crashes and fix bugs before they’re officially reported

Integrated several design patterns like DI with the implementation of Dagger framework

Implemented dependency injection to decouple the relationships in classes with dagger

Helped research which events are logged using Google Analytics and BigQuery

Client: Strava Inc.

Position: Senior Android Developer

Location: San Francisco, CA From: May 2018 – June 2019

Strava: https://play.google.com/store/apps/details?id=com.strava

Contribution:

Collaborated with a cross-platform teams compose of 12 developers, developed in a Agile methodology and having Bitbucket has main repository and for CI/CD a pipeline integration of Jenkins.

Transition the application from old material design to new JetPack components using slices, navigation, paging, layout, Animation and transitions.

Design new features and perform migration from Java into Kotlin language with coroutines, multi-platform support, extension functions and null safety checks.

Use Android Plot graph library to display distance, pace, speed, elevation gained and calories burned in pie chart and bar-charts.

Replace volley library with RxKotlin, retrofit library to make asychrous API calls to get user-profile and monthly stats data in custom view.

Implement Koin dependency injection to create and inject network models, view model modules and analytics modules.

Write TDD test cases for new features using Mockito2, DaggerInject and RxTestScheduclers.

Architect and code user story from scratch using new Architecture components using LiveData, ViewModel and Room database.

Bug fix critical issues relating to Android Wear modules and notifications.

Work on Starva Bluetooth BLE SDK to design module to pair with Bluetooth devices and transmit large bytes of attributes.

Include Google Play billing service to buy subscriptions, digital contents and unlock advance features.

Pair-program to develop the feature, write TDD test cases and write algorithm for Strava distance tracker and mile counter.

Schedule and manage large downloads in background with auto retry support using WorkManagerAPI and replace intentservices implementation.

Configure Firebase console to create personalized messages and write frontend code handle these messages alognwituh notification channels feature.

Client: Stash Financial

Position: Mobile App Developer

Location: New York City, NY From: Mar 2017 – Apr 2018

Stash: https://play.google.com/store/apps/details?id=com.stash.stashinvest

Contribution:

Large cross functional team, planning poker scrum estimation, 2 weeks sprints, Gitlab, TeamCity CI, Trello

Create API request to generate the token request from client app and send encrypted user data with RSA/ESA asymmetric algorithm to backend.

Work in large codebase with MVVM data binding library to declaratively bind UI elements, notify views of any database changes and manage UI-related data in a lifecycle-conscious way.

Integrate Apptimize sdk to target a feature or customized UX to a certain segment of users, A/B testing and Release Management.

Include web push, email, and in-app messages using OneSignal SDK.

Include Stripe payment mechanism to transfer funds to stock portfolio and buy additional products.

Perform AIDL define the programming interface that both the client and service agree upon in order to communicate with each other using interprocess communication (IPC).

Implement NDK to embed C or C++ (“native code”), reuse existing libraries and build Java Native Interface (JNI).

Orchestrate composite sequential REST API calls using functional reactive programming and avoid ‘callback hell’ issues.

Perform 80% code coverage integration testing using Roboelectric and 70% automated UI testing using UI Automator library.

Gradually load list of stocks, 100+ financial news and articles on demand from data source into recycler view with Paging library.

Create a compound view to helpful guides and articles about investing and budgeting.

Improved performance avoid memory and remove OutOfMemory exception Activity feed is now on each portfolio screen.

Implement support for multiple dex files using MultiDex library.

Client: Poshmark, Inc

Position: Native Android Developer

Location: Redwood City, CA From: Jan 2016 – Feb 2017

Buy & Sell Fashion: https://play.google.com/store/apps/details?id=com.poshmark.app

Contribution:

Design main app screen using material design principles using coordinator layout, Recyclerview, collapsable toolbar and bottom-up sheets to display trendy fashion, shoes, beauty, jewelry, watches and accessories. Worked in a medium size team, following an Agile like methodology, and apply Pair-programming. For CI/CD we used Jenkins CI and data repository with SVN.

Integrate Snap Creative Kit SDK to let users send photos or videos to the Snapchat camera preview and use Snapchat tools .

Work on Braintree Client with Encryption Library to securely collect payment information from customers and customize checkout experience.

Pair-program to integrate Mitek MiSnap to capture ID documents like passports, id cards, etc. to verify users' identities.

Perform vital task like HTTP transport, error handling, authentication, JSON parsing and media download/upload using Google GData client Java library.

Use SignPost oAuth library to sign HTTP messages and request tokens from an OAuth service provider.

Create modules, components and custom scopes using Dagger2 and perform loose coupling.

Write code on network module to implement Okhttp caching mechanism and use Mockserver to mock API responses.

Validate asynchronous operations whose results affect subsequent operations in a UI test using Idling Resource Espresso.

Work existing Clean code architecture in MVP and create shopping module, add_to_basket module and customer_profile module.

Provide backwards-compatible notification API with Wear and Auto support, media playback and routing.

Develop Compatibility APIs for checking and requesting permissions in app

Client: Cover Inc

Position: Android App Coder

Location: New York, NY From: Feb 2015- Jan 2016

Insurance in a snap: https://play.google.com/store/apps/details?id=com.cover.android

Contribution:

Tech Environment:

Collaborated in a medium size team with remote developers around 6 developers has part of the team. We followed using Extreme programming and incorporated a TDD. I has de ability to be part of daily Scrum meetings and interact with other developers.

Integrate tailored push notifications with analytics and deep linking using UrbanAirship.

Drop-in analytics to track user sessions, attributes, and in-app metrics.

Set up authentication, analytics, and offline data sync using AWS.

Data serialization libraries are used in apps for parsing and packaging data in different formats like JSON and XML for storage and communication.

Create custom content provider to read contacts and read own contact card.

Manage ongoing maintenance to fix bugs, add functionalities, and improve User Interface.

Utilise advanced functions of the Java software development kit (SDK) in order to optimize the flexibility of apps to different mobile devices.

Utilise Facebook Stetho, Charles Proxy API, Memory profiler, HierarchyViewer and Android Profiler to identify issues and enhance the performance.

Work on jsoup Java HTML Parser library to use DOM, CSS, and jquery-like methods and implement the WHATWG HTML5 specification, and parses HTML to the same DOM.

Integrate Drobox API to achieve cloud-based storage functionalities.

Work on the application landscape variation including development, testing and production and set up and configured SQLite database.

Fully participated in the relevant scrum events; planning and estimation, daily scrums, sprint reviews, and retrospectives.

Education

Bachelor of Science, Computer Science

University of North Carolina at Charlotte



Contact this candidate