Sr. Android Developer Resume
Memphis, TN
SKILLS:
Programming Languages: Kotlin, Java, C++, C, Python
Development IDEs: Android Studio, Visual Studio, Visual Studio Code, Eclipse
Databases: SQLite, Room Database, Firebase Realtime DB, Room
Networking/Web Services: REST, JSON, Retrofit, GSON, OkHTTP, Volley
Events: EventBus, Otto
Threading: RxJava, IntentServices, Handlers, JobScheduler
Dependency Injection: Dagger2, AndroidAnnotations
UI/UX: Material Design, Material Dialogs, Calligraphy, ExoPlayer, VideoView, Chromecast, Push Notifications
Security: AES/Cipher, SpongyCastle
Messaging: Urban Airship, Google Cloud Messaging
Payment Processing: BrainTree SDK
Debug/Testing/Performance Frameworks: Junit, Espresso, Hugo, Robotium, Mockito, LeakCanary, Doze Mode, Android P, Timber, Bluetooth BLE
Version Control: Git, GitHub, GitLab, TFS
Architecture Design Patterns: MVVM, MVP, MVC
Design Patterns and Practices: Adapter, Factory, Builder, Singleton, Data Class, Handler, Parceler, Loaders
Project Management: JIRA, Sketch, MPAndroidChart
Software Development Methodologies: Agile, Scrum, Waterfall
CI/CD: Circle - CI, Jenkins, NDK, Firebase, Travis CI, Bitrise.io
Analytics: Crashlytics, Google Analytics, Mixpanel
Other: JetPack, IoT, Services, Calligraphy
WORK HISTORY:
Confidential, Memphis, TN
Sr. Android Developer
Responsibilities:
- Worked in a mid-size team of 12 developers and coordinated remotely with German offshore development team with TDD, a continuous integration environment.
- Integrated Android jetpack KTX plugin and Kotlin-Synthetic views plugin implementation.
- Refactor presentation and data layer with WorkManager, Paging, Slices, simplify navigation and data passing within the app using Navigation Components.
- Include ViewModel to isolate use cases from the View., observe changes using LiveData and create Room database to store and retrieve data.
- Use coroutines, high-order functions, delegate properties with Android KTX to improve ‘Get shipment cost estimates and delivery times’ user-story.
- Refactored Model Data Layer with Kotlin Data classes and implemented marshalling process with Parcelize annotations.
- Inject ViewModels and Model instances with components, subcomponents, modules using Dagger2 and tested them with DaggerMock library.
- Perform Restful API service calls asynchronously and combine, create, merge and filter any of flowable streams.
- Increase project transparency, flexibility with Mockito framework to verify method invocation calls.
- Implemented Jacoco tool to verify correct code coverage and enforce 85%.
- Encrypt Room local database with SQLCipher and stored access-token in Keystore.
- Enable push notifications to get updates on shipments with Firebase services.
- Work closely with senior developers on ‘Search list of shipments by tracking number, references, vendors’ feature.
- Created Material Design that follows UI/UX mockups.
- Refactored legacy UI replacing RelativeLayout with ConstraintLayout reducing layout hierarchy and increasing load times.
- Perform code reviews using Crucible tool, mentor junior developers and manage pull requests in Gitflow process.
- Replaced RxJava callbacks with coroutines creating Android Jetpack Viewmodel Scopes.
Confidential, Los Angeles, CA
Sr. Android Developer
Responsibilities:
- Implemented full life cycle of SDLC from Analysis, Design, Development, Deployment and Testing of Android Applications.
- Removed AsyncTask Library with combination of Coroutines/RxJava/Livedata for multithreading on the mobile application.
- Worked with other Android developers and assisted with code reviews and code refactoring.
- Managed the implementation of dependency injection in Android with Dagger2 to speed up unit testing process.
- Implemented multiple test cases using Espresso rules, view matchers, and view actions.
- Worked with RxJava using observables and subscribers classes.
- Implemented RxAndroid and created RxJava concurrency in the form of Dispatchers modifying the upstream and downstream.
- Developed Android Activities, fragments and display modes.
- Involved in the software development processes for this Android application development projects including requirement specification, design, implementation, testing and maintenance.
- Worked on UI and base Android framework issues.
- Implemented fragments to make the app usable on both smartphones and tablets.
- Developed Android applications using many components including Activities, Fragments, Broadcast Receivers and Services in Android.
- Worked in different phases of the project cycle such as design, development and testing.
- Refactored Java code to Kotlin for existing Android application while using Kotlin to implement new features.
- Performed simulated design patterns in Android to test and develop applications.
- Managed continuous integration using Git and remote repositories on BitBucket.
- Tracked issues in JIRA and assigned them to other developers.
- Utilized multithreading and asynchronous tasks to manage concurrent communication while maintaining performance.
Confidential, Boston, MA
Sr. Android Developer
Responsibilities:
- Participated in all phases of the mobile development life cycle, as a full-stack developer, assisting in both front-end development and back-end development.
- Improved the layout rendering by saving and optimizing the view hierarchy in all the resources.
- Added the Parcelable interface to pass custom objects between components quickly via Intents.
- Worked with LRU Cache to increase the performance of RecyclerView scrolling.
- Android Studio for Java coding, and development of Android mobile app.
- Designed tweaks to the look and feel using Model design to achieve pixel perfection.
- Supervised the creation of the unit, integration and stress test cases with JUnit, and MonkeyRunner.
- Actively worked with the back-end team to improve the RESTful API to include new features.
- Developed compound views to present information to the user depends on its preferences
- Participated in PR reviews to increase code quality and prevent code smells as part of code coverage.
- Used the View Pager Indicator to provide feedback to the user about the background processing status.
- Setup proper interactions of the front-end design and implementation with backend servers.
- Solid relational DBMS skills using MySQL, PostgreSQL or other DBMS products.
- Built Activities using compound and customized views.
- Implemented a WebView control to reuse some legacy web application functionality within the native app.
- Debugged and tested the application using Robolectric.
- Created all technical documentation for all phases of Android app development and support.
- Implemented Google Analytics and Flurry for app analytics purposes.
- Conducted interviews and contributed to the continuous growth of the engineering team.
- Implemented RecyclerViews for loading most of the catalogs.
- Ensure excellent form factor integration by creating multi-panel activities with Fragments.
- Worked with Universal Image Loader library for image rendering in RecyclerView.
Confidential, Kent, WA
Sr. Software Developer
Responsibilities:
- Generated new technical documentation based on all changes made to the app.
- Debugged and tested the application using Robolectric
- Solid understanding of the full mobile development lifecycle.
- Improved the layout rendering by saving and optimizing the view hierarchy in all the resources.
- Added the Parcelable interface to pass custom objects between components quickly via Intents.
- Used Espresso for UI behavior test
- Worked with LRU Cache to increase the performance and memory management of ListView scrolling.
- Familiarity with the Android tool ecosystem for development, testing, debugging, and performance benchmarking.
- Designed tweaks to the look and feel using Model design.
- Supervised the creation of the unit, integration, and stress test cases with JUnit, Espresso, and MonkeyRunner.
- Was the owner of the central Git repository for our team.
- Actively worked with the back-end team to improve the RESTful API to include new features.
- Developed compound views to present information to the user depends on its preferences
- Used private GitHub repositories to host internal code.
- Used the View Pager Indicator to provide feedback to the user about the background processing status.
- Setup proper interactions of the front-end design and implementation with backend servers.
- Solid relational DBMS skills using MySQL, PostgreSQL or other DBMS products.
- Built Activities using compound views, created custom views from scratch, and extended some existing Widgets.
- Implemented Google Analytics and Flurry for app analytics purposes.
- Implemented ListViews for loading most of the catalogs.
- Utilized the Eclipse IDE to develop and code the application.
- Ensure excellent form factor integration by creating multi-panel activities with Fragments.
- Worked with Universal Image Loader library for image rendering in ListViews.
Confidential, Atlanta, GA
Android Developer
Responsibilities:
- In charge of the Google map features, worked closely with backend to show activities around user's current location, along with adding markers and InfoWindows to the map
- Create custom and compound views for ‘Reserve parking spots in garages ahead of time’ user-story screen
- Create local database user SQLIte to store parking spots for offline view and save favourite spots in shared preferences
- Create search algorithm to display areas of the city where there is available parking and avoid areas where there’s no parking
- Implement search function and corresponding request and response UI, as well as feature of user profile information displays and updates
- Work on the free/paid Subscription product flavours of the app to expose different user-stories
- Write barcode scanning code algorithm to support multi-format 1D/2D barcode image processing
- Implement Disk-based LRU cache which specifically targets Android compatibility for accessing filesystem
- Work closely with an in-house backend team who uses Python Django
- Implemented part of foundation classes, and basic UI framework; first used sliding menu, then switched to tab+viewpager
- Added Facebook Login to the App using the Facebook android SDK.
- Included dependency injections like Dagger and Butterknife to reduce boilerplate code and loose coupling
- Configure and send alerts to notify users when the parking session is going to expire using MixPanel SDK.
Confidential, San Francisco, CA
Software Developer
Responsibilities:
- Worked on Commons IO library to implement components to monitor file system events, input/output stream and writer/reader implementations and other IO functionality.
- Replaced bitmaps with Glide image loading library for media decoding, memory and disk caching, and resource pooling in UI.
- Included Bolts Framework for task-based asynchronous operations to perform branching, parallelism, and complex error handling.
- Squashed a bunch of bugs and redesigned the Title bar, Vehicle images, and Favorites sections.
- Implemented Mockito library to increase testability of code and utilize stubs and parameter argument captors.
- Constructed the user interface by using list view, custom view, compound view and various layouts.
- Used the Fragment capabilities to handle multiport views and different screen size devices.
- Tested the user interface implementing Espresso.
- Programmed to include Guava library for immutable collections, functional types, in-memory cache, concurrency, I/O, hashing, primitives, reflection, string processing features in the app.
- Implemented Dagger to work with a Dependency Injection environment to help with the unit testing and organizing dependencies.
- Refactored legacy code base with
- Attended the SCRUM meetings and met deadlines.
- Used GSON to convert Java Objects into their JSON representation.
- Independently worked on Facebook library integration.
- Design and build flexible, reusable and adaptable UI for diverse device configurations, dynamically to support larger screen sizes and different configurations to perform well on phones and phablets.
- Provided backward compatibility to the application using Support packages, Fragments, external libs, v4, v7, ActionBarSherlock, and ActionBarCompact.