Daniel Kottenstette
Sr. Android Developer
addwm8@r.postjobfree.com
ABOUT ME
6+ years’ experience in developing complex Android applications for Fortune 500 clients
Experience in strategically contributing to organizational/function goals
Experience with Agile methodologies/SCRUM
Experience with third-party libraries and APIs and integration, leveraging OOP principles and integrating SOLID principles for high-quality code
Strong working knowledge of the general mobile landscape, architectures, trends, and emerging technologies
Driven to innovate and explore solutions to implement business requirements into technical requirements
Strong understanding of MVP, MVVM pattern and clean Architecture
Experience with Native UI building and knowledge of the component life cycles
Ability to work with newer technologies while showing drive and adaptability
Experienced with TDD and implemented test automation and unit testing
SKILLS
Kotlin, Java, Java Spring/Java J2EE, Jasmine, Espresso, Mockito, JetPack, Powermock, Google Assistance API, Reactive Programming, OAUTH2, GIT, Jira, Trello, Bitbucket, Github, Jenkins, MVVM, MVP, Content Provider, Gradle, Google Maps, Espresso, JUnit, Unit Testing, Mockito, PowerMock, DaggerMock Eclipse, Android Studio, SQLite, AsyncTask, Material Design, RecyclerView, Firebase, Google Analytics, Push Notifications, Firebase Real time database, Firebase Crashlytics, TDD, Agile, Design Patterns, RESTful Web Service, Bluetooth BLE, TDD, Kanbaan, RESTful web services, Microsoft Azure, AWS Cloud, Amazon Alexa
PROJECT EXPERIENCE
Sr. Android Developer
Telenav / Santa Clara, CA
June 2019 – Present
ARP is a navigation app made for embedded Android systems in GM, Ford, and Toyota vehicles with more brands to be added. Media Kit is a cloud service that aggregates multiple music providers like Napster, Apple Music, and Spotify and returns universal models of the music data.
Implemented Firebase into an existing android application with Kotlin, as well as another remote config service called Launch Darkly
Collaborated with back end engineers to implement different Restful APIs for the Rich Data POI and Parkopedia services
Added in support to pay from your car for parking in advance through the Parkopedia service and library
Administered JIRA tasks and set-up sprints for ARP
Operated as a scrum master and project manager for ARP for three months
Used intents and broadcasters to enable cross app communication between ARP and another app VIVID
Implemented SOLID principles for the entire ARP codebase that helped the refactor and made ARP more maintainable in two weeks for a 100k+ lines of code to sift through and make better
Helped with the demo of VIVID with ARP to Rivian and impressed the CEO so much that he wanted to use our products when Rivian launches there first cars and trucks
Implemented over 100 Restful APIs in the Cloud for Media Kit
Two-week sprints in an Agile environment with Retrospective week between sprints cycle
Team size varied between the projects, ARP had a team size of anywhere from 5 to 15 people, Media Kit has a team size of 3
Created templates for UI resources and made them very easy to implement within the ARP android code more easily instead where it was all previously hard coded in
Maintained multiple similar projects with a single codebase and made sure neither affected the other through separating the unique parts of the code through flavors and having the common business logic exist for both flavors to share from
Created UI templates through XML in Android Studio
Made a script to automatically deploy a JAR file to the Telenav Cloud server
Help kickstarted a brand-new cloud/Java Spring/J2EE project and meticulously maintain and add features very rapidly
Implemented Alexa Auto 1.4, 2.0, and 2.1 Libraries into ARP
Implemented a TTS engine called readspeaker into ARP
Implemented 3 modes for ARP to draw map data from Onboard, Hybrid, and Pure Streaming
Aggregated artist data from Napster, Spotify, and Apple Music through their public APIs
Provided a detailed weekly report of what was done by me and the team, and helped plan and groom future sprints
Senior Android Developer and App Architect
Nike Run Club / Beaverton, OR
April 2018 – June 2019
NRC has the tools you need to run better, including GPS run tracking; audio guided runs; weekly, monthly, and custom distance challenges; customized coaching plans for your goals; and nonstop motivation from your friends.
Link: https://play.google.com/store/apps/details?id=com.nike.plusgps
Incorporated Baidu Geolocation API to improve GPS access to get the users position
Hold daily calls with clients to include Segment SDK to collect customer data and send it to Firebase for analytics, marketing automation, and raw data access
Performed phased Java to Kotlin migration, resolve conflicts, refactored code with extension function, delegate properties, sealed classes, null safety check and data classes
Worked on domain and data layer to remove Volley library implementation to RxKotlin, coroutines and executors
Performed unit testing, enable mocking of static methods, constructors, final classes and methods, private methods, removal of static initializers using Mockito2 and Powermock
Removed Dagger implementation with Koin dependency injection for simply declare modules, dependencies, scopes and subcomponents
Connected with Nike Bluetooth device using BLE SDK and develop algorithm to receive pace, distance, GPS route, heart rate, and mile splits data into a custom view on device
Restructured the product flavours using MVP architecture
Implemented Checkout implementation of Android In-App Billing API (v3+) to load all the purchases using continuationToken or SKU details
Worked with Google Fit SDK to connect app and devices to Google Fit with the Recording API and access the user's fitness history with the History API
Conduct code reviews using crucible tool and mentor offshore junior developers in Agile, Scrum
Collaborated with our product owner to deliver apps and continue to optimise performance post-release
Sr. Android Native App Developer
Hinge / New York, NY
February 2017 – March 2018
Hinge is the dating app for people who want to get off dating apps. And it is working. Currently, 3 out of 4 first dates lead to second dates.
Link: https://play.google.com/store/apps/details?id=co.hinge.app
Replaced IntentServices, AlarmManager implementation with WorkManager API to perform background processing of request
Created new chat features and refactor code using MVVM Data binding to make presentation layer and the logic loosely coupled
Included Google In-App billing feature for auto renew subscription at least 24-hours before the end of the current period and buy digital content
Used App Links Assistant in Android Studio to add Android App Links and configure Firebase Invites
Separated logical components of app project into discrete modulesApp bundles and customize feature delivery by using App Bundles
Performed API request using Retrofit, RxJava, okhtpp and cache responses in Room local database for offline usage
Integrated Kochava SDK to track all post-install activities from location events to purchases, and syndicate data to Mixpanel
Performed AES 256 encryption of API request and store user details in keystore
Improved login feature of the app using OAuth library for token-based authentication and authorization
Upgraded Google in-app purchases API and GooglePay API to buy digital access to NYT Crossword and NYT Cooking for $24.99/month
Used Espresso for the automated UI testing recyclerview interactions and Mockito was used with Retrofit for mocking the API call (Mockserver)
Work on two separate and very different codebases at the same time keeping multiple stakeholders in the loop on any issues
Used Atlassian Bamboo as Continuous integration system to track released versions with all of fixes de-tailed in a changelog and code backup
Mid-Level Android Programmer
Zappos.com/ Las Vegas, NV
March 2016 – January 2017
Zappos makes shopping easier! Shop all the top brands and latest trends of shoes, clothing, accessories & more.
Link: https://play.google.com/store/apps/details?id=com.zappos.android
Share your favorite styles and trends on social media
Find the perfect fit! On-trend women's, men's, and kid's styles from the latest & best, clothing & footwear brands.
Improved app performance, check memory leaks, OOM exceptions and perform static code analysis
Perform bug fixes relating to filters getting reset and address issues relating to Android 4.4 crash
Migrated from Paypal sdk to Braintree sdk and include card.io for credit card scanning
Implemented Certificate pinning using Okhttp and use Apache HTTP client to initialize the obtained bks keystore for SSL connections
Improved UI using Recyclerview, toolbar, cardview, animation and themes
Improved Android Keystore program to store cryptographic keys in a container and protect key material from unauthorised use
Improved search UI to find what you are looking for and coded ‘Add to bag’ and ‘checkout’ user interface
Programmed codehaus jackson XML converter with retrofit configuration in service layer
Adopt RxLifecycle, RxBinding to bind the network calls to the Android lifecycle and automatically complete sequences based on a second lifecycle stream
Migrated SQLIte database to Realm database to store items locally, user- profile information and preference settings
Followed documentation to integrate Facebook and Twitter for app-sharing, indexing and authentication
Helped define and maintain visual guidelines and ensure consistency throughout the app
Android Developer
Trader Interactive / Norfolk, VA
January 2015 – February 2016
CycleTrader is your best source for all your motorcycle needs. Search, save, or share more than 100,000 new and used detailed motorcycle listings, sold by dealers and private sellers nationwide.
Link: https://play.google.com/store/apps/details?id=com.DWS.cycletrader
Used Moshi custom adapter to customize how values are converted to and from JSON
Resolve intra-library dependencies and replaced the standard System.loadLibrary call using ReLinker library
Find accounts on the device and read Google service configuration
Upgraded Google Maps sdk implementation to display motorcycle dealer’s custom marker near user location with insurance quotes and estimate payments data
Developed algorithms and code feature to search, save, or share 100,000 new and used detailed motorcycle listings
Designed for multiple screens sizes and densities using fragments, width-qualifiers and nine-patch image drawables
Executed unit test strategies on all supported platforms to help improve overall quality and tested code coverage using Espresso
Refactored unorganised spaghetti codebase into MVC architecture following SOLID principles
Scheduled all network requests such as fetching responses for image from web and backend
Used GreenDAO with SQLCipher and secure shared preferences to persist data securely inside the application
Upgraded Samsung’s and Amazon’s In-App Purchasing API payment service to provide a checkout process for the sell virtual items, services and subscriptions
Collaborated with the product management team to clarify designs and requirements
Android Mobile App Developer
Epic Systems Corporation / Verona, WI
April 2014 – December 2014
MyChart gives you access to your lab results, appointment information, current medications, immunization history, and more on your mobile device.
Link: https://play.google.com/store/apps/details?id=epic.mychart.android
Communicated with backend server using HTTP classes and AsyncTask to get data and display family's health information
Refined the application using latest classes, Fragments, Receivers, Widgets, notifications and industry standard UI libraries
Used the support libraries to bring backwards compatibility using fragments and actionbar to previous Android versions
Integrated Google Analytics for efficient tracking of user events within the application
Upgraded Smooth ProgressBar custom view to support Android lollipop version (5.0)
Used MVP, Facade, Singleton, and View holder patterns in the code to improve logic
Used Apache Commons Codec to produce Base64 encode/decode mechanism for web service communication
Pair programmed to call native C/C++ Code using NDK
Added ACRA library to automatically post-crash reports to a GoogleDoc form
Improved the hardware controls in the app to take pictures and videos, change audio settings and record audio
Integrated Google Calendar API to manage appointments
Worked closely with QA, from definition of new features up to the final release
EDUCATION
Iowa State University Ames, IA
Bachelor of Science: Mathematics