Post Job Free

Resume

Sign in

Senior Android Developer

Location:
St. Louis, MO, 63109
Posted:
April 26, 2024

Contact this candidate

Resume:

JESS OSBORN

ad4yly@r.postjobfree.com

314-***-****

.

Summary

•A highly dedicated and proactive professional with 10+ years of experience with building production Android native apps and seeking an Android Developer position.

•Possess a solid background in creating complex mobile applications for Android and a strong understanding of OOP.

•Proficient in developing Android apps from scratch and improving existing ones through revision, refactoring, and architectural transitions (MVC, MVP, MVVM)

•Skilled in optimizing Android app performance, memory management, and power consumption.

•Experienced in native Android development using Android Studio and Eclipse with both Java and Kotlin

•Applied various Java design patterns (Singleton, Facade, Factory, Builder, Adapter) for code scalability and maintainability.

•Utilized Custom Views, Layout Managers, and Material Design tools (CardView, Toolbar, RecyclerView) for intuitive UI development.

•Enhanced performance and user experience of multiple modules within local Content Management Systems

•Proficient in security features like Shared Preferences, Cipher, and Certificate Pinning, along with encryption libraries (Bouncy Castle, SQLCipher)

•Familiarity with analytics tools (Google Analytics, Localytics, Crashlytics) for app performance and user behavior analysis

•Experienced in version control systems (Git, GitHub, GitLab) and Agile development methodologies (Scrum)

•Proficient in consuming RESTful web services using Retrofit, Volley, and AsyncTask for backend communication.

•Expertise in integrating third-party libraries (Retrofit, Picasso, Dagger) for enhanced functionality.

•Sound understanding of Android lifecycle management, Fragments, Intents, threading, and object-oriented design principles.

•Strong leadership skills with the ability to mentor developers and collaborate effectively with project managers, stakeholders, and cross-functional teams.

Key Skills

Java, Kotlin, Java, Python, Rust, C, C++, ADA, SQL, OpenGL, 3D modeling, Systems Modeling, Simulation, Data Graphing, Agile, VideoView, Google Maps API, Fresco, NineOldAndroids, Push Notifications, Mockito, EventBus, Backend, Parse, Google Cloud Messaging, ProgressBar, RESTful web services, Android Wear, MVP, Robotium, Parceler, Bitbucket, Git, Github, Gitlab, Material Design, Dagger, Builder Pattern, Factory Pattern, Adapter Pattern, ORMLite, Retrofit, Runtime permissions, Git, Cipher, Android Studio, Circle-CI, Continuous Integration, Doze Mode, LeakCanary, JIRA, ParallaxPager, GSON, Google Custom Search, Broadcast Receivers, Google Places, Jenkins, App publishing, Espresso, ProGuard, Gradle, Product Flavros, RecyclerView Animator, Glide, Realm, PushBots, MVVM, MVP, VIPER, Google Analytics, Volley, Loaders, RxJava, Coroutines, JobScheduler, Content Providers, GcmNetworkManager, Dependency Injection, Otto, Caligraphy, Chromecast, RoboGuice, JUnit, Maven, ButterKnife, Firebase Analytics, Firebase Crashlitycs, Firebase Realtime Database Spring, Android Jetpack, LiveData, ViewModel, Microsoft Azure, Bootstrap, SHA, Eclipse, Test Automation, MySQL, AWS, BLE, NFC, IoT, AI, Api Back End

Experience

SR. ANDROID APP DEVELOPER

ACCREDO HEALTH GROUP INC., ST LOUIS, MO OCT 2020 – PRESENT

About the app: The Accredo mobile app provides patients with the flexibility to manage specialty medications according to their preferences. Easily order refills, track orders, make payments, receive dose reminders, and update patient profiles—all in one convenient platform.

Store: https://play.google.com/store/apps/details?id=com.accredohealth.ac HYPERLINK "https://play.google.com/store/apps/details?id=com.accredohealth.accredo"credo

My Contribution:

•Led the enhancement and maintenance of a legacy application developed in ~2017, modernized the codebase by transitioning to more contemporary native Android patterns and tools, such as MVVM with Jetpack Compose

•Spearheaded efforts to improve unit testing coverage using Mockito and MockK, while ensuring code quality with tools like Pitest

•Collaborated closely with cross-functional teams, and provided valuable insights on feature feasibility, time estimates, and Android-specific considerations during planning sessions.

•Played a pivotal role in UI redesigns, feature implementations, and architectural refactors to enhance app scalability and maintainability.

•Implemented automated UI tests using Espresso framework to validate user interactions, navigation flows, and data input/output.

•Upgraded the app's UI components to support system-controlled Day Night theme.

•Utilized Espresso's APIs for performing actions on UI elements such as clicking buttons, entering text, and verifying UI states and content.

•Integrated Espresso tests into the continuous integration (CI) pipeline using tools like Jenkins or Travis CI for automated testing and regression testing.

•Developed an Account Switcher screen to facilitate users managing multiple patient accounts.

•Implementing a session timer with Kotlin Coroutines for automated user logout

•Implemented the Model-View-Presenter (MVP) architectural pattern in the Android application, separating concerns between the data model, user interface, and business logic.

•Leveraged Model-View-ViewModel (MVVM) architecture to further decouple the UI components from the underlying data representation, enhancing testability and maintainability.

•Conducted extensive refactors of legacy screens to improve maintainability and testability.

•Migrated from Kotlin Synthetics to Jetpack ViewBinding for improved UI binding.

•Created a Compose Theme and reusable UI components to standardize UI patterns.

•Integrated Dagger for dependency injection to facilitate the inversion of control and provide a flexible and maintainable solution for managing object dependencies.

•Utilized Dagger for dependency injection to manage the instantiation and lifecycle of objects within the Android application, promoting modularization and scalability.

•Designed and integrated a self-contained module for FHIR-spec-compliant Questionnaire input, enabling online prescription refills

•Updated login flows to accommodate Okta-migrated users with 2FA authentication

•Implemented user flows for managing 2FA methods and Copay assistance payment methods

•Participated in team management using JIRA, collaborated with product owners for feature prioritization, and contributed to the release process, ensuring successful app deployments

SR. ANDROID DEVELOPER

QVC MOBILE SHOPPING, WEST CHESTER, PA DEC 2018 – OCT 2020

About the app: QVC's free Android Shopping app. The app has access to our full product range - over 15,000 items including top beauty brands, jewelry, home electronics, fashion, homeware, and much more.

Store: https://play.google.com/store/apps/details?id=com.qvc

My Contribution:

•Code features in MVP to improve the separation of concerns in presentation logic, display data (the model) in views, and route user commands (events) to the presenter to act upon that data

•Handle the stream of data asynchronously that executes sequentially using Flow APIs in Kotlin Coroutines and Dispatchers

•Write algorithms and underlying logic to code full-search capability to search by term, item number, and brand using Retrofit, okhttp, Koin, and material design.

•Added certificate pinning support for Android N, higher, and under Android N with Trustkit library, keystore, and okhttp library.

•Integrate Firebase SDK to implement features like Performance Monitoring, A/B Testing, Cloud Messaging and Dynamic Links

•Improved payment mechanism to receive a one-time payment from a customer's PayPal account or payment card scanned with Card.io

•Perform code quality checks using tools like SoarQube, SonarLint, ktlint, Checkstyle, and PMD and deobfuscate a stack trace using a mapping file.

•Enforce code coverage of around 85% and participate in pull request reviews (PR)

•Use Mockk library to Mock a call that uses Kotlin Coroutines, capture and replay an Argument, perform integration test cases using Robolectric, and generate a global coverage report using the JaCoCo plugin.

•Performed daily code reviews on new submissions using the Crucible tool, both from colleagues within the team and offshore developers

•Created a QVC Widget on the home screen to show the latest offers according to users’ geo-location.

•Replaced old SQLite database with Room to include two-way data sync, real-time collaboration, persist with lightweight transactions and query using fluent interfaces.

•Work with external clients to incorporate FreeWheel sdk and Nielsen proprietary measurement SDK for monetization features.

•Implemented suspendable functions, Coroutines, to make Room Database transactions release the Main Thread execution.

•Work with an Agile/scrum team to deliver solutions on time and at high quality that conform to user stories’ acceptance criteria.

•Worked with backend developers and engineers for testing and debugging API and network tools with Charles Proxy API

•Create components to meet business requirements and work with the platform and API teams to define the service interfaces to support the application.

SR. NATIVE ANDROID DEVELOPER

NETSPEND, AUSTIN, TX OCT 2017 – NOV 2018

About the app: The Control™ Card Prepaid app lets you manage your account wherever you are, whenever you need it. That means it’s easy to do things like: Check your account balance and transaction history, send money to friends and family, Find fee-free reload locations, and Load checks straight to your account – it's as easy as taking a picture*

Store: https://play.google.com/store/apps/details?id=com.netspend.product.android.bet

My Contribution:

•Independently code and refactor the 'Check your account balance and transaction history' feature in MVVM architecture, Dagger2, TDD, and Jetpack libraries

•Refactor login component to implement an OTP generation algorithm with Google authenticator and biometric authentication with BiometricPrompt API

•Enforce password complexity and save cryptographically credential-specific, salt-protected, and stored using PBKDF2.

•Include Google Play billing service to upgrade to Premium to unlock spending insight monitoring tool.

•Created observables and view events to effectively transport data using Live data and Sealed Classes

•Int} pp using device identification, web fingerprinting, Honeypot technology, and location services.

•Adopt RxLifecycle, RxBinding to bind the network calls to the Android lifecycle and automatically complete sequences to update account details of the user.

•Integrate AWS Mobile Hub User Sign-in feature to access the AWS services, validate user identities from multiple identity providers, and barrier to protected folders for unauthenticated users.

•Implemented Certificate Pinning to protect network connectivity in several transactions.

•Enable mocking of static methods, constructors, final classes and methods, private methods, and removal of static initializers using PowerMock test framework for ‘Split the bill or Nearby Payments' use cases.

•Include MessagePack binary serialization format library to exchange data among multiple languages.

•Created Cipher class encryption applying AES algorithm to protect and increase user security.

•Implement Constraint Layouts to improve the layout performance and increase the UI layout readability for the home page and other fragments.

•Incorporate Splunk MINT SDK to collect crash, performance, and usage data for the app and send it to Cloud servers with local analytics data.

•Mentoring JR Developers and addressing PR requests to enforce code quality and reduce CI times integration.

•Incorporate Drop-in analytics to track user sessions, attributes, and in-app metrics using AWS.

•Use Android App Bundles to enable modular app development, use conditional delivery to deliver features to countries, and on-demand delivery to deliver features on demand.

•Simplify effective caching framework (caches to memory and disk, anything from HTTP responses to entire object trees) using LRUDisk Cache and local database.

MOBILE APP DEVELOPER

MILEIQ, SAN FRANSISCO, CA OCT 2016 – SEPT 2017

About the app: MileIQ is an automatic mileage tracker and mile counter that will have you ditching your paper mileage logbook in favor of convenience and greater accuracy. This free mileage logbook for personal or business uses smart drive-detection technology, with a built-in GPS, to log miles and calculate their value.

Store: https://play.google.com/store/apps/details?id=com.mobiledatalabs.mileiq

My Contribution:

•Work and code complex scenarios involving MileIQ smart Drive Detection technology to automatically track miles and it then logs those trips.

•Create a Distance tracker feature module to record in the background using JobManager and then you can start scheduling jobs.

•Use Volley network library to perform RPC-type operations used to populate a UI, such as fetching a page of search results as structured data to view card list.

•Add a custom account to the user's device to authenticate back-end services using OAuth 2.0

•Work on Android Beacon Library to get a ranging update from one or more beacons at a frequency of approximately 1Hz and send beacon transmissions in the background.

•Create several helper classes for easier API-level backward compatibility, Intents, diagnostics, and background operations.

•Integrate Android Annotations library to inject views, extras, system services, resources, and performance. event binding to handle events on views

•Independently work on the "Pull Down to Refresh" functionality to refresh the list of drives between business and personal trips.

•Create a JobRequest with the corresponding builder class and schedule this request with the JobManager

•Integrate Leanplum SDK for push notifications to send instant payment notifications and a real-time balance, n-app A/B testing, and track event.

•Pair Program to work on Apache Commons Codec software to provide implementations of common encoders and decoders such as Base64, Hex, Phonetic, and URLs

•Add dynamic feature modules to the app project and Dynamic Delivery to generate and serve optimized APKs for each user’s device configuration.

•Optimize handling dangerous level permissions using the Easy Permissions wrapper library to simplify basic system permissions logic when targeting Android M or higher.

•Make the app adaptable to new Android O for Notification channels and background limits to sync workout results and set notification preferences to keep tabs on account activity.

NATIVE APP DEVELOPER

ABBYY MOBILE, MILPITAS, CA AUG 2015 – SEP 2016

About the app: ABBYY Business Card Reader scans and manages all your business cards and contacts in a flash. With ABBYY Business Card Reader (BCR) you can: Instantly transfer business card data in 25 languages right onto your smartphone, Sync card data across smartphones, tablets, and computers via ABBYY's cloud and access contacts, save contacts in the BCR's storage – Cardholder- with convenient search, sorting functionality, and Share biz contacts data from BCR via e-mail or SMS and export to Excel.

Store: https://play.google.com/store/apps/details?id=com.abbyy.mobile.bcr

My Contribution:

•Create complex algorithm and design Card Reader to scan and manage all business cards and contacts.

•Troubleshoot app and fix critical bugs relating to network connections, Wi-Fi connections, full network access, and Near Field Communication

•Code network module to download JSON from a server, populate a ListView Adapter, and fetch more data as you scroll to the end using AndroidAsync low-level network protocol library.

•Pair program with senior developer to write TDD test cases around critical user stories using Mockito and Espresso

•Make asynchronous HTTP requests, handle responses in anonymous callbacks, and perform multipart file uploads using Asynchronous HTTP Client

•Work on PhotovView image processing library to crop images automatically off all the background of the business card’s photo.

•Integrate Google Play services to create a 'Search in Maps for the address of biz contact' feature and plot custom markers.

•Integrate the bar code scanning widget in the app with real-time scanning from video streams.

•Implement JavaMail Java API to send and receive email via SMTP, POP3 and share biz contacts data from BCR via e-mail.

•Use Apache Commons Logging commons-logging API to implement logging implementation at runtime.

•Design custom DragSortListView to enable drag-and-drop reordering of list items.

•Use the ACRA library to automatically post app crash reports to a Google form.

•Remove ActionBarSherlock as a dependency to SlidingMenu and embed the SlidingMenu in Activity

•Apply Code App Linking feature to eliminate the necessity of having the App Chooser pop up by automatically associating apps with web domains.

•Communicate with the existing C/C++ (NDK/JNI) modules to reuse complex algorithms.

•Involve in the user experience design process, from wireframes and mockups through implementation and release.

ANDROID DEVELOPER

NEXTDOOR.COM, SAN FRANCISCO, CA JAN 2014 – AUG 2015

About the app: The Control™ Card Prepaid app lets you manage your account wherever you are, whenever you need it. That means it’s easy to do things like: Check your account balance and transaction history, send money to friends and family, Find fee-free reload locations, and Load checks straight to your account and it's as easy as taking a picture.

Store: https:/ HYPERLINK "https://play.google.com/store/apps/details?id=com.nextdoor"/play.google.com/store/apps/details?id=com.nextdoor

My Contribution:

•Build the feature to find local events like cookouts, yard sales, and garage sales using Google Fused Location API and Geocoder API

•Use Mockito unit test framework to mock presenters and API responses in MVP architecture.

•Add Google In-app purchasing and Amazon In-app purchasing library to buy Premium services to unlock richer features.

•Integrate Admob SDK display banner, video, and interstitial ads in respective fragments.

•Liaise with external offshore clients to integrate Flurry Analytics SDK to measure, track & optimize mobile user acquisition campaigns.

•Work with API developers to design external data source API responses and use Simple XML Serialization to read and write objects to and from XML.

•Independently added section headers to a list using the StickyListHeaders library

•Replace native bitmap implementation with Universal Image Loader library for asynchronous image loading, caching, and displaying.

•Perform instrumentation/UI testing, simulate any kind of user interaction, and assert what happens after some kind of user interaction.

•Pair program to implement 128-bit encryption to protect customer data in transit and on device using Java Cryptography Architecture and Android Crypto API

•Create a Widget on the home screen to show a home services alert for the current or chosen location.

•Refactor code to perform loose coupling and include Google Guice dependency injection library to inject presenters in views, unit test, and reuse in other contexts.

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

Education

Sam Houston State University / Houston, TX

Computer Software Engineering Technology



Contact this candidate