Post Job Free
Sign in

Senior Android Developer

Location:
Chico, CA
Posted:
November 21, 2023

Contact this candidate

Resume:

Carl Steven Howard II

Senior Android Developer

Professional Summary

A result-oriented professional offering over 12 years of experience building, integrating, testing, and supporting Android applications for mobile & tablet devices on the Android platform. Successfully published 6 apps to the play store.

Skilled in RxJava and Kotlin coroutines for multithreading and consumption of RESTful Web.

Ability to debug, diagnose performance bottlenecks and fix complex issues in Android.

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

Contribution Android teams with mentoring, development, and extensive code reviews.

Able to develop consistent, reliable code that is efficient and clean.

Collaborates well with cross-functional teams, finding ways to add value for other teams, and contribute to overall quality and success of application.

Experience with different testing libraries such as Robolectric, Cucumber, Mockito, MockK, Espresso, Junit.

Proactive self-learner skilled in adapting to new technologies, such as Smart Watches, Chromecast, and Smart TV devices.

Proficient in using best Android UI/UX best practices implementing fragments, diverse layouts, animations, Material Design, Compound Views, and Custom Views.

Designed various applications using optimal architectural design patterns (Model View Controller, Model View Presenter, Model View ViewModel).

Experienced in integrating Android mobile apps with web services using Retrofit, Volley, OkHTTP, JSON, GSON, and REST.

Hands-on implementing latest Android jetpack components such as livedata, databinding, dagger, navigation, viewmodel, paging, etc.

Extensive experience with source control code repositories such as Git, GitHub, and GitLab using tools like SourceTree as well as the command line.

Worked with continuous integration servers (Jenkins, Hudson, Travis) and implemented simultaneous testing on various devices.

Experience with continuous integration tools like Jenkins or Travis CI and Android automated testing frame Experience in working with Android SMS Manager, Location Manager, Google Maps, APIs, and Ajax.

Experience using third-party libraries for image loading, notifications like Firebase, and web services.

Experience with embedded local storage solutions such as SQLite, RoomDB, SharedPreferences, Encrypted SharedPreferences, internal storage, external storage, and cloud storage with Firebase.

Technical Skills

Programming Languages

Java, Kotlin, XML, Groovy / DSL

Android Development

Android SDK, Android Studio, Eclipse

Architecture Patterns

MVC, MVP, MVVM, MVI

Android JetPack

ViewModel, Navigation Component, Live Data, Camera X, BLE, HILT, Paging

Memory Management & Caching

Room, Shared Preferences, Datastore

Design Patterns

RESTful Web Services

Mobile App Database Frameworks

Mobile Software Lifecycle

Code Management

Continuous Integration

Web Services

Design Patterns

Security

Analytics Tools

Third-Party Libraries

User Interface

Performance Optimization

Multithreading

Data Persistence

Singleton, Builder, Factory, Facade, Dependency Injection

Effective connections and responsiveness

Firebase real-time database, ROOM, SQLite, Realm, OrmLite

Android Studio, Android NDK, API design, SDK architecture

Git, GitHub, GitLab, SVN, SourceTree

Jenkins, GitLab, Circle CI, TeamCity

REST, HTTP-based, XML, SOAP, JSON, GraphQL

Singleton, Facade, Command, Builder, Integrator, Visitor, Proxy, Singleton

Shared Preferences, Cipher, Certificate Pinning, TrustManager, SQLCipher, KeyChain, Key Store

Google Analytics, Localytics, Mixpanel, Answers, Flurry, Crashlytics, NewRelic, Firebase products

Volley, Retrofit, Picasso, YouTube, Location API, Maps View, Google View, Google Maps, PayPal, Stripe, Android Pay, Google Wallet Payments, Android Annotations

Android Material Design, CardView, Toolbar, RecyclerView, animations properties, support libraries

Improved performance and UX of modules

AsyncTasks, IntentServices, Handlers, Threads, Runnables, Loopers

SQLite, Room DB, CoreData

Professional Experience

Senior Android Mobile Developer May 2021 – Present

View Lift – Chico, ca

App Name: Monumental Sports Network TV App

Link: https://play.google.com/store/apps/details?id=com.mse.monumentalnetworks&hl=en_US&gl=US&pli=1

Project Synopsis: The project deals with creating modules for TV applications. MSN was an existing application that I helped with creating pages for the application. I was on the NHL team since the creation of the app. The codebase is 100% dynamic and modular. It supports over 30 clients.

App Name: NHL TV App

Link: Not published yet

Project Synopsis: NHL is an app for the National Hockey League. It allows users to watch highlights, post-game interviews, and any video posted for the entire league. They are also able to personalize their home page with videos from their favourite team.

Responsibilities:

Worked on the migration and refactoring from MVP Architecture to MVVM architecture.

Applied several design patters while implementing new features and refactors, Observer, Singleton, Builder, Facade, Adapter, Repository, Router, etc.

Relied on Git for version and source control, and utilized Jenkins continuous integration, with Espresso for automated testing.

Implemented a Recycler with lazy image loading using Glide.

Conducted pair programming sessions for fast paced development and implementation.

Performed code reviews on the work of other team members.

Continuous Integration with Go scripts using pipelines.

Implemented newer features in Kotlin and refactored old Java classes.

Used micro services architecture, closely worked with backend team.

Provided technical advice to the business and design teams on new applications.

Refactored error messages across the application.

Maintained high-quality code using code coverage and code correctness using various tools including Lint and SonarQube.

Implemented Fabric Crashlytics and tracked app crashes for bug finding and fixing.

Applied ExoPlayer for live video features like Dynamic adaptive streaming over HTTP (DASH), Smooth Streaming, and Common Encryption.

Created custom views for interface to improve the user experience.

Created robust automated unit/functional test suites and deployment scripts.

Implemented Recycler View, toolbar, and Card View.

Conducted interviews and meetings with stakeholders and test users.

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

Used implicit intents to redirect to Google Play Store and Android app section.

Used Navigation Drawer and Tabs to provide easy navigation of the Android interface.

Worked with an internal QA team on system, performance, and acceptance testing using Jira for issue tracking.

Usage of Bluetooth Low Energy in the establishment of cellular to TV box connection

Developed registration process with password recovery functionality for the app using Firebase Authentication.

Supported screen resolutions to provide proper resizing across Android devices using Constraint Layouts.

Integrated different modules using Dagger2 dependency injection to ensure separation of responsibilities and create highly testable classes and objects.

Managed two developers on Android to plan and develop the mobile platform.

Senior Android Developer May 2020 – Apr 2021

Western & Southern Financial Group – Cincinnati, Ohio

App Name: CLIC Mobile

Link: https://play.google.com/store/apps/details?id=com.columbuslife.clicmobile

Project Synopsis: The CLIC Mobile app helps financial professionals view, respond to, and accept offers in their pending book of business with Columbus Life. It's super-fast, stable and makes life easier by empowering you with the tools you need to manage your finances.

Responsibilities:

Led a team of 5 members for Android and worked under the SCRUM framework, using weekly sprints including writing unit tests, test automation, and coordinating closely with quality assurance teams.

Implemented robust security features such as biometric authentication, SSL pinning, and encryption algorithms to ensure the safety of sensitive financial data.

Integrate Flow API with Kotlin coroutines to handle streams of values, transform data using Flow operators, code exception handling during flow processing, and combine multiple Flows in clean code architecture.

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

Incorporated Jetpack Crypto, CWAC SQL Cipher, SafetyNet Attestation API, and SafetyNet reCAPTCHA API to protect the app from malicious traffic and assess the device's integrity.

Created a function that provides access to an Encrypted File, using an API like that for accessing Encrypted Shared Preferences.

Set up Dagger Hilt in the Application, use modules to tell Hilt how to provide certain types, add multiple bindings to the same type with qualifiers, and use @EntryPoint to access containers from classes that Hilt doesn't support.

Participated in the major refactoring of the codebase to Kotlin reported directly to the lead and maintained constant communication with backend teams and the product owners.

Create and test with Custom Proxy tool to diagnose connection to Bank's Payment Services

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

Implement data modeling using the Firebase real-time database engine, Firebase notifications, and Firebase Crash Reporting API

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

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

Migrate existing implementation of Urban Airship to Firebase to handle notifications and silent push messages.

Collaborated in the design and development of user interaction functionality, facilitating communication between the user and the server through RESTful web services and JSON parsing.

Utilized continuous integration tools such as Jenkins and Travis CI for automated builds and testing processes, ensuring a streamlined development workflow.

Actively participate in code review strategies to ensure and establish best practices and enforce code quality for new developers and junior developers.

Senior Android Developer Nov 2018 – Apr 2020

McKesson Corporation – Irving, Texas

App Name: MyMcKesson

Link: https://play.google.com/store/apps/details?id=com.mysalesforce.mycommunity.C00D0O000000shioUAA.A0OT3Y0000000007WAA

Project Synopsis: MyMcKesson app helps you stay on top of your health care when and where it works for you. With just a few taps, you can find a doctor, see claims, plan information, and access your ID card. You can even talk with a doctor anytime by phone or video. It provides healthcare and wellness programs as well.

Responsibilities:

Worked on an Android application with a team of 4 Android Developers, 4 QA, and 3 UI/UX designers in an Agile environment.

Refactored code base from MVP to MVVM architecture.

Contributed to migration from Java to Kotlin language.

Leveraged the Flutter framework to develop the MyMcKesson mobile app for both Android and iOS platforms, ensuring a consistent user experience across devices.

Worked closely with backend developers to debug and create proper documentation in multiple endpoints.

Refactored Retrofit network API to create a Singleton approach and refactored callback strategy with Lifecycle Observables to consolidate backend consumption.

Designed and implemented custom widgets and user interfaces in Flutter, creating an intuitive and user-friendly experience for healthcare professionals and businesses using the MyMcKesson app.

Implemented push notifications, analytics, Crashlytics, and dynamic features using Firebase.

Created cache strategy as part of the retrofit client.

Utilized Charles Proxy to increase the performance in the consumption of network endpoints.

Collaborated with login feature to implement different sign-in options utilizing fingerprint device feature.

Debugged using Logcat/ DDMS, crash reports with Crashlytics, and network issues with Charles Proxy/ Splunk.

Implemented XML for data exchange between the MyMcKesson app and external systems, enabling seamless communication and integration with healthcare facilities and personnel.

Implemented security measures, including AWS Identity and Access Management (IAM) and encryption, to protect sensitive user data and maintain compliance with healthcare regulations.

Utilized Android Plot API in various places to chart multiple data from the server.

Created multiple log processes utilizing Logger API to easily identify investment flow as part of the application.

Debugged code to support multiple screen sizes and created multiple layout qualifiers.

Created Custom Views to reduce project overhead can increase the reusability of code in multiple places.

Senior Android Developer Dec 2016 – Oct 2018

Wegmans Food Market, New York, NY

App Name: Wegman ‘s

Link: https://play.google.com/store/apps/details?id=com.wegmans.wegmansapp

Project Synopsis: If you are looking for a faster, easier, more rewarding shopping experience, then you can save time and money with the Wegmans app. It puts convenience, savings, and rewards at your fingertips with its Club Digital Coupons. You can build your shopping list, easily find items by aisle in your local store, browse hundreds of delicious recipes, and get personal recommendations for meals and products based on what you purchase most.

Responsibilities:

Worked on the authenticated services (post-login) such as Edit User Profile, and Get Card Details, had to be onboarded via a networking security library (proprietary) and point the app to new (protected) endpoints which were accessed through methods provided by the library, forgoing the need for retrofit at that stage. This required me to create a sound structure where the two networking packages didn’t conflict with each other.

Developed innovative and impactful features for Android applications using Java and Kotlin to deliver high-quality solutions that met or exceeded client expectations.

Optimized application performance by refactoring existing Java code to Kotlin and improved code readability and maintainability.

Worked on animations in applications like view animations, frame animations, tween animations, etc.

Collaborated on Items Cart feature to collect items from user preference to prepare payment process one and initialize purchase process.

Convert web view components to native app implementation.

Use Firebase Realtime Database for data synchronization and Firebase Remote Config to update configuration values in Product Fragment and User Account Fragment

Use Android X Roboelectric to test fragments using Fragment Scenario Util and test View Models using the build View Model function to create a new View Model for each test.

Integrated Stripe Purchases SDK to unlock access to the same subscription content.

Followed Agile methodology for implementing the Application.

Embedded Google Maps API, and GPS Location Data into the app with zooming controls.

Maintained code quality by actively participating in code and design reviews.

Analyze multiple user interface platforms and consulted with clients.

Execute maintenance procedures (user interface, errors with inputs, debugging, publishing) apps.

Successfully deployed an app on the Android App Store and supported the app for multiple Android OS releases.

Injected essential app code protections and threat detection sensors into CI/CD cycle after code development, without disrupting the DevOps process.

Senior Android Developer Oct 2014 – Nov 2016

Hollister, Columbus, GA

App Name: Hollister Co. - Abercrombie & Fitch

Link: https://play.google.com/store/apps/details?id=com.abercrombie.hollister

Project Synopsis: The fashion app helps users organize their closets, create outfits, plan with a calendar, track statistics, scan and search colours, and shop online. Features include unlimited photo storage, background removal, colour search, outfit categorization, sharing, packing list generation, statistics, automatic backup, and integrated shopping.

Responsibilities:

Led the development of the Hollister Co. app, implementing all features from scratch using the latest Jetpack tech stack.

Perform code migration from MVP to Google Architecture components where in the code.

Presenter implementation classes were replaced with ViewModel with slight modifications.

Perform important tasks like adding TDD test cases for ViewModel, repository using Mocktio, Mockk, performing Automated UI test using Espresso, adding Bit rise CI server, Firebase Remote config to change UI background or font setting and enable Push notifications.

Implement all the infrastructure of the app using MVVM architectural patterns and components. Each module contained its own View Model and shared 2 Repositories (Authenticated and Non-Authenticated Repositories)

Develop the camera feature to take and import pictures of clothes, using the Camera2 API for faster and higher-quality image processing.

Implement the colour search feature that scans and matches colours, using OpenCV for computer vision algorithms.

Work on the calendar feature that allows users to plan outfits for each day, integrating the Google Calendar API for seamless integration.

Develop the statistics feature that provides insights into users' clothing habits and values, using SQLite and Room database for efficient data management.

Implement the backup and sync feature, using the Google Drive API for secure and automatic data storage and retrieval.

Work on the shopping integration feature that allows users to search and shop online, using Retrofit and Glide libraries for fast and efficient network calls and image loading.

Implemented editing tools that allow users to crop, rotate, and remove backgrounds from images, using the latest image processing libraries and algorithms.

Develop the packing feature that automatically adds clothes from outfits to a packing list, using the latest data processing algorithms.

Implement the category and sub-category organization feature, using custom views and animations for a clean and intuitive user interface.

Work on the notes and details feature that allows users to add descriptions and metadata to clothing items, using custom dialog and input views.

Develop the search feature that allows users to find clothes by category, color, season, size, brand, and fabric, using advanced search algorithms and filters.

Implement the sharing feature that allows users to share outfits on social media platforms, using the Android Share Intent API for seamless sharing.

Android Developer Nov 2012 – Sep 2014

Cricket Wireless, Atlanta, GA

App Name: myCricket

Link: https://play.google.com/store/apps/details?id=com.mizmowireless.acctmgt&hl=en

Project Synopsis: The myCricket App is simple, seamless, and FREE. It gives you the freedom to manage your Cricket Wireless account anywhere, anytime with just a tap of a button.

Responsibilities:

Worked on payment module to create a payment and process money transfer using OAuth2 tokens and PayPal API.

Applied RxKotlin in conjunction with RxAndroid, and RxBinding libraries to make the app multithreaded and perform synchronous operations.

Designed a GSON representation to parse Web service requests quickly. Detected new improvement opportunities and implemented them using the Volley Library and persistent data.

Performed technical build work on an MVVM architecture.

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

Wrote computer source code in Kotlin language.

Implemented Jetpack component for data binding along with Dagger 2 dependency injection.

Used Activities, Services, Broadcast Receivers, SQLite, and preferences Android components.

Developed solutions that integrated with the company's proprietary platform and other 3rd-party systems using native SDKs, web services, and other technologies.

Used Firebase real-time database for persisting content, and Room to store user logon info.

Used Firebase Cloud Store for a repository of reusable content and content services.

Worked with Glide and Picasso for image management and Exo Player for audio-video playback function.

Conducted static code analysis and code review using Collaborator.

Handled continuous integration with Jenkins.

Produced a customizable interface with multiple layouts several Compound Views and Custom Views.

Coded Bluetooth BLE services to scan devices and communicate attributes between them using the RxAndroid BLE library.

Android Mobile App Developer Jan 2011 – Oct 2012

Harley-Davidson, Milwaukee, Wisconsin

App Name: Harley-Davidson

Link: https://play.google.com/store/apps/details?id=com.harley_davidson.ride_planner

Project Synopsis: Take the infield experience with you everywhere you go! The Harley-Davidson Mobile App gives you an all-access pass to plan, navigate, and connect with a network of dealers and riders using the official app from Harley-Davidson®. and keeps you up to date with the latest news, photos, and videos.

Responsibilities:

Refactored code base from MVP architecture to MVVM architecture.

Worked with the programming team and migrated existing Java code to Kotlin JVM language.

Configured log-in feature with multiple sign-in options utilizing fingerprint device feature.

Created push notifications message from Firebase console and debugged message received from Firebase console.

Debugged using logcat/ DDMS, crash reports with Crashlytics and network issues with Charles Proxy/ Splunk.

Improved adaptive video streams and customized behavior of ExoPlayer’s PlayerControlView to display a playback controller to the user.

Assisted web with automatic/ manual QA, and helped QA write Cucumber/ Ruby tests for web as well as for Android.

Used Android Plot API in different places to chart multiple data from the server.

Refactored fragments to CustomViews to reduce the handling of multiple callbacks and reuse layouts in multiple screens.

Used Code management using Git and Bitbucket for various parts of this Android project.

Contributed to a team of engineers in cross-functional teams (including QA, Product Management, etc.).

Made devices discoverable using Bluetooth BLE.

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

Applied sound mobile security practices such as Obfuscation, Encryption, SSL, Certification Pinning, and Tokens.

Education & Certification

Bachelor’s in computer science

Salem State University - Salem, MA

Internship

Technical Consultant Intern at Computer Tutor, Melbourne, FL, September 2014– January 2015

Assisted in the maintenance and servicing of a server room, by adjusting the wiring and connections.

Sales consultations with exceptional customer service to each client.

Completed invoices based on clients’ requirements.

Educated clients on current technical issues and on preventive ways to avoid future technical issues.

Performed virus removals, software installations, operating system reloads and hardware installations.

Marketing Number: 530-***-**** Marketing email: ad1bwv@r.postjobfree.com



Contact this candidate