Sr. Android Mobile Developer Resume
St Louis, MO
SUMMARY
- 12+ years developing Android applications.
- Software/IT experience spans 18+ years.
- Extensive experience with Java and Kotlin.
- Hands - on applying architectures MVP, MVC, and MVVM with focus on Test-Driven development in large enterprise environments.
- 5 apps published on Google Play Store.
- Skilled Kotlin and Java programmer.
- Sound understanding and practical application of frameworks RxKotlin and RxJava.
- Solid grasp of algorithms, performance management, and real-time communication.
- Experience with chart libraries (e.g., LineChart, BarChart, PieChart, ScatterChart, CandleStickChart (for financial data), combined charts, etc., and knowledge of geometric data types in developing high-end interactive charts.
- Understanding of mobile encryption algorithms, analytics, and marketing channel integrations.
- Knowledge of test automation with test frameworks such as Espresso and Mockito.
- Use of code quality/coverage tools such as SonarCloud, and experience deploying applications in a DevOps environments leveraging CI/CD tools such as Jenkins, Circle CI, Travis CI. GitLab CI, Bamboo, etc.
- Experience developing commonly used dynamic UI components across apps.
- Experience creating and maintaining mobile backend services.
- Familiarity with all parts of the development process and working with cross-functional, collaborative teams.
- Maintain up-to-date knowledge/awareness of latest technologies.
- Experience working with third-party SDKs, libraries, and analytics tools.
- Applied knowledge of coding best practices that minimize tech and architecture debt.
- Experience shipping and operating apps at scale to a large number of users across multiple geographies.
- Experience with Git and other similar distributed SCM systems.
- Good communicator who can work well within a delivery team and manage interactions with other parts of the organization, such as Product and Ops.
TECHNICAL SKILLS
Programming Languages: Java, Kotlin, JavaScript, Flutter
Project Processes: Agile Scrum, Pair, Extreme, Sprint Planning, Sprint Retrospective, Backlog, Daily Scrum
Dependency Injection: Dagger 1, Dagger 2, Butter Knife, IcePick, RoboGuice
Development Tools: Git, GitHub, BitBucket, JIRA, Confluence, GO-CI/CD
RESTful Web Services: REST, SOAP, JSON, GSON, Moshi, XML, AJAX, Volley, Retrofit, OkHTTP, OkHttpLoggingInterceptor
Architecture & Design Patterns: MVC, MCP, MVVM, Builder, Abstract Factory, Visitor, Proxy, Singleton
Development IDEs: Android Studio, Eclipse IntelliJ, Visual Studio
Threading: RxJava, AsyncTask, IntentService, Handlers, Loopers, Loaders
Database: SQLite, SQL, Transact-SQL Firebase, MongoDB, RealmSQL Developer for OracleSQL Server Management StudioWrite stored procedures and triggers, DynamoDB
Threading: RxJava, EventBus, Loopers, Loaders, Handlers
Debugging: DDMS tool, ADB, LeakCanary, Firebase Crash reporting, Crashlytics
Bluetooth: Bluetooth Low Energy, Bluetooth API, Bluetooth Kit
Testing: Robotium, Espresso, Mockito, TestFairy, JUnit, Leak Canary
Images: Picasso, Glide, Fresco
Reactive-X: Reactive-X, RxJava, RxAndroid
Continuous Integration: Jenkins, Travis, Hudson
JetPack: Room, VIewModels, LIfeData, Download Manager
Firebase: Firebase DB, YAML, Firebase Cloud Messaging (FCM)Firebase Crash Reporting
Data Binding: Android Data Binding
Media: Glide, Picasso, Fresco, ExoPlayer
Analytics: MixPanel, Google Analytics
UI/UX: FloatingActionButton, RecyclerView, Navigation Drawer, ProgressBar, UIAnimator
Build: Gradle, Maven
Misc. Libraries: NineOldAndroids, Parce, Parceler, Parcelable, Support Libraries, EventBus, Kickflip
Misc. Android Development: Fragments, SyncAdapters, Push Notifications, JobScheduler, EventBus, WorkManager, Microsoft Azure
Google: Google Cloud MessagingGoogle LocationMaterial Design, Google Places
Firebase Diagramming: Mockito, UML and ERD diagrams
PROFESSIONAL EXPERIENCE
Sr. Android Mobile Developer
Confidential, St. Louis, MO
Responsibilities:
- Working in an Agile environment delivering in 2-week sprints.
- Using Android Studio as the primary IDE.
- Designing screens using MVP pattern for the application with Android Studio IDE.
- Applying design patterns Abstract Factory, Façade, Builder and Singleton.
- Developing applications using components such as Activities, Fragments, Broadcast Receivers and Services in Android.
- Eliminating null point exceptions using Kotlin using Android Studio with the bulk of the codebase in Java.
- Using SQLite database to ensure persistent data storage.
- Using Butter Knife library for Android views dependency injection.
- Managing code base commits using continuous integration methodology with a private Jenkins server to run emulators for testing.
- Initializing creation of internal Flutter application to assist in-house staff on cross platform.
- Creating Restful API calls in Flutter application which works as a hybrid for both Android and iOS smartphones for inhouse employees.
- Participating in Scrum meetings, project planning, and coordinating status sessions.
- Adding Push Notifications through Backend support with Push Notifications and GCM.
- Developing the UI for the app using TextViews, Buttons, Check boxes, Alert dialogs, Actionbar and spinners for various layouts.
- Implementing RecyclerViews in fragments to display various data sets.
- Implementing widget testing on in-house Flutter application
- Implementing a schedule planning application using Flutter SDK in Android Studio.
- Using Frame Layout method to show background images of the app.
- Implementing messaging and notifications with Firebase Cloud Messaging (FCM).
- Working on animations in the applications such as View Animations, Frame Animations, etc.
- Consuming RESTful web Services using a Retrofit instance with a built-in GSON converter for this Android app.
- Tying mobile client applications to critical server-side APIs.
- Implementing various user interface components such as WebView, ListView, ImageView, and TextView to display the data for the application.
Senior Android Developer
Confidential, San Francisco, CA
Responsibilities:
- Wrotealgorithms in MVP architecture for real-time updates, local data access for offline scenarios, and data synchronization with customizable conflict resolution when devices are back online.
- Independently workedon ‘Find local events like cookouts and community activities’ feature using Google Maps SDK, Places API and location services.
- Createdcustom and compound views for ‘Share neighborhood crime reports’ UI screen with material design principles.
- Worked in Android Studio IDE for application development with Java and Kotlin.
- Added new features in Kotlin and transitioned Java arrays to Kotlin.
- IncludedUrban AirshipSDK for In-App Purchase and Subscriptions, and configured push notifications to know about great deals and latest coupons.
- Testedand verifiedAudience Studio mobile app SDK implementation using Charles Proxy,MockServerAPI, Espresso, and Harvard.
- PerformedBranch SDK integration for deep linking, user routing to increase mobile conversion, retention, and engagement.
- Implemented secure HTTP requests toGraphQLand REST endpoints to access, manipulate, and combine data from one or more data sources with Amazon DynamoDB.
- Customizedthe background Executor used to run Workers, and theWorkerFactoryused to construct Workers for multithreading implementation.
- IncludedImageViewTouchImageViewlibrary, Jose Time library, Glide image loading andFaceBookAudience Network library to support multiple features.
- Manageduser content securely in the cloud or on the device RSA and Java cryptography API.
- ImplementedDIP using Dagger library by creating and managing the graph of decouple dependencies using custom scopes, custom components and modules.
- ImplementedIn-App update feature using Android Play Core library with immediate flow option which requires users to download and install an update before continuing the app.
Senior Android Developer
Confidential, San Francisco, CA
Responsibilities:
- Coded in Java in clean-code architecture on domain and presentation layer in MVP.
- Applied Builder, Factory, and Façade design patterns to make code loosely coupled in layer communication (Dependency principle).
- Used RxJava for most of the asynchronous processes.
- Changed the previous design to make use of the various benefits provided by the fragment implementation for the views.
- Implemented CustomViews and CompoundViews to provide a custom UI interface across multiple platforms.
- Made extensive use of List Views to show large amounts of data with low memory consumption.
- Integrated the new design of the application with the previous data structure and backend web services to provide a state-of-the-art look and feel and improved user experience.
- Applied Google Maps API to provide 3D street view, better performance, and multiple maps instances supported inside a single activity.
- Used GPS and Network Location Services to improve the accuracy of user’s location.
- Worked with the physical interface team to create the lock/unlock functionality in charge of the interaction between the Android device and the car.
- Implemented a relational database in SQLite to synchronize the application with the server.
- Utilized main Android core services and broadcast receivers to synchronize background processing with the UI thread.
- Used Git and Hudson for continuous integration in test-driven development (TDD) Agile environment.
- Designed the test environment using the Robotium test framework.
Native Android Developer
Confidential, San Francisco, CA
Responsibilities:
- Worked in an Agile/Scrum environment.
- Fixed bugs and improved application performance.
- Built scalable apps across multiple platforms and devices/resolutions.
- Liaised closely with the designers to improve and enhance UX/UI.
- Used Zeplin for vector clickables.
- Configured GCM server for push notifications to send advance warning when it’s time to order a refill.
- Created a custom view withonLayout,onDrawandonMeasuremethods to display date and set custom reminders to drink water, record mood, check blood glucose and take blood pressure.
- Parsed medical history logs JSON data from backend usingAsyncTaskand displayed inListViewwith View-Holder pattern.
- Implemented a WebView control to reuse some legacy web application functionality.
- Communicated with Google Contacts API to create new contacts, edit and delete existing contacts, and query for contacts that matchedparticular criteria.
- Coded in MVP architecture withFasterXMLJackson serialization and configuration framework converter witheventBusto communicate with different presenters.
- Implemented Beta test coverage, distributed Beta versions, collected live crash reports, and got feedback from real users using Hockey App.
- Enabled ability to scan QR codes within the application using theZXingLibrary.
- Worked with GoogleGDataclient library to access Google APIs using JSON and OAuth 2.0.
- Implemented multi-language support using XML for simple menus and web services.
Android Developer
Confidential, San Francisco, CA
Responsibilities:
- Gathered and translated user requirements into functional solutions.
- Workedin afast-pacedcross-functional team in an Agile environment with daily Scrum meetings.
- Worked alongside web developers to create and maintain arobust framework to support the apps.
- CodedMVP designarchitecturetomaintainloosecouplinginUI.
- Programmedmodulesto include card.iocredit card scanning library for purchasing global newsstand, magazine subscriptions and single issues.
- Used Google’s Download Mangers to download data from HTTP request to the server and retrieve JSON data, parse it, and cache it on file system and SQLitedatabase.
- Implementedasynchronousprocessingandmultithreaded theapplicationusingthreads, handlers, andAsynctask.
- Applied Google Analytics to create contentreportswith focus on futuredevelopment efforts.
- Fixedbugs when notified by in-house bug system or documented byQA.
- Handledissues related to platform fragmentation and multiple OSversions.
- Deployedthe application on staging and liveplatforms.
- Configured WebViews fordisplaying web pages and integratedJavaScriptinterfaces to handle UIinteraction.