Post Job Free
Sign in

Senior Android Developer

Location:
West Henrietta, NY, 14586
Posted:
September 20, 2024

Contact this candidate

Resume:

Dustin Schaphorst

Senior Android Developer

Phone: 812-***-**** Email: ad7rmo@r.postjobfree.com

PROFILE OVERVIEW

•12+ years working in the Android development market space.

•11 apps were published to the Play Store.

•Advanced skill programming in Kotlin and Java.

•Flexible team player accustomed to on-site and remote teams.

•Contribute to design, architecture, and technical strategy for Android development.

•Debug performance bottlenecks and fix complex issues in Android applications.

•Build Android mobile applications that utilize web services (REST, HTTP-based, XML, SOAP, JSON, or other services).

•Effectively and actively plays the role of technical advisor for projects, providing advice on tools, processes, and design to others.

•Knowledgeable about building scalable code using dependency injection (Dagger, RXJava, Retrofit/Volley, Room, Volley, ViewModel, LiveData).

•Knowledge of Android design patterns and employing development tools such as Android Studio and Eclipse.

•Actively leads, supports, and mentors team members; leads code reviews facilitates meetings, assigns tasks, and ensures workflow and quality.

•Knowledgeable and skilled with Kotlin Coroutines, Kotlin Flow API, Android JetPack, TDD, DI, CI/CD, Git, BLE, AWS, TDD, Multithreading, code reviews, and architectures).

•Experienced with RESTful APIs to connect applications to back-end services.

•Comfortable with various source control utilities such as GIT & GitHub.

•Experience with continuous integration tools like Jenkins or Travis CI and automated testing frameworks such as Espresso.

•Work with design conversion tools Sketch and Figma.

•Experienced adding RecyclerViews into apps.

•Experienced using the Zeplin tool.

•A firm follower of testing environments (unit testing and integration testing) using Google resources and third-party libraries like JUnit, Mockito, and Espresso.

•Exceptional communication, project management, and organizational skills with the ability to build positive relationships with boards and stakeholders, senior executives, all levels of staff, and clients.

TECHNICAL SKILLS

PROGRAMMING LANGUAGES

Kotlin, Java

IDE

Android Studio, Eclipse, IntelliJ

THIRD-PARTY LIBRARIES

Coroutines, RxJava, RxAndroid, Firebase, Fabric, Reactive-X, C standard Library, MPL and MECL libraries, Ksoap2 library, Jersey Library, Java Swing, Ajax Swing, GWT, Retrolambda, Koin, KMM

PERFORMANCE

Bluetooth Low Energy (BLE), Leak Canary, ProGuard, Dalvik, Memory Mapping, ART

DATABASES

SQLite, Firebase, Room DB

BACK-END

Consumption of RESTful web services, Connection to database end-points, Use of REST, SOAP, JSON, XML

ARCHITECTURE & DESIGN

MVC, MVP, MVVM, Singleton, Dependency Injection, Builder, Factory, Façade, Proxy, Command, Observer, Visitor, MVI, Clean code archiecture

PUSH NOTIFICATIONS

Google Cloud Messaging (HCM), Firebase Cloud Messaging,

DEPENDENCY INJECTION

Android Annotation, RoboGuice, Dagger 1, Dagger 2, Hilt, Koin

CODEBASE MANAGEMENT

Git, SVN, SourceTree, BitBucket, Jenkins, Hudson, Travis CI

PROJECT

Agile, Scrum, pair Programming, Xtreme Programming, JIRA, Confluence, Javadoc, Slack, Trello, Kanban, Atlassian, Requirements Gathering, Daily Scrums, Sprints, Sprint Planning, Sprint Backlog, Sprint Retrospective, Scrum Master, Code Reviews

PROFESSIONAL EXPERIENCE

Senior Android Developer Innovative Data Solutions West Henrietta, NY 03/2024 - Present

Internal App

Project Summary: I developed a proof-of-concept application to measure and track athlete movements and various sports statistics. Athletes used Bluetooth sensors to transmit data to the application, which then sent the data to a "Sensor Fusion" server. This server utilized AI-based Python code to generate metrics, which were then relayed back to the app to display statistics and alerts. I worked on a multi-layered technology stack with only one or two team members handling each segment, including two developers focused on the Android side. I played a key role in the architectural decisions, ensuring the selection of technologies that best aligned with user stories. We adhered to a strict Agile framework, providing frequent progress updates to investors.

•Orchestrated the transition from XML to Jetpack Compose, establishing a roadmap for code conversion to modernize the UI framework prior to the initial release.

•Transformed the project structure by adopting Clean Architecture principles, effectively decoupling components into Presentation, Domain, and Data layers to enhance modularity and maintainability.

•Deployed Firebase tools for streamlined app distribution and integrated Crashlytics for comprehensive crash reporting and analytics, improving app stability and issue resolution.

•Collaborated with product owners to translate business requirements into detailed user stories and converted these into Jira tasks for effective management during sprint planning sessions.

•Set up and administered the GitHub repository, implementing effective version control practices, branching strategies, and code review processes.

•Utilized Figma’s integration with Jira to enhance collaboration with the design team, ensuring accurate implementation of design specifications and timely feedback.

•Played a key role in a two-person Android development team, focusing on front-end development and managing data interactions between the UI and backend systems.

•Used Python language with the server team for TCP/UDP network connections and we were transmitting serialized Protobuf data making sure to use a header in the messages with a delimiter and message length integer.

•Developed Kotlin functions for adaptable navigation bars and implemented code to handle various navigation actions, including reverting to previous states.

•Utilized the Model-View-ViewModel (MVVM) architecture to separate data, UI, and business logic, improving code maintainability and testability.

•Conducted detailed reviews of pull requests and engaged with leads and developers for guidance and improvements.

•Created functions and libraries with diverse data structures, setting default values and rigorously testing navigation features.

•Integrated new tests, managed CI processes, and ensured coverage updates, addressing feedback before merging code into the development branch.

•Achieved and maintained high code coverage across repositories, enhancing code reliability and testing effectiveness.

•Leveraged Agile tools such as JIRA, Confluence, and Trello for user story management, task tracking, and team collaboration.

•Monitored and documented code coverage levels, identifying and addressing coverage gaps.

•Ensured synchronization of local environments with repositories, running Android and JUnit tests to maintain code coverage standards.

•Contributed to incremental feature delivery and improvements in alignment with Agile sprint cycles.

•Tested applications across various API levels, resolved issues with guidance, and fixed failing tests.

•Implemented design patterns such as Singleton, Factory, Builder, and Dependency Injection to enhance code organization and functionality.

•Worked with Firmware team on the Bluetooth Sensors

•Lead and organized our demos for stake-holders and investors utilizing Jetpack Compose's Preview features during every sprint end.

Senior Android Developer The Weather Channel/ IBM Warsaw, IN 07/2023 – 02/ 2024

https://play.google.com/store/apps/details?id=com.weather.Weather

Project Summary: As a Senior Android Developer at The Weather Channel, I spearheaded the development of the app's latest release, employing a backend-driven approach with Jetpack Compose for a dynamic user interface. I managed data integration from JSON responses via Contentful, ensuring seamless asset utilization across both iOS and Android platforms. Key features include live radar updates, hourly rain tracking, storm radar news, and local weather forecasts, equipping users with precise and timely weather information to stay ahead of adverse conditions.

•Migrated to Jetpack Compose by adding Compose to an existing screen built using Android views and managed state in composable functions.

•Worked on many features/functions within different modules of the app, including live radar updates, hourly rain tracking, storm radar news, and local weather forecasts, empowering you to stay ahead of the weather curve.

•Implemented Jetpack components for data binding along Koin dependency injection.

•Overseeing the codebase on GitHub, conducting thorough reviews of all pull requests from the development team, merging them into relevant branches, integrating into APK builds, and facilitating distribution to the QA team.

•Used JIRA for tracking stories and the story progression through the Development, QA, and Acceptance Testing.

•Applied elements of Kotlin Flow such as coroutines to interact with the database and networking operations in the repository layer in the clean-code architecture.

•Used the Jira platform to track productivity and tasks provided to accomplish the project.

•Applied Jenkins for CI/CD and write workflows in yaml for SonarQube, Fastlane for automation

•Used design conversion tools Sketch and Figma.

•Worked within an MVVM architectural model and programmed in Kotlin.

•Used Kanban as part of Agile project methodology for enhanced workflow visualization.

•Participated in two meetings every day: one for morning stand-up (talking about general information such as new faces, interests, events, etc.), and one mobile stand-up meeting with Android and iOS team resources with a focus on technical and business process topics.

•Worked on a dev team consisting of eight resources, including two Tech Leads that proactively reviewed the code of team developers.

• Implemented Firebase analytics framework to track user behavior in the app.

•Used Retrofit and GraphQL for API integration through which we followed certain schemas and queries to fetch data from the back end.

•Presented Single Activity Multiple Fragment approach to architecture.

•Debugged codebase with Splunk dashboards and Firebase Crash.

•Used a Generic RecyclerView that allowed different Fragments/ViewModels to use the same Recycler.

•Added Accessibility Services like Switch Access and Talkback.

•Implemented Android Bluetooth and Location Connectivity components.

•Developed and ran unit tests following TDD best practices using Junit, Mockito, and Espresso for UI testing in the development process.

Senior Android Developer Dine Brands Glendale, CA 11/2022 – 06/2023

IHOP: https://play.google.com/store/apps/details?id=com.olo.ihop HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.ihop&hl=en_IN&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.ihop&hl=en_IN&gl=US"hl=en_IN HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.ihop&hl=en_IN&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.ihop&hl=en_IN&gl=US"gl=US

Applebee’s: https://play.google.com/store/apps/details?id=com.olo.applebees HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.applebees&hl=en&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.applebees&hl=en&gl=US"hl=en HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.applebees&hl=en&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.olo.applebees&hl=en&gl=US"gl=US

Project Summary: As a Senior Android Developer at Dine Brands, I managed the codebase via GitHub, overseeing pull requests, merges, and APK builds for QA distribution. I implemented multiple analytics features, network calls using Coroutines and Kotlin Flow, and refactored code from Java to Kotlin. Working in MVVM, MVP, and Clean Architecture environments, I updated Dagger to Hilt and Butterknife to View Binding. I coordinated with product owners, led sprint demos, modularized components, and integrated Sitecore APIs for seamless app configuration.

•Managing codebase via GitHub and reviewing all pull requests from the developing team, merging into respective branches, integrating into APK builds, and distributing to the QA team.

•Implemented multiple analytics features to enable tracking of module usage.

•Worked in MVVM, MVP, and Clean Architecture environment.

•Implementing network calls working off with Coroutines and Kotlin flow tools.

•Refactored code from Java to Kotlin and implemented test cases to reduce regression tests.

•Handled team communication through multiple systems, including Teams, Slack, and JIRA.

•Coordinating closely with product owners to define acceptance criteria and story points, ensuring that the team has a clear understanding of what needs to be done.

•Led the Android demo of tasks completed at the end of each sprint to product and brand owners.

•Developing code infrastructure, modularizing components for ease of reuse, and creating UI based on designs in Figma.

•Implemented multiple Jetpack Compose components.

•Assumed management of the build/deployment process.

•Updated Dagger dependency injection to Hilt.

•Refactored Butterknife to View Binding to reduce APK size and updated Gradle version class generation.

•Working closely with the Web team to develop Sitecore APIs needed for app configurations, ensuring that the app is integrated with the necessary backend systems and that all APIs are working correctly.

Senior Android Developer Mercury Insurance Los Angeles (CA) 06/2021 – 11/2022

https://play.google.com/store/apps/details?id=com.mercuryinsurance.cpmobileapp HYPERLINK "https://play.google.com/store/apps/details?id=com.mercuryinsurance.cpmobileapp&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.mercuryinsurance.cpmobileapp&hl=en_CA&gl=US"hl=en_CA HYPERLINK "https://play.google.com/store/apps/details?id=com.mercuryinsurance.cpmobileapp&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.mercuryinsurance.cpmobileapp&hl=en_CA&gl=US"gl=US

Project Summary: As a Senior Android Developer at Mercury Insurance, I developed in both Java and Kotlin using Android Studio IDE. I refactored code to use MVVM, implemented secure authentication in the Login Module, and optimized user experiences through design evaluation. I applied Hilt for dependency injection, collaborated with API teams, created reusable composables with Jetpack Compose, and developed payment features with Simplify SDK. Utilizing tools like RecyclerView, Retrofit, and LiveData, I ensured maintainable code with TDD and conducted UI tests using Espresso.

•Worked with source code interoperability, coding in both Java and Kotlin with development in Android Studio IDE.

•Refactored old code to decouple views from business logic using MVVM.

•Developed Login Module using various tools for secure authentication and authorization.

•Assisted in assessing and optimizing designs through review, evaluation tools, and analysis to ensure optimal user experiences for all device types.

•Applied pair programming as part of development methodology.

•Applied Hilt for dependency injection.

•Worked closely with platform and API teams to define the underlying interfaces that support projects.

•Created a small reusable composable to describe UI by calling a series of functions that transformed data into a UI hierarchy and defined Data flow principles in Android jetpack Compose.

•Utilized Dependency Injection-Dagger, Reactive and functional programming (Rx, Coroutines, Flow, etc.), Retrofit, and LiveData.

•Developed payment feature using Simplify SDK to enqueue auto payments and one-time processing payments.

•Used RecyclerView to display all list information inside of the application to the user

•Implemented data binding with binding adapters and Android Databinding

•Implemented newer features in Kotlin as well as migrated some existing code into Java.

•Applied the technologies Kanban, Bitbucket, and GitHub.

•Applied TDD approach for development to ensure maintainable and reliable code.

•Created unit tests for all the code implemented using Mock as a means of TDD.

•Implemented Android UI test using Espresso for critical functionality.

Senior Android Developer Five Guys Burgers & Fries Lorton, VA 06/2020 – 06/2021

https://play.google.com/store/apps/details?id=com.fiveguys.olo.android HYPERLINK "https://play.google.com/store/apps/details?id=com.fiveguys.olo.android&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.fiveguys.olo.android&hl=en_CA&gl=US"hl=en_CA HYPERLINK "https://play.google.com/store/apps/details?id=com.fiveguys.olo.android&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.fiveguys.olo.android&hl=en_CA&gl=US"gl=US

Project Summary: As a Senior Android Developer at Five Guys Burgers & Fries, I developed Kotlin modules using MVVM architecture for maintainability and quality testing. I collaborated with backend teams, integrated with RESTful services using Retrofit and OkHTTP, and worked with UI/UX and CI teams for a high-quality product. Implementing Dagger for dependency inversion and using Coroutines, RxJava, and other strategies for asynchronous operations, I ensured robust performance. I also utilized Realm for data persistence, LeakCanary for memory leak detection, and applied TDD methods with Jenkins for continuous integration.

•Developed modules in Kotlin using MVVM app architecture for ease of maintainability and extensibility, as well as improved quality testing.

•Collaborated with the backend and development team to develop an Android app that interacted smoothly with remote content and web services.

•Communicated with RESTful web services to obtain information using Retrofit, OkHTTP, and Jackson.

•Worked closely with the UI/UX, Testing, and continuous integration team to ensure a high-quality product.

•Implemented dependency inversion strategy creating components and modules using the Dagger library.

•Created asynchronous operations using multiple strategies: Coroutines, RxJava, Handlers, Loopers, Intent Services, and Loaders for Android.

•Worked with Jenkins CI server for continuous integration and followed Test-Driven Development (TDD) methods.

•Persisted non-sensitive data with Realm database and ensured that the database was using encryption algorithms when persisting user information.

•Detected memory leaks using Leak Canary.

•Used code combination of ViewModels and LiveData using MediatorLiveData for loading data while handling the Activity and Fragment life cycles

•Applied AES substitution–permutation network to encrypt data with a key and perform certificate pinning using TrustManager API.

Senior Android App Developer TD Bank, N.A. Omaha (NE) 02/2019 - 06/2020

https://play.google.com/store/apps/details?id=com.tdameritrade.mobile3

Project Summary: As a Senior Android App Developer at TD Bank, I programmed Kotlin code for RESTful API calls supporting bank transfers, budgeting, and digital receipts. Utilizing Coroutines and MVVM architecture, I stored cryptographic keys securely with Android Keystore and authenticated users via Fingerprint scan API. I enhanced UI consistency with reusable views, employed Room database and NavGraph XML resources, and implemented two-way data binding. Additionally, I performed unit and system tests using JUnit, Mockito, and Espresso, and added Picture-in-Picture (PiP) functionality.

•Programmed code in Kotlin language to perform Restful API calls for bank transfers, budgeting, and digital receipts.

•Worked with Coroutines and MVVM clean code architecture.

•Stored cryptographic keys in a container and protect key material from unauthorized use using Android Keystore.

•Helped the team with code reviews.

•Created a reusable view using card view so all Contact Us options have the same look.

•Authenticated users via Fingerprint scan API and implemented the user interface for the fingerprint authentication flow.

•Worked with a Room database.

•Made use of NavGraph XML resources.

•Utilized two-way data binding to communicate between ViewModel and XML files.

•Performed unit and system tests with JUnit, Mockito, and Espresso.

•Implemented Picture-in-Picture (PiP) functionality.

Android Developer Etsy Inc. New York, NY (Remote) 12/2017 – 02 /2019

https://play.google.com/store/apps/details?id=com.etsy.android

Project Summary: As an Android Developer at Etsy Inc., I generated the app using an MVP architecture, implemented RxLifecycle and RxBinding, and switched from PayPal to Braintree SDK for credit card scanning. I migrated from SQLite to Realm database, utilized RxJava, and collaborated with UI/UX designers using Zeplin. Additionally, I integrated Facebook and Twitter for app-sharing and authentication and performed testing with Mockito and JUnit.

•Generated app built on an MVP architecture.

•Implemented RxLifecycle and RxBinding to bind the network calls to the Android lifecycle and automatically complete sequences based on a second lifecycle stream.

•Switched from Paypal sdk to Braintree SDK and included card.io for credit card scanning.

•Switched from SQLite database to Realm database to store items locally and store user profile information and preference settings.

•Made use of Mockito testing suite and JUnit to create and perform tests on the application code.

•Worked with RxJava using observable and subscriber classes.

•Worked with Ui/UX designers using Zeplin and implemented UI designs according to designer specifications.

•Implemented the Android Activities and Fragments to create the design for the mockup designs.

•Integrated Facebook and Twitter for app-sharing, indexing, and authentication.

Android Mobile Software Developer ADP Mobile Solutions Roseland, NJ 05/2016 – 12 /2017

https://play.google.com/store/apps/details?id=com.adpmobile.android

Project Summary: As an Android Mobile Software Developer at ADP Mobile Solutions, I enhanced UI with animations, optimized search navigation, managed Git repositories, and build processes, and implemented SQLite and Firebase databases. I used Volley for image handling and performed automated testing with Robolectric.

•Added several animations and transitions without the box features and third-party libraries.

•Improved the search navigation Activity to find out station names.

•Improved the layout rendering by saving and optimizing the view hierarchy in all the resources.

•Managed Git code repository using BitBucket.

•Managed the build creation with a Jenkins instance hosted on a private server.

•Created the database using SQLite local file and a Firebase implementation.

•Implemented Volley for image handling.

•Created small testing instances with Android Wear and Android Auto.

•Generated the application with an MVP architectural base to help with modularity and maintainability.

•Performed automated testing by using Robolectric.

•Set up SonarQube jobs for my Java and Android projects.

•Eliminated the use of external libraries by consolidating the use of OKHTTP and GSON.

Android Application Developer Alaska Airlines Seattle, WA 01/2015 - 05/2016

https://play.google.com/store/apps/details?id=com.alaskaairlines.android

Project Summary: As an Android Application Developer at Alaska Airlines, I developed features using Java and design patterns, optimized ListViews to RecyclerViews, and implemented event-driven communication with Event Bus. I also enhanced UI behaviors, performed rigorous testing, and utilized Retrofit, Volley, and Picasso for efficient networking and image loading.

•Worked on the Android app development in Android Studio with Java Coding and various design patterns (MVP, Singleton, Decorator, Façade, Proxy).

•Created a module based on an Event-driven library (Event Bus) to communicate multiple components in the app efficiently.

•Generated a custom behavior in multiple screens included in the CoordinatorLayout to hide the Toolbar and the Floating Action Button on the user scroll.

•Re-structured ListViews to RecyclerViews with lazy loading for improved usability and lower memory footprint.

•Involved in rigorous manual testing of the application.

•Evaluated device and user behavior with Crashlytics.

•Analyzed existing multi-threading issues and rectified them.

•Lobbied external networking libraries such as Retrofit and Volley to consume REST web services efficiently.

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

•Standardized Picasso Image Loader API as the default image loader across the application.

•Enhanced the usage of SQLite databases backed up by a Content Provider for caching and storing frequently used information.

Android App Developer Avant Chicago, IL 06/2013 - 01/2015

https://play.google.com/store/apps/details?id=inc.zerofinancial.level HYPERLINK "https://play.google.com/store/apps/details?id=inc.zerofinancial.level&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=inc.zerofinancial.level&hl=en_CA&gl=US"hl=en_CA HYPERLINK "https://play.google.com/store/apps/details?id=inc.zerofinancial.level&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=inc.zerofinancial.level&hl=en_CA&gl=US"gl=US

Project Summary: As an Android App Developer at Avant, I documented app changes, improved the UI following Material Design, and implemented Parcelable for efficient data passing. I enhanced RESTful APIs, conducted testing with Robolectric and Espresso, and managed private GitHub repositories.

•Documented all changes made to the app, improvements, fixes, and new features, backend, and front-end development.

•Debugged and tested the application using Robolectric.

•Added the Parcelable interface to pass custom objects between components quickly via Intents.

•Used Espresso for instrumentation testing using Assertions, Matches, and Actions.

•Updated the look and feel following Material Design guidelines.

•Actively worked with the back-end team to improve the RESTful API to include new features.

•Developed compound views to present information to the user depending on their preferences

•Set up and managed private GitHub repositories to host internal code.

•Implemented Google Analytics, and Flurry for various analytics.

•Utilized the Eclipse IDE to develop and code the application.

•Ensured excellent form factor integration by creating multi-panel activities with Fragments.

Android Mobile Software Developer Sworkit Rockville, MD 08/2012 - 06/2013

https://play.google.com/store/apps/details?id=sworkitapp.sworkit.com

Project Summary: As an Android Mobile Software Developer at Sworkit, I interfaced with SQLite for data storage, managed memory leaks with LeakCanary, and designed application prototypes using JustInMind. I collaborated with the UI/UX team on Google Material Design, used Eclipse IDE for development, and implemented CI with Jenkins and version control with BitBucket.

•Interfaced with SQLite for storing information.

•Tracked issues with Jira.

•Managed memory leaks in debug builds with LeakCanary.

•Designed prototypes to create the new main flow of the application with JustInMind.

•Worked with the UI/UX team to design a user-friendly interface for the Android application.

•Applied styles and themes following the new Google material design pattern.

•Utilized Eclipse IDE to implement the application in Java and automate testing with Robotium.

•Implemented Continuous Integration with Jenkins, using Git with BitBucket for code repository/version control.

•Implemented Fragments to support multiple device sizes.

EDUCATION

Bachelor of Science - Computer Science Engineering and Technology and Computer Science



Contact this candidate