Sr. Android Developer Resume
Bellevue, WA
SUMMARY
- Skillful Android Developer with excellent coding skills in Java and Kotlin, and expertise in native Android development and frameworks such as Firebase and Reactive.
- Full stack developer skilled in back - end network communications and UI implementation of UI/UX designs.
- Experience developing highly efficient Java code and view layouts and the ability to diagnose performance bottleneck.
- Thorough knowledge in Android UI Design and Application Frameworks such as Activity Manager, Fragments, Resource Manager, Notification Manager, Location Manager, Telephony Manager, Content Providers, Map View, Map APIs, GPS, etc.
- Skilled in Object-Oriented Design and Programming using Python and Java.
- Experienced with multiple data storage methods include using SQLite, Shared Preferences, Local Storage, SD card.
- Investigates and tests new technologies that may be beneficial to the project.
- A sound understanding of HTTP and REST-style web services.
- Familiar with all Agile Scrum roles; able to fill-in as needed.
- In-depth knowledge of the general mobile landscape, architectures, and emerging technologies.
- Experience prototyping mobile experiences.
- Experience in creating Android mobile apps from scratch to finish and in debugging, and maintenance and updates.
- Use of Android's concurrency models including the design of long running services
- Expert in Android SDK, and skilled with both native and third-party frameworks.
- Experience with network programming and consuming third party APIs.
- Knowledgeable of implementation and configuration of cloud integration services, ex: Parse, Firebase and Google Cloud Messaging on Android mobile apps.
- Experienced in continuous integration using Jenkins, Hudson, Travis, Bitrise, io.
- Management of version control codebase repository (Git, GitHub, SVN, BitBucket).
- Able to create Android applications based on UI/UX requirements and mockups.
- Have participated in the innovation, design, and architecture of the apps.
- Implementation of apps in MVP architectural pattern and design patterns (facade, proxy, builder, factory, abstract factory, etc.).
- Worked on various applications using Java integrated IDEs like Eclipse, IntelliJ, NetBeans, Android Studio and STS.
- Hands-on working with relational databases like SQLite, MySQL, and non-relational databases.
- Worked on various Operating Systems like UNIX, Linux, and Windows OS.
- Experienced with version control systems like Git and GitHub.
- Experience working with various development methodologies like Waterfall, Scrum, and Agile.
- Experienced with Unit Testing and System Integration Testing.
- Good knowledge about machine learning and skilled in using TensorFlow.
- A sound understanding of HTTP and REST-style web services.
- Accustomed to the integration of social media web services, libraries, and APIs and SDKs such as Facebook, YouTube, Cloud Speech-to-Text, Instagram, Google + and Twitter in Android development.
TECHNICAL SKILLS
Languages and Tools: Java, Kotlin, C++, Python, HTML, CSS, MySQL, Cuda, Ruby
IDEs: Android Studio, IntelliJ, Eclipse
Design Patterns: MVC, MVP, MVVM, Singleton, Dependency Injection
Version Control: Git, SVN, GitHub, SourceTree, Tower, BitBucket
Native Java: Java Swing, Ajax Swing, GWT
Misc. Skills: Arduino, Ghost, Remedy, LabView, Windows 7, Windows 8, Mac OS, Linux, Code Warrior, Microsoft Office Suite
SDK: Android SDK
Native Android: C standard Library, MPL and MECL libraries, Ksoap2 library, Jersey Library, open source libraries, Google Maps API, Volley, Junit, Google Places, Retrofit, RecyclerView Animator, Location Services, FloatingActionButton, Google Cloud Messaging, Schematic, REST, Bluetooth Low Energy, NineOldAndroids, JobScheduler, Push Notifications, Espresso, Google Play Services, Volley, Android Annotations
Third Party: Firebase, Retrofit, Reactive-X, Fabric, Glide, Google Custom Search, Samsung SDK, Logger, Spork, Dagger, Mosh, Answers, RxJava, RxCache GSON, Robolectric, EventBus, VidEffects, Robotium, Espresso, Leak Canary
PROFESSIONAL EXPERIENCE
Confidential, Bellevue, WA
Sr. Android Developer
Responsibilities:
- Work within an Agile team to deliver across the entire product life cycle - concept, design, build(code), deploy, test, release, and maintain unit, functional, and performance test automation.
- Contribute to planning and estimation, daily scrums, sprint reviews, and retrospectives.
- Create new features such as Architecture Components to enable easier development by providing libraries and guidance on practical application development.
- Apply MVVM app architecture for ease of maintainability and extensibility, and improved quality testing.
- Implement new features using android databinding library, using two-way data binding with an MVVM architecture.
- Simplify asynchronous data loading into UI, supporting data persistence and preventing memory leaks usingLifecycleOwner,LiveDataandViewModelcomponents.
- Configure browsing items by image and sorting by category or location functions; coded asynchronous and blocking requests, file upload(multipart/form-data)and requesting timeout using RxJava2,OkHttp, GSON, Glide, and Retrofit networking library.
- Create Prove of Concept to implement coroutines to substitute Observable pattern implementation across the project.
- Implement newer features in Kotlinand migrate older features to Kotlin.
- Create seller profile page UI/UX and integrating AWS Mobile Hub User Sign-in feature to access the AWS services with validation of user identities from multiple identity providers.
- Refactor codebase withJobIntentSerivce,WorkManager, Paging, and Slices for new Android P compatibility.
- Follow TDDs Red-Green-Refactor pattern to build a new feature using Mockito unit testing for model layer and Espresso for UI presentation Layer.
- Use Crucible for code reviews, perform Git pull requests inGitFlowprocess and optimize codebase with a static code analysis tool.
- Create modules, components, and scopes to inject view models and network objects using Dagger dependency injection mechanism.
- Upgrade features relating toUrbanAirshipSDK for Push Notifications, Rich Media Messaging, In-App Purchase, and Subscriptions in paid product flavor.
- Perform code migration using Android KTX(Kotlin extensions).
- Implement features such as extension functions/properties, lambda functions, named parameters, and parameter default values.
- Participate in Pull Request Approval to enforce code quality and code coverage of 85% across the entire project.
- Implement Kotlin Coroutines for caching into a Room DB to avoid blockage of the main thread.
- Collaborate with backend developers to test and debug multiple endpoints to ensure the flexibility and the stability of the backend servers.
- Utilize null safety features in Kotlin to create a null safe application using Kotlin tools such as the nullable operator as well as the Kotlin scope functions.
Confidential, Denver, CO
Senior Android Developer
Responsibilities:
- Worked in Android Studio and coded the Android app using Java and Kotlin.
- Extensively used Dagger 2 for dependency injection andRxJavafor high performance with multithreading.
- Architected the appwith MVParchitectural pattern, and various design patterns such as Abstract factory, Builder, façade, and other behavioral patterns as well.
- Implemented inline input validations and custom error messages natively in Android.
- Implemented the new fingerprint login library, which was provided by our venderAcceptto.
- Attended design meetings to review UI/UX flows for the newtouchID(fingerprint login) library
- Redesigned the splash screen flow; signup/ login items are now separate from the splash screen logic.
- Assisted web with automatic/ manual QA, and helped QA write Cucumber/ Ruby tests for web as well as for Android.
- Designed the UI enabling fingerprint registration to user account and display confirmation “enrollment success” screen
- Trained a new Android dev in relation to thetouchIDstories I worked on
- Collected defect information for future sprints and in relation to the library fromAcceptto’
- Used Timber for error handling and logging. Used Leak Canary andAppBoy, but all the logs were added to tech debit which were never touched.
- Appium andSauceLabsused forforUI/UX tests
- Use of Regex for Java and Cucumber/ Ruby
- The project team used Rally for storyboards.
- Rubyminesused to aid in the development of making/ debugging tests.
- Utilized Espresso for testing.
Confidential, New York, NY
Android Mobile Application Engineer
Responsibilities:
- Worked on a medium-sized team and followed an Agile project methodology with pair-programming and daily scrums.
- Applied Jenkins CI.
- Tracked distance traveled for mileage reimbursement and generated PDF, CSV, and ZIP reports.
- Created/edited/deleted all receipt categories.
- Synchronized data between Android device and web servers and implemented automated execution and integrated account management and authentication into data transfer.
- Architected the app using data binding library to operate with observable data objects, and customized generated binding classes and supported two-way data binding.
- Integrated Google Play billing service API for buy one-time products, query for in-app product details, and tested acknowledging purchase with license testers.
- Integrated Android-Query (AQuery) library for doing asynchronous tasks and manipulating UI elements to display distance traveled for mileage reimbursement.
- Enabled users to search and pinpoint desired listings based on multiple varying inputs viaSearchViewand Content Provider allowing for customized findings.
- Designed and integrated a "Terms and Conditions" screen where the user can review, in detail, the "Terms of Service" and "Licensing Agreement".
- Validated asynchronous operations whose results affected subsequent operations in a UI test using Idling Resource Espresso.
- Provided backwards-compatible notification API with Wear and Auto support, media playback and routing.
- Created modules, components and custom scopes using Dagger2 and perform loose coupling.
- Worked withScribeJavaOAuth library to sign HTTP messages and request tokens from an OAuth service provider.
- Convertedall Relative/Linear layouts toConstraintLayoutsto flatten the view structure and improve performance.
- Created a generic Retrofit wrapper class and put in an internal library to replace Volley and incorporatedRxJava2 for API calls.
- Focused on implementing rich user interface per UI/UX and Google's Material Design specifications. Used third party Z-Xing library to scan items using barcode scanner.
Confidential, Seattle, WA
ANDROID DEVELOPER
Responsibilities:
- Followed an Agile/iterative development process on the Android team (Scrum, Sprint, etc.).
- Implemented New Relic to record custom metrics and networking.
- Refactored unorganized spaghetti codebase into MVC architecture following SOLID principles.
- Improved search by keyword, ingredients options UI, and data-parsing.
- Downloaded cooking videos usingDownloadManagerand saved it on internal phone memory.
- Incorporated Facebook SDK to share cooking triumphs with friends.
- Posted Cook’s profile data to backend usingRestFulweb-services usingAsyncTaskLoaders,
- Pair-programmed to call native C/C++ Code using NDK.
- Worked closely with the external designer team to import the assets correctly through Zeplin web platform.
- Used Android web view for loading HTML pages and working around cookie manager.
- Added ACRA library to automatically post-crash reports to aGoogleDocform.
- Fixed critical and major bugs reported by testers on Jira 2-week sprint cycle.
- UsedBitBucketfor source control management and continuous integration with Travis CI.
Confidential, New York, NY
Software/IT Specialist
Responsibilities:
- Assessed in-house computer and IT systems and made recommendations for upgrades and improvements.
- Programmed a variety of in-house software applications to automate and streamline various business processes.
- Utilized JavaScript, jQuery, and HTML to respond with the backend server.
- Developed web and client/server applications using C#, Oracle, and Entity Framework.
- Analyzed client needs to create multiple alternatives with a software-driven approach.
- Maintained a standalone desktop application to manage digital documentation.
- Resolved software defects reported from clients.
- Created Ad-hoc SQL queries to support client requests.
- Scrubbed data in SQL for erroneous problems with data input and/or software defects.