Senior Android Mobile Application Developer Resume
Gaithersburg, MD
SUMMARY
- Years building Android applications: 10+.
- Number of Android apps published on Play Store: 7
- Overall software/IT experience spans 14+ years.
- Experience working on Agile development teams using Scrum processes.
- Apply knowledge of design patterns in Android development, employing development tools such as Android Studio and Eclipse.
- Application of Material Design guidelines and user experience guidelines and best practices to Android application development.
- Solid understanding of Android app development life cycle including Google Play and Amazon App Store compliance policies and submissions requirements.
- Solid understanding of data models and data access architecture and optimization in Android.
- Seasoned full - stack Android mobile app developer proficient with all Android development tools in an Agile/Scrum project management.
- Practical implementation of Android Life Cycle, Fragments, Intents, and threads on Android; binding services, implicit and explicit Intents, background processes, sync adapters, activity, activities for Result, WebView, ImageView, TextView, RecyclerView, ListView, and Object-Oriented design and programming.
- Practiced in Android frameworks and APIs to efficiently load data and update databases: Loaders, AsyncTaskLoader and SyncAdapters.
- Skilled Kotlin and Java programmer.
- Experienced with JetPack libraries.
- Use Coroutines with different scopes to handle various asynchronous tasks and thread management.
- Experienced migrating from Java-based source bases into Kotlin.
- Experienced refactoring architectures (e.g., MVP to MVVM).
- Utilize Espresso, JUnit, Mockito and simulated design patterns to test and develop applications.
- Experience using cloud integration tools and MBaaS tools (Mobile Backend as a service) - for example Parse, Firebase, Google Cloud Services, Amazon Web Services.
- Experience implementing OAuth using Firebase Auth0.
- Skilled in consumption of web services (REST, HTTP-based, XML, SOAP, JSON, etc.) in building mobile applications.
- Experienced enabling TalkBack and VoiceToText APIs to enable Accessibility and ADA Compliance
- Experienced with code merges, builds, deployments, and ensuring production stability in Android development.
- Regularly provide constructive feedback to team members so they can continuously grow individually.
- Proficiency in Java (JDK: Collections, Generics, Networking, Core Java), Java concurrency, and memory management.
- Proactive fast learner, self-motivated, proficient in programming logic and easily adaptable to new technologies.
- Up to date with current technologies, and Android operating systems.
TECHNICAL SKILLS
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
Debug/Testing/Performance Frameworks: Espresso, JUnit, Robotium, Mockito, LeakCanary, Doze Mode, Android P, Bluetooth BLE
Version Control: Git, GitHub, GitLab, TFS
CI/CD: Circle-CI, Jenkins, NDK, Firebase, Travis CI, Bitrise.io
Analytics: Crashlytics, Google Analytics, Mixpanel
Security: AES/Cipher, SpongyCastle
Payment Processing: BrainTree SDK
Other: JetPack, IoT, Services, Calligraphy
Programming Languages: Kotlin, Java
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
Messaging: Urban Airship, Google Cloud Messaging
PROFESSIONAL EXPERIENCE
Senior Android Mobile Application Developer
Confidential
Responsibilities:
- Used Hilt for dependency Injection.
- Used Postman to interact with client custom APIs.
- Implemented recycler views with CardViews to display data in the most efficient way.
- Interacted with the whole JetPack library.
- Programmed code in Kotlin language to perform Restful API calls for bank transfers, budgeting, and digital receipts user stories using Coroutines, Retrofit, and Data Binding in MVVM clean code architecture.
- Implemented Jetpack Compose to create small reusable composables to describe UI by calling a series of functions that transformed data into a UI hierarchy and defined Data flow principles in Compose.
- Refactored Android Support libraries to be compliant with Android 11 and JetPack, such as android.preference to androidx.preference.
- Integrated multiple third-party libraries like: Glide, Retrofit, RxJava and Dagger 2.
- Used Slack and Microsoft Teams for communication
- Implemented Safety Net Attestation API and SafetyNet reCAPTCHA API to determine if it is rooted/tampered and implemented strong DRM checks and protect app from spam.
- Improved login feature of the app using OAuth library for token-based authentication and Biometric API.
- Leveraged GraphQL and Websocket APIs to provide a seamless user experience.
- Conducted code reviews as part of Git Workflow.
- Implemented SAF (Storage Access Framework) into code for attaching images to transactions and messages.
- Wrote instrumentation tests and UI tests using Espresso.
- Ensured code quality writing Unit Tests using JUnit, Mockito and PowerMock frameworks.
- Troubleshot performance issues, ensured performance met with expectations, analyzed/reported crash metrics, and performed synthetic monitoring using AppDynamics SDK.
- Fixed issues for security scans such as SSL, encryption, loopholes and profiled the application using the APK analyzer.
Senior Android Developer
Confidential - Gaithersburg, MD
Responsibilities:
- Implemented new application features in Kotlin and used the classes in with Java classes.
- Managed user preferences by storing them into shared preferences.
- Developed new Kotlin modules and migrated existing code into Kotlin.
- Configured custom Android system settings using hidden Android APIs.
- Implemented BluetoothCharectristic and Services Schema to keep track of Bluetooth services
- Implemented Android recommended design/navigation patterns, including fragment layouts for TV using LeanBack.
- Applied Android features against custom AOSP.
- Included Retrofit and RxAndroid to make asynchronous HTTP requests in an anonymous callback.
- Implemented Espresso library for testing and performance.
- Utilized JIRA for user histories and bugs tracking.
- Consumed REST APIs from ATT API.
- Utilized application components such as Activities, Intent Services, and Broadcast Receivers along with their lifecycles to define the applications overall behavior.
- Determined architectural and product design details for open-ended tasks or specifications.
- Developed broadcast receivers and extracted JSON messages from Messenger API.
- Implemented background jobs utilizing a complex set of queries into the parse tables.
- Included Retrofit to make asynchronous HTTP requests in an anonymous callback.
- Used Google GSON API to parse JSON strings.
Android Mobile Developer
Confidential - San Francisco, CA
Responsibilities:
- Transitioned the application from old material design to new JetPack components using slices, navigation, paging, layout, Animation and transitions.
- Implemented Koin dependency injection to create and inject network models, view model modules and analytics modules.
- Replaced volley library with RxKotlin, retrofit library to make asynchronous API calls to get user-profile and monthly stats data in custom view.
- Worked on Starva Bluetooth BLE SDK to design module to pair with Bluetooth devices and transmit large bytes of attributes.
- Designed new features migrated from Java into Kotlin language with coroutines, multi-platform support, extension functions and null safety checks.
- Used Android Plot graph library to display distance, pace, speed, elevation gained, and calories burned in pie chart and bar-charts.
- Made use of Android SDK components, Activities, Broadcasts, Services, Intents, Job Scheduler, RecyclerView, Custom Views, Constraint Layout, Fragments, Looper, Handlers, Shared Preferences, Room, etc.
- Wrote TDD test cases for new features using Mockito, Dagger and RxTestScheduclers.
- Fixed critical issues relating to Android Wear modules and notifications.
- Included Google Play billing service to buy subscriptions, digital contents and unlock advance features.
- Practiced pair-programing to develop the features, write TDD test cases and write algorithm for Confidential distance tracker and mile counter.
- Scheduled and managed large downloads in background with auto retry support using WorkManagerAPI and replaced IntentServices implementation.
- Configured Firebase console to create personalized messages and write frontend code handle these messages with notification channels feature.
Android App Developer
Confidential - Los Angeles, CA
Responsibilities:
- Worked with the visual standards team to ensure the app complied with system UI/UX standards.
- Implemented login security using OAuth.
- Connected to the camera with Implicit Intent.
- Applied Dalvik Debug Monitor Server (DDMS) for debugging and testing.
- Implemented MVP architecture and design patterns Singleton, Proxy, Observer, and Façade.
- Created Material Design layouts with different animation.
- Worked with Broadcast Receivers to receive system notification which was later used to send out reminders.
- Tested Android application with Robotium and Robolectric testing tools.
- Designed custom animations for transitions between application activities
- Implemented SQLite database for persistent data storage and fast data retrieval.
- Stored data of the task bonuses in SQLite.
- Used Intents and Intent Filters to initiate activities and pass information between Activities and Fragments.
- Utilized Subversion to manage repositories versioning control.
- Handled Fragment data retention to ensure data integrity on screen rotation with the onSaveInstanceState and onRestoreInstanceState methods.
- Introduced Parcelables for object transfers within activities.
- Used JIRA for new requirements, issues, bug tracking, and project planning.
- Triggered events in the physical device using Local Broadcast Receivers.
Android Developer
Confidential - Needham, MA
Responsibilities:
- Applied a Model View Presenter (MVP) architecture.
- Used Butterknife to bind together Android views.
- Followed up by testing user interface, errors with all possible inputs, debugging several applications using ADB.
- Used multi-threading to implement parallel processing.
- Consumed REST services using Retrofit, get the JSON data and parse it using GSON library.
- Improved the performance on the UI by implementing fragments and implementing the RecyclerView.
- Worked on embedded devices for power management and integrated their SDK into the app and worked on functionalities like WIFI, Bluetooth, and cellular data for data transfer.
- Assisted in designing the logical flow for the application for different components.
- Worked on Android.mk files to build Source Code as part of build environment.
- Used BlackBerry JME JDE to test software on the device.
- Integrated third-party SDK and frameworks.
- Used Loading Spinners while loading data.
- Handled multithreads to receive and update calls from web server (Service and Broadcast Receiver).
- Worked in an Agile environment delivering in short sprints.
- Implemented local database using SQLite.
- Integrated Google Analytics into the application using Firebase Android to track the usage of application, number of people, number of downloads, etc.
- Pair programmed with senior developer to write TDD test cases around critical user stories using Mockito and Espresso.
Android Mobile App Developer
Confidential - San Francisco, CA
Responsibilities:
- Worked on incorporating fonts and styles with Calligraphy lib.
- Utilized Agile methodology to fulfill rapidly changing client requirements.
- Utilized SQLite for data persistency and Shared Preferences to preserve the app configuration settings.
- Implement transition between activities
- Worked with SCRUM methodology to have a prototype to show every two weeks
- Managed memory leaks in debug builds with LeakCanary.
- Implemented the user interface by using Compound View, Custom View, ListView, View Pager and Tab Layout.
- Designed the relational database model and set up the server.
- Interfaced with SQLite for storing information.
- Utilized Activities, Services, Broadcast Receivers, SQLite, and preferences Android components.
- Utilized foreground services with Media Player and Exo Player to play tracks.
- Utilized Material Design to adapt the User interface.
- Used Dalvik Debug Monitor Server (DDMS) for debugging and testing.
- Cleaned up code to make it more efficient, scalable, reusable, consistent, and managed the code base with Git and Jenkins for continuous integration.
- Implemented Picasso in order to do asynchronous image loading. Created custom animations to improve the user experience.
- Supported two other languages such as Spanish and German.
- Created multiple versions of the app (free, trial and paid) with the use of flavors set up in the build Gradle file.
Android Developer
Confidential - Seattle, WA
Responsibilities:
- Implemented custom video processing library for streaming H.264, H.263, AMR, AAC using RTP.
- Implemented the media codec, container, and network protocol support provided by the Android platform, making use of any media codec available on any Android-powered device, including those provided by the Android platform and those that are device-specific.
- Formulated the media router framework architecture to abstract the logical paths for audio and video output for an Android device, allow app to quickly channel media content to connected playback devices.
- Built the essential web services to handle the content data retrieval, rendering and streaming video, decoding, and playback.
- Utilized SVN for continuous code management.
- Work on android DLNA media controller for remote media streaming.
- Optimized multithreading using Android’s Download Manager, Intent service, Async Task Executors (loaders) and Sync Adapters to download mp3.
- Monetized the app by including AdMob and Amazon Mobile ads for user impressions.
- Interfaced Google Wallet API/ PayPal/ to offer digital content and purchases.
- Used JUnit framework to write repeatable tests.
Software Developer
Confidential - New York, NY
Responsibilities:
- Worked hands on with Oracle, JSF, Hibernate, Spring, and Struts.
- Designed and programmed website front end and templates using HTML and CSS.
- Implemented Subversion as the Version Control Software tool.
- Utilized JavaScript, jQuery, and HTML5 to respond with the backend server.
- Analyzed, Designed and developed the system to meet the requirements of users.
- Worked in HTML coding.
- Supported decision-making process across several departments while Administering SharePoint (BI and Dashboards) while using data effectively to ensure positive business outcomes.
- Programmed Java based code to convert source files into custom flat file layouts.
- Performed requirements gathering, analysis, design, development, and testing of various types of applications, both custom and off-the-shelf.