Craig Tatenda Vitirinyu - Senior Android Developer
Phone: 845-***-**** Email: adiifr@r.postjobfree.com
Professional Summary
* ***** ** ********** ** the IT field
5+ years of experience in Android Application Development
5 published apps in the Google Play Store
Strong knowledge and demonstrated experience with Android Architecture Components as well as design patterns like MVP, MVVM, MVC, Singleton, Builder, Factory
Experience with Android third-party libraries like Retrofit, Picasso, Glide, Location API, Google Maps, Stripe, PayPal, Dagger, Android Annotations
Well versed in newest patterns like reactive programming with RxJava and Dependency Injection
Strong understanding of OOP, software design patterns and SOLID design principles.
Experience with Agile and working in teams using Scrum
Hands-on experience with Java and Kotlin application development
Great team player with ability to work in both large size and medium sized teams.
Strong ability to work with teams from other departments to achieve cross-functional goals and meet the specified requirements
Strong written and oral communication skills
Excellent communication skills to ensure accurate translation from design to implementation.
Experience with Mockito, Junit, Espresso and simulated design patterns to test and develop applications using TDD approach
Hands-on experience with debugging and profiling Android applications
Ability to mentor less experienced team members on technical matters and implementations
Well versed in Material Design guidelines
Ability to problem-solve and manage multiple priorities in fast-paced, deadline driven environments
Ability to understand and interpret business requirements and effectively translate them to high quality, scalable implementations.
Android application performance testing utilizing Android Studio Profiler, Leak Canary etc.
Hands-on experience with continuous integration tools like Jenkins and Travis CI
Hands-on experience with RESTful API consumption using from RESTful web services
Adept with development/design standards and best practices in Android
Android Projects Summary
Healthfirst NY – New York, NY
Zillow - Seattle, WA
Kayak - Cambridge, MA
Marriot International Inc - Dallas, TX
Delivery.com - New York, NY
H&M - New York, NY
Skills Summary
Languages: Java, Kotlin, C++, HTML, CSS, JavaScript, Scheme
Databases: Room, MySQL, SQLite, Room, Oracle SQL, Firebase RealtimeDB
IDE: Eclipse, Android Studio, IntelliJ
Multimedia: Glide, Picasso, ExoPlayer, Videoplayer
Version Control: GitHub, GitLab, Source Tree, Terminal, Android Studio
Design Patterns: MVC, MVP, MVVM, Façade, Singleton, Observer, Factory, Builder
Development: TDD, JIRA, Continuous Integration, Git, Github, Bitbucket
Project Methodologies: Agile, Scrum, Waterfall
Android Dev: Espresso, BroadcastReceiver, ContentProvider, Moshi, Junit, Glide, Loopers, Loaders, AsyncTask, RxJava, GSON, LiveData, MVVM, MVC, MVP, Room, Dagger 2, Jenkins, Android Profiler, Coroutines, Layouts, Google Architectural Components, EventBus, RecyclerView, ListView, Services, LiveData, Google Maps API, Mockito, CustomViews, CompoundViews
UI: CardView, ConstraintLayout, Fragments, Activity, DrawerLayout, BottomNavigationView
Android Libraries: Retrofit, RxJava, Volley, ButterKnife, LeakCanary, Airship, RxAndroidBLE
Android Project Experience
Healthfirst NY
New York, NY
Senior Android Developer
May 2020 – Present
https://play.google.com/store/apps/details?id=org.healthfirst.android.member
Translated iOS application into android application for android-using customers
Used Git as a version control for managing and integrating source code with other team members.
Developed application features and modules in Kotlin
Worked on developing the Login Module using various tools for secure authentication and authorization.
Developed and gave maintenance using pair programming.
Used TDD approach for development to ensure maintainable and reliable code.
Implemented a swipe functionality for recycler views using ItemTouch helper.
Created unit test for all the code I implemented using Mockk as a means of TDD
Implemented Android UI test using Espresso for critical functionality.
Used Koin for dependency injection to accommodate dependency inversion in the application
Addressed PR comments of my code to ensure teamwork and coordination in development.
Helped new developers understand the codebase.
Participated in engineering meetings to determine technical decisions for the app
Created the functionality to help users change their personal information : username, email, etc
Utilized two-way data binding to communicate between ViewModel and xml files
Created Kotlin extension functions to make the code more readable and concise
Zillow
Seattle, WA
Senior Android Developer
September 2019 – May 2020
https://play.google.com/store/apps/details?id=com.zillow.android.zillowmap&hl=en_US
Refactored views to utilize constraint layout in order to make the UI more responsive to different screen sizes and resolution
Used Git for the applications Version Control System
Used LiveData to simplify data retention and updates during configurational changes
Used Moshi to populate data classes with data from JSON responses
Used Google’s Location API to simplify how the app gets the user’s current location, and to set up geofences around the user’s ‘favorite’ homes
Used MVVM application architecture to efficiently implement separation of concerns
Used Glide for improved loading of the user’s images of the houses/apartments from cache
Refactored the persistent solution of the application using SQLite Relational Object Mapping to Room in order to improve maintainability by taking advantage of Room’s abstraction, LiveData integration, and query validation capabilities
Worked in an agile environment using TDD approach to development
Utilized CompoundViews to create reusable components across the application.
Used Google Maps V2 implement 3D vector-based maps
Participated in all aspects of application development from planning to deployment
Utilized Espresso for UI automation testing
Providing maintainable and testable high-quality solutions for Android applications
Used JIRA for project management and backlog tracking
Kayak
Cambridge, MA
Senior Android Developer
December 2018 – September 2019
https://play.google.com/store/apps/details?id=com.kayak.android&hl=en_US
Reduced code footprint and increased reusability of logic by refactoring code from MVP to MVVM
Utilized background services in order to update locally stored JSONS
Involved in writing and developing new features in Koltin as well as translating some existing features from Java to Kotlin.
Used Dagger2 for dependency injection
Developed UI’s using wireframes provided by graphics team via Zeplin
Used the Room persistence library to save web service responses and to act as the single source of truth for the application data
Implemented UI Test Automation using Espresso as a testing tool to accomplish the task
Designed CustomViews to implement UX designs and for the reusability of the views created.
Used social media authentication such as Facebook and Twitter APIs for incorporating features such as logging in, liking items, and sharing product announcements
Used Jenkins for Continuous Integration and build creation on a private server
Created multi-purpose apps for debugging and production with the use of flavors implemented in the Gradle file
Analyzed and troubleshooted the application using tools like the Android Profiler, DDMS, debugger, and logging
Participated in scrum meetings to help with collaboration among the mobile team
Used Git with Bitbucket servers for the applications Version Control System
Used Coroutines for efficient and lightweight handling of asynchronous operations
Optimized layouts by refactoring layout code from using Relative layout to Constraint layout
Participated in code reviews and submitted constructive feedback to peers of all levels of development
Reduced the application size and increased efficiency of render basic images by utilizing the use of Vector drawables
Marriot International Inc
Dallas, TX
Senior Android Developer
November 2017 – December 2018
https://play.google.com/store/apps/details?id=com.marriott.mrt&hl=en_US
Refactored the code from using AsyncTask to using RxJava for more robust error handling on asynchronous operations
Handled fragment retention to ensure data integrity on screen rotations
Implemented lightweight image processing by using Picasso
Utilized layout qualifiers to allow for multiple screen resolution support
Implemented unit testing using Mockito and JUnit
Communication with back end team to collaborate on fixing rare server problems arising.
Worked in an agile environment to adapt the application to the different needs of the users
Analyzed and troubleshooted the application using tools like the Android Profiler, DDMS, debugger, and logging
Participated in estimation of duration of tasks and project goals.
Parsed JSON results from web resources into POJOs using third-party libraries like GSON
Implemented a background service for updating locally stored JSONs
Utilized Retrofit to make a parent callback interface to automatically handle the error function, caching and pagination to API
Handled proper implementation of MVVM arch design pattern in the application using Google Architectural components
Introduced type-safety for accessing views and made the codebase shorter, easier to read and maintain, by refactoring the code to utilize data-binding
Used Dagger2 for dependency injection
Delivery.com
New York, NY
Android Developer
December 2016 – November 2017
https://play.google.com/store/apps/details?id=com.deliverycom&hl=en_US
Used EventBus to pass event messages across multiple components in the application
Implemented ViewPager for scrolling between different fragments
Used custom markers with Google Maps API and Location manager for displaying store locations closest to the user
Utilized Crashlytics for Application Health analytics
Used JIRA for project management and backlog tracking
Debugged network calls using Charles Proxy
Developed a Navigation drawer for easier navigation for the user of the app
Implemented AB testing of features within the application to measure the users’ activity levels with different designs of UI elements
Used Espresso for UI automation testing
Implemented several design patterns such as MVP, Singleton, Builder and Observer
Incorporated payment methods using Stripe, PayPal, and cardio library to pay for products and securely store payment method information for future orders
Used Android studio for development of the application
Implemented 2-way data binding to communicate between views and view models
Implemented a rating system and user comments section using recycler view and real-time databases
Use of layout qualifiers to allow for multiple screen resolution support
The Home Depot
Austin, TX
Android Developer
November 2015 – December 2016
https://play.google.com/store/apps/details?id=com.thehomedepot&hl=en_US
Developed UI’s using wireframes provided by graphics team via Zeplin
Used shared preferences for holding basic user defined configurations of the application
Implemented nightly updates of data using work manager
Implemented an abstraction layer for the locally persisted data using a Content Provider
Used built-in SQLite Database Schema for offline data persistence and for localized caching
Utilized System Broadcast receivers to optimize behavior of the app for events like low battery status and network connectivity
Implemented a custom ListView with lazy loading using Picasso and an LRU cache
Used Intent Services with OkHttp for making HTTP request
Used Loopers, Handlers, and Runnables to execute tasks away from the main thread
Implemented single and dual pane activities for fragments for both phone and tablet devices.
Cultivated an environment of excellence through code design and code reviews
Refactored un-optimized sections of code to maximize the use of resources
Used Parcelable to marshal data objects across different activities
Initialized runtime permissions requests based on the end user’s response to dialogs
EDUCATION
FORMAL EDUCATION
Tufts University
Bachelor of Science in Engineering