Sr. Android Developer Resume
CA
SUMMARY
- 8+ years of experience in Android development.
- 6 apps published to Play Store.
- Effective working on Android development teams applying Agile/Scrum methodologies.
- Experienced working on Agile teams and applying Agile project methodologies with Daily Scrums, Sprints, Sprint Planning, Sprint grooming, Sprint Retrospective, and Sprint Backlog.
- Hands on with MVP, MVVM, and MVC architectures.
- Program in Kotlin and Java, with experience converting Java programs to Kotlin.
- Experience with frameworks RxJava, RxKotlin, RXBluetooth, and RxAndroid.
- Stay up to date on the ever - changing mobile and Android technology landscape.
- Knowledge and demonstrated skill applying Activities, Fragments, Custom Views, Services, Volley, Support library, and 3rd- party libraries.
- Fully conversant with OOP principles, software development frameworks, and design patterns.
- Strong knowledge in Android multithreading frameworks: AsyncTaks, IntentServices, Handlers, Threads, Runnables, Loopers.
- Implement asynchronous services to update local storage and notify updates in the UI (Content Providers, Services, SyncAdapters, Loaders).
- Implement the RESTful data consumption using Retrofit with an OkHttp client, GSON and Jackson converters and a custom interceptor.
- Experienced using the main ViewGroups provided by the Android SDK: FrameLayout, LinearLayout, RelativeLayout, CoordinatorLayout.
- Knowledge/experience applying dependency injection (DI) framework for Kotlin development.
- Dependency Injection with Dagger 1, Dagger 2.
- Utilized Google Material Design for the user interface (UI)/user experience (UX) re-design of the apps look, feel, and functionality.
- Configured Charles Proxy for web debugging.
- Applied various project management tools such as Rally to track each phase of the development iterations and releases and map defects with the user stories.
- Set up the development process for real-time data exchanges by deploying a Firebase platform.
- Hands-0n with various JetPack components to make development and maintenance more efficient.
- Applied Android Studio as the primary IDE to develop, test and deploy Android applications.
- Used Bitbucket to manage Git repositories and versioning control.
- Optimized Android applications by implementing designs in high-performance frameworks and libraries.
- Improved application performance using Activities, Activities for Result and RecyclerViews.
- Adept with Android performance tuning and crash reporting applications as well as use of Leak Canary, Firebase Crash Reporting, Crashlytics and various profiling tools.
- Implemented the Android application in MVP architectural pattern.
- Used design patterns: MVP, Factory, Singleton, and Decorator.
- Implemented automated testing with Espresso and Mockito.
- Experience with various APIs including Facebook, Twitter and YouTube
- Experience uploading apps on the Google Play Store.
TECHNICAL SKILLS
Languages: Java, Kotlin, C++, HTML, CSS, JavaScript, Scheme
Databases: Room, MySQL, SQLite, Firebase DB
IDE: Eclipse, Android Studio, IntelliJ
Multimedia: Glide, Picasso, ExoPlayer, Videoplayer
Development: JIRA, Continuous Integration, Git, GitHub, TDD, BDD, Kanban
Project Methodologies: Agile, Scrum, Waterfall
Android Dev: Espresso, Mockito, Moshi, Retrofit, JUnit, Glide, Loopers, Loaders, AsyncTask, RxJava, RxKotlin, RxBluetooth, RxAndroid, GSON, LiveData, MVVM, MVC, MVP, Room, Dagger 2, Jenkins, Android Profiler, Coroutines, Layouts, Google Architectural Components, EventBus, RecyclerView, Services, LiveData, Google Maps API, Mockito, Mitek, MiSnap SDK
PROFESSIONAL EXPERIENCE
Confidential, CA
Sr. Android Developer
Responsibilities:
- Worked on an Android team with 6 iOS Developers, 4 Android Developers, 4 QA and 3 UI/UX designers in an Agile environment.
- Refactored code base from MVP to MVVM architecture.
- Contributed with migration from Java to Kotlin JVM language.
- Worked closely with backend developers to debug and create proper documentation in multiple endpoints.
- Refactored Retrofit network API to create a Singleton approach.
- Refactored callback strategy with Lifecycle aware Observables to consolidate backend consumption.
- Utilized AndroidPlot API in different places to chart multiple data from server.
- Created multiple log process utilizing Logger API to easily identify investments flow as part of the application.
- Debugged code to support multiple screen sizes and created multiple layout qualifiers.
- Created CustomViews to reduce project overhead can increase reusability of code in multiple places.
- Created push notifications message from Firebase console and debugged message received from Firebase console.
- Created cache strategy has part of the retrofit client.
- Utilized Charles Proxy for increase the performance in the consumption of network endpoints.
- Collaborated with login feature to implement different sign in options utilizing fingerprint device feature.
- Assisted web with automatic/ manual QA, and helped QA write Cucumber/ Ruby tests for web as well as for Android.
- Debugged using Logcat/ DDMS, crash reports with Crashlytics, and network issues with Charles Proxy/ Splunk.
- Utilized GSON Convertor Factory to parse JSON object in web services consumption and used Retrofit and RxJava for essential framework to provide asynchronous communication with back-end services.
- Delivery anywhere you are. DoorDash offers the greatest selection of your favorite local and national restaurants -- more than 310,000 menus across 4,000+ cities in the U.S.,Canada and Australia. Spend more time doing the things you love -- we'll take care of the rest.
- Tech Contributions:
- Worked with other developers to write software based on backlog items.
- Worked with testers to ensure they are engaged and ready to test the software at the right time in the development cycle.
- Supported, refactored, and enhanced existing production systems.
- Organized business logic, workflows, processes, rules in Domain layer and communicated with data/ presentation layer in MVP architecture.
- Integrated OAuth2 authentication with Identity Server.
- Enhanced the module that communicates with the Java WebServices with Volley library.
- Collected customer data and send it to your tools for mobile analytics, marketing automation, and raw data access with SQL using Segment SDK.
- Replaced Samsung Pay with card.io library for credit card scanning and BrainTree SDK.
- Used GitFlow for code integration.
- Utilized Jenkins for continuous integration.
- Applied JIRA for bug tracking.
- Worked on Schedule Deliveries’ and Real Time tracking’ acceptance criteria’s in TDD manner.
- Wrote automated UI test cases using Espresso and Mockito and functional integration testing using Robolectric API.
- Performed additional beta testing using Google Cloud testing mechanism.
- Encrypted card details in Android Keystore system to store cryptographic keys in a container to make it more difficult to extract from the device.
Confidential, Redwood City, CA
Android Developer
Responsibilities:
- Design main app screen using material design principles using coordinator layout, Recyclerview, collapsable toolbar and bottom-up sheets to display trendy fashion, shoes, beauty, jewelry, watches and accessories. Worked in a medium size team, following an Agile like methodology, and apply Pair-programming. For CI/CD we used Jenkins CI and data repository with SVN.
- Integrate Snap Creative Kit SDK to let users send photos or videos to the Snapchat camera preview and use Snapchat tools .
- Work on Braintree Client with Encryption Library to securely collect payment information from customers and customize checkout experience.
- Pair-program to integrate Mitek MiSnap to capture ID documents like passports, id cards, etc. to verify users' identities.
- Perform vital task like HTTP transport, error handling, authentication, JSON parsing and media download/upload using Google GData client Java library.
- Use SignPost oAuth library to sign HTTP messages and request tokens from an OAuth service provider.
- Create modules, components and custom scopes using Dagger2 and perform loose coupling.
- Write code on network module to implement Okhttp caching mechanism and use Mockserver to mock API responses.
- Validate asynchronous operations whose results affect subsequent operations in a UI test using Idling Resource Espresso.
- Work existing Clean code architecture in MVP and create shopping module, add to basket module and customer profile module.
- Provide backwards-compatible notification API with Wear and Auto support, media playback and routing.
- Develop Compatibility APIs for checking and requesting permissions in app
Confidential, Seattle, WA
Android Developer
Responsibilities:
- I worked on an Android team consisting of 5 developers working within an Agile project methodolgy. Hands-on technical work highlights:
- Customized Home Filters to enable search by price, property type, and desired features.
- Configured app to enable users to save favorite homes and property searches to their Confidential account.
- Configured app to get directions and alert a user to attend every open house in user’s area.
- Utilized Facebook Stetho, Charles Proxy API, Memory profiler, HierarchyViewer and Android Profiler to identify issues and enhance the performance.
- Configured MixPanel API to send instant notifications when a new home hits the market and push notifications for any house, condo, or townhome that meets search criteria.
- Created bound service to send requests, receive results, and even do so across processes with interprocess communication (IPC).
- Created a custom transition animation and applied one or more animation effects to all of the views in a view hierarchy.
- Coded the algorithm necessary to properly structure the query for the request needed to implement the “Filtered Search” feature.
- Migrated from AsyncTasks and IntentServices-based components to a reactive paradigm with RxJava concurrency modelling.
- Included Android-Job utility library to run jobs delayed in the background by creating JobRequest with the corresponding builder class and scheduled this request with the JobManager.
- Communicated with Calendar AP and content providers to read calendar events plus confidential information, read contacts, read web bookmarks, and history.
- Refined and improved performance of the app using SonarCube, Network profiler, CPU, and battery profilers.
- Developed update patches, modules, and components to mitigate security risks.
- Worked with other developers, designers, and product/business managers to develop new features consistent with product roadmap.
- Created frameworks and automation in the development process to maximize build efficiency and secure solid code.
- Maintained the Session Management for the app and supporting screen orientations.
Confidential, Newark, NJ
Android Engineer
Responsibilities:
- Coordinated with Sr. Developer on Apache Commons Codec software for implementations of common encoders and decoders such as Base64, Hex, Phonetic and URLs
- In corporate StickyListHeaders library to integrate section headers in ListView.
- Worked on Apache HttpMime API module to support MIME multipart encoded entities.
- Provided development support to the core team, troubleshooting some complex iOS / AIR / Android camera extension debugging for a specific project on a short-term basis.
- Coded to implement the Observer pattern, the Iterator pattern, and functional programming
- Used Git for source management
- Used OkHttp for exchange data & media through HTTP protocol.
- Worked with EventBus library for simplifies communication between Activities, Fragments, Thread, Services, etc.
Confidential, NY
Android Developer
Responsibilities:
- Refactored unorganized spaghetti codebase into MVC architecture following SOLID principles.
- Communicated with backend server using Volley and make multiple concurrent network connections with support for request prioritization.
- Defined deep links with account details and third-party implementation.
- Made a distinction between development and production versions of the app each with their distinct credentials and settings in the backend using Urban Airship.
- Fixed memory leaks and configured data offline usage, push notifications, content providers, multiple form factors, accounts, and sync on Android.
- Decreased memory leak by 90% using AsyncTaskLoaders, weak References and LeakCanary tool.
- Implemented Cart Calculator algorithm to abstract all the logic of network retrials, error handling and callbacks optimization using queues to avoid directly calling API endpoints from the activities.
- Increased security in local SQLite databases with SQLCipher encryption and decryption.
- Created navigation and refactoring static fragments with Fragment Transaction and handling the backstack for a better experience.
- Resolved intra-library dependencies and replaced the standard System.loadLibrary call using ReLinker library.
- Used Android content providers for implementing features like sending E-mails, sharing using Facebook, Email, Twitter, SMS, etc., from the app.
- Used the SQLiteOpenHelper to connect with the local database and perform CRUD operations.
- Coded Custom Views and animations as per iOS app prototype and implement Android components to specifications.
- Performed bug fixing from the tickets assigned in JIRA and worked independently on most features, reporting to the team leader daily.