Senior Android Developer Resume
Irvine, CA
SUMMARY
- 8 years as hands - on Android Developer with 5 apps on Play Store.
- Designed various applications using optimal architectural design patterns such as Model View Controller (MVC), Model View Presenter (MVP), Model View View Model (MVVM).
- Use design patterns Singleton, Facade, Command, Builder, Integrator, Visitor, Proxy, etc.).
- Advanced programming skills with Kotlin and Java.
- Experience transitioning Java code into Kotlin.
- Excellent in modeling and translating business models and requirements to use cases and diagrams.
- Experience with embedded local storage solutions such as SQLite.
- Work with analytics tools for Android mobile applications such as Answers, Google Analytics, Localytics, Mixpanel, Flurry, NewRelic.
- Efficiently consumed and managed RESTful web services with XML and JSON formats.
- Apply Android performance profiling, memory management, power management and optimization.
- Knowledgeable of data models and data access and optimization.
- Experience in the use several version-control tools Subversion SVN, GIT, GitHub.
- Experience developing highly efficient Java code and view layouts and the ability to diagnose performance bottleneck.
- Implemented the RESTful data consumption using Retrofit with an OkHttp client, GSON and Jackson converters and a custom interceptor.
- Experienced in gathering and documenting requirements.
- Integration of external APIs such as Facebook, Instagram, Twitter, LinkedIn, PayPal, Google Maps and Google Charts, YouTube.
- Work with Bluetooth technology.
- Handle dependency injection with Dagger and Hilt.
- Experience with Push Notifications, Google Maps, Navigation, GPS.
- Use of various frameworks and suites such as Rx, Firebase and Android Jetpack.
- Comfortable providing mentorship and training Junior developers.
- Experience working with third-party SDKs, libraries, and analytics tools.
TECHNICAL SKILLS
Architectures and Design Patterns: MVC, MVP, MVVM, Singleton, Dependency Injection, View Holder, Builder, Adapter
IDEs: Android Studio, Eclipse, Visual Studio
Frameworks: Android Jetpack, Firebase
Programming Languages: Java, Kotlin
Native Java Frameworks: Java Swing, Ajax Swing, GWT
Methods: Material Design Agile/Scrum, Test Driven Development (TDD)
Android Libraries, Frameworks and APIs: 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 NotificationsFront-End UI Development: Custom android views classes and components, Android adapter views like Listview, Recyclerview, Gridview and Gallery, Customized List views, Gallery widgets
Version Control: Git, SVN, GitHub, SourceTree, Tower, BitBucket
API: Facebook, Twitter, Google Maps, RESTful, Volley, Picasso, Glide, YouTube, Retrofit, ButterKnife
Testing: Espresso, Robolectric, Mokito, Junit, Selenium & Appium
Web Services: JSON, REST, SOAP, XML, AJAX
Issue Tracking: JIRA, Jenkins, Atlassian Suite
Change Management: Git/GitHub, SVN, Jenkins, Travis CI
PROFESSIONAL EXPERIENCE
Confidential - Irvine, CA
Senior Android Developer
Responsibilities:
- Applied a MVVM architecture for the application for effective modularity and module decoupling.
- Worked in Android Studio and programmed in Kotlin.
- Transitioned back-end communications from OKHttp to Retrofit with Kotlin Coroutines lightweight threading.
- Collaborated with Material Design UI/UX implementations with CardViews, RecyclerView and TabLayout navigation.
- Used LiveData builder to combine Kotlin coroutines with LiveData Coroutines Asynchronous Flow to implement async sequence, or stream, of values in MVVM architecture.
- Handled web services calls for information and content data retrieval with Retrofit.
- Used Android JetPack’s LiveData to simplify data updates across the lifecycle and configuration changes for the UI.
- Debugged and fixed access to Bluetooth settings, network connectivity, Wi-Fi Multicast reception, and connect and disconnect from Wi-Fi.
- Integrated multimedia material and live streaming video, decoding, and playback
- Profiled the app using instruments to see performance leaks, memory optimizations and battery use.
- Wrote instrumentation tests and UI tests using Espresso.
- Ensured code quality writing Unit Tests using JUnit, Mockito and PowerMock frameworks.
- Utilized Serializable and Parcelable to serialize models, Gson and Moshi libraries used to convert to and from JSON files
- Modified the network layer from URLSession for fetching REST APIs to Alamofire.
- Enforced Dependency Inversion standards through protocols making sure modules were not tightly coupled with abstraction.
- Utilized AVFoundation and AVKit to perform video streaming services.
Confidential - San Francisco, CA
Android Mobile App Software Developer
Responsibilities:
- Implemented BiometricPrompt API for Android P and FingerprintManagerCompat API to authenticate our users in conjunction with the Android Keystore system.
- Applied certificate pinning to defend against another type of man-in-the-middle (MITM) attack using retrofit and OkHTTP library.
- Connected Room with SQLCipher for transparent encryption of its contents using CWAC ROOM library.
- Extended the Observer pattern to support sequences of data/events and add operators to compose sequences together declaratively for low-level threading, synchronization and concurrent data structures with RxJava.
- Implemented JetPack components such as Room and LiveData.
- Developed new features in Kotlin to reduce codebase with data classes and extension functions.
- Migrated Dagger2 library with Koin dependency injection library for Kotlin.
- Performed migration from Java to Kotlin using coroutines, higher order functions, Null-safety, Type inference, Data classes and Delegation.
- Used Git as a version control for managing and integrating source code with other team members.
- Worked on wearable module to include WearableRecyclerView, BoxInsetLayout and SwipeDismissFrameLayout to display account information.
- Used SignPost OAuth library for signing HTTP messages and requesting tokens from an OAuth service provider.
- Created algorithms for Automatic savings tools with AES encryption and data collections.
Confidential - Los Angeles, CA
Android Mobile Application Developer
Responsibilities:
- Refactored Java code to Kotlin for existing Android application while using Kotlin to implement new features.
- Performed build work on MVP architecture.
- Applied Mockito testing suite and JUnit to create and perform tests on the application code.
- Worked with RxJava using observable and subscriber classes.
- Worked closely with Ui/UX designers using Zeplin and implemented UI designs according to designer specification.
- Implemented the Android Activities and Fragments to create design for the mockup designs.
- Implemented fragments to make the app usable on both smartphones and tablets.
- Added Broadcast Receiver logic to listen for events that can trigger a local database update.
- Created Material Design layouts with different animations optimized for the ultimate User Experience.
- Worked with Reactive-X on Android applications.
- Managed continuous integration using Git and remote repositories on BitBucket.
- Tracked issues in JIRA and assigned them to other developers.
- Created Dagger components and subcomponents to inject the needed dependencies into different Android app fragments, view models and components.
Confidential - New York, NY
Android Mobile App Developer
Responsibilities:
- Integrated Apptimize sdk to target a feature or customized UX to a certain segment of users, A/B testing and Release Management.
- Included web push, email, and in-app messages using OneSignal SDK.
- Implemented support for multiple DEX files using MultiDex library.
- Transitioned codebase from MVP to MVVM architectural pattern to better manage the different functional modules and views.
- Upgraded the app UI with Google’s Material Design new specifications.
- Delivered quality software using the Collaborator tool and TeamCity CI/GitFlow.
- Created API request to generate the token request from client app and send encrypted user data with RSA/ESA asymmetric algorithm to backend.
- Included Stripe payment mechanism to transfer funds to stock portfolio and buy additional products.
- Performed AIDL to define the programming interface that both the client and service agreed upon to communicate with each other using interprocess communication (IPC).
- Implemented NDK to embed C or C++ (“native code”), reuse existing libraries and build Java Native Interface (JNI).
- Loaded list of stocks, financial news and articles on demand from data source into recycler view with Paging library.
- Worked with REST API on client side, using Android Library methods to make network requests.
- Implemented automated testing with Roboelectric.
- Used LeakCanary to find and fix memory leaks, significantly reducing system crashes.
Confidential - Cypress, CA
Android App Developer
Responsibilities:
- Utilized SQLite for embedded local storage.
- Managed memory leaks in debug builds with LeakCanary.
- Applied Dalvik Debug Monitor Server (DDMS) for debugging and testing.
- Used Jenkins and GIT for efficient and clean code integration and backup.
- Used Picasso for quick image retrieval and displayed to UI.
- Integrated Facebook and Twitter for social networking.
- Worked with the back-end team to implement a secure login system for the application.
- Worked with Urban Airship for push notifications.
- Used Butter Knife library to apply binding in Android views.
- Worked with Dagger for dependency injection to develop clean, maintainable code.
- Utilized Eclipse IDE to implement the application in Java and automating testing with Robotium.
- Collaborated with offshore teams.
- Integrated Google Analytics into the application to track the usage of application, number of people, number of downloads etc.
- Integrated Cache support to manage and retain the messages on device to provide offline capability within the app.
- Consumed web services using OkHTTP to make restful web service calls.
- Implemented RESTful call to receive JSON based response and parsed to display data to the user.
- Decoupled application with AsyncTask to improve performance by freeing up main thread.