Senior Android Developer Resume
Boston, MA
SUMMARY
- Hands - on with multiple code bases, including Java and Kotlin.
- Experienced migrating Java to Kotlin.
- Experienced with tools, libraries, and databases such as Retrofit, RxJava, Glide, Imageloader, Picasso, RecyclerView, Dependency Injection, etc.
- Experience with Android JetPack components such as Room, Navigation and LiveData.
- Knowledge, understanding, and experience tracking user behavior and usage statistics using the analytics libraries Google Analytics and Firebase.
- Use of TDD, paired programming, mandatory code review, unit testing, automated testing, stress testing, instrumentation testing, and UI testing with tools such as Mockito, JUnit, Espresso, Robolectric, and Cucumber.
- UI development with strong UX that follows Android Material Design guidelines and SOLID. Principles.
- Applied sound mobile security practices such as Obfuscation, Encryption, SSL, Certification Pinning, Tokens.
- Applied elements of Kotlin Flow such as coroutines to interact with databases and networking operations in repository layer in Clean code architecture.
- Experienced performing daily code reviews on new submissions using SonarQube tool.
- Worked hands-on with Mockk library to Mock a call that uses coroutines, capture, and replay an argument, perform integration test cases using Robolectric and generate global coverage report using JaCoCo plugin.
- Continuously research, test, and implement new techniques, Android frameworks, and utilities.
- Ability to manage competing priorities in a complex Android app development environment and maintain high productivity and high quality.
- Experience with Android performance tuning and crash reporting applications.
- A firm understanding of building mobile applications that utilize web services (REST, HTTP-based, XML, SOAP, JSON or other services).
- Ability to ask the right questions, provide feedback to stakeholders, break down tasks, and create a plan to achieve the intended result.
- Able to optimize the technical architecture and technical debt of the Android app.
- Created logins, embedded tweets using the Twitter API.
- Skilled with implementing fragments, diverse layouts, animations, Material Design, Compound Views and Custom Views.
- Strong knowledge in Android multithreading frameworks: AsyncTaks, IntentServices, Handlers, Threads, Runnables, Loopers.
- Applies Google’s best practices targeted to mobile environments: use of networking, memory management, battery status, responsive and intuitive design, managing multiple screen sizes, identifying app installations, internationalization.
- Performed Espresso, JUnit, Mockito and simulated design patterns in Android to test and develop applications.
- Designed the schema for and deployed SQL and MySQL servers.
- Created the initial setup of multiple continuous integration servers to help the build creation process (Travis, Jenkins, Circle-CI).
- Use of multiple MBaaS (Mobile Backend as a service) and cloud integration tools like Parse, Firebase, Google Cloud Services, Amazon Web Services.
TECHNICAL SKILLS
Architecture/Design Patterns: MVC, MVP, MVVM, Abstract Factory, Builder, Decorator, Façade, Proxy, Visitor, Strategy, interpreter, Command
Project Management & Leadership: Agile Scrum, Scrum Master, Team Lead, Mentor
Project Planning: Managing dependencies, Gathering Requirements, External teams, and Managing project tasks, backlog.
Languages: Java, Kotlin, SQL, XML
Database: Firebase, SQLite, SQL, MySQL, Room
Development Environments: Git, GitHub, SVN, Jenkins, Hudson, Travis CI, JIRA, Confluence, Maven, Gradle, LeakCanary, Slack, Kanban
Android Development: Android OS, Dependency Injection, GcmNetworkManager, Push Notifications, JUnit, Retrofit, EventBus, Otto, SSL, Mixpanel, Mockito, Material Dialogs, Google Places, AsyncTask, Glide, ProGuard, Bluetooth Low Energy, ButterKnife, Services, Google Analytics, Volley, RecyclerView Animator, Spork, Libphonenumber, XmlPullParser, GSON, CoordinatorLayout, Multi-Window, GitHub, SOAP, Volley, JobScheduler, Content Providers, Parceler, SQLCipher, ZXing, Cipher, Maven, Dagger, MVC, RxJava, Facebook SDK, Google Custom Search, Gradle, FloatingActionButton, Jackson, Google Cloud Messaging, Picasso, Material Design, Android-Job, ORMLite, Logger, Handlers, Android Studio, Doze Mode, VideoView, Espresso, Parse, Animations, Loaders, Fresco
Misc Development: Back-end development, web development, back-end integration (JSON, GSON, REST, SOAP, XML), SSH, LAMP, MEAN, CMS
PROFESSIONAL EXPERIENCE
Senior Android Developer
Confidential, Boston, MA
Responsibilities:
- Worked in an Agile/Scrum environment with 5 Android developers, QA testers, UI/UX designers and backend developers.
- Participated in daily standup meetings with other team members, presenting to KP stakeholders every other week, and active in 2-week sprints.
- Worked with iOS, Mac, Windows teams.
- Worked closely with UI/UX teams.
- Worked closely with backend/server team and internal and external QA teams.
- Built UI with Android Studio.
- Applied MVVM app architecture for ease of maintainability and extensibility, as well as improved quality testing.
- Transitioned existing code to Kotlin and programmed new functions in Kotlin.
- Applied coroutines and Kotlin flow to make app multithreaded and perform synchronous operations.
- Introduced Kotlin extension functions to efficiently re-use existing codes and reduce code duplication.
- Implemented Android Architecture lifecycle aware components and used LiveData to build data objects that notified views when the underlying database changed.
- Used Data Binding Library to support two-way data binding to receive data changes to a property and listen to user updates to that property at the same time.
- Wrote instrumentation tests and UI tests using Espresso and Mockito.
- Implemented deeplink across several feature components.
- Applied WebRTC/Pexip for real-time video communication over the internet.
- Implemented Bluetooth Kit and Bluetooth Low Energy (BLW) to manage the connection with the device.
Senior Android Developer
Confidential, New York, NY
Responsibilities:
- Followed TDD/BDD and Agile methodologies throughout the project.
- Developed and tested the app using Android Studio.
- Migrated architecture from MVP to MVVM.
- Implemented several design patterns such as MVP, Singleton, Observer, Builder, Façade
- Migrated code from Java to Kotlin.
- Took advantage of Kotlin null safety and extension functions.
- Used Kotlin Coroutines for asynchronous tasks
- Used Observables and other RxJava operators
- Created extensive caching of both images (lazy-load) and data (object data from network as SQLite tables).
- Developed a look and feel that mimicked the iOS version of the app following the Google Material Design guidelines.
- Implemented Custom and Compound View to match the UI/UX specifications.
- Created several compound views to match the UI provided by the UI team.
- Layout user interface maintained efficiently through Fragments.
- Implemented custom/compound views for displaying queried data.
- Used the Picasso library for intensive image rendering on RecyclerView.
- Implemented Google Maps and location services to find services where users are currently located.
- Integrated multipane fragment-based navigation to adapt to portrait and landscape orientations to better use the screen state adapting to phones and tablets.
- Added animated transitions when calling other activities to improve the user experience.
- Used JSON in RESTful services to extend the application response capabilities.
- Created and maintained technical documentation for this application
- Sped up the build process with Jenkins continuous integration tool.
- Integrated Crashlytics to analyze the behavior of the users.
- Completed RESTful data consumption using Retrofit with a GSON converter and a custom interceptor
- Tracked incident reports with JIRA.
- Connected the app to Twitter, Instagram, and Facebook.
- Developed unit testing, instrumentation testing and automation testing for each new feature using Junit, Mockito, Roboelectric, and Espresso.
Android App Developer
Confidential, Evansville, IN
Responsibilities:
- Worked in an Agile development environment with peer engineers to scope, develop and deliver a software experience that realized the product strategy.
- Applied OOP software design patterns/best practices.
- Developed the app in Java using Android Studio as IDE for coding.
- Utilized RxJava and MVP architectural pattern, with various design patterns such as Abstract Factory, Builder, Observer, and Singleton.
- Utilized Eclipse IDE to implement the application in Java and automated testing with Robotium.
- Performed Continuous Integration with Jenkins using Git andBitBucketfor code repository/version control.
- Wrote Javadoc for documenting the different modules, hardware, and software features.
- Managed build creation with a Jenkins instance hosted on a private server.
- Performed code reviews to ensure code quality and adherence to company coding standards and industry best practices.
- Created custom views to present data as it was needed.
- Integrated Flurry for mobile analytics.
- Implemented UI/UX look-and-feel in the app, applying styles and themes following the new Google Material Design guidelines.
- Created multiple Content Providers with a native approach to handling UI asynchronous updates.
- Coordinated proper interactions of the Android front-end design and implementation with backend servers.
- Refactored unoptimized pieces of code to guarantee maximization in the use of resources.
- UtilizedAsyncTaskto connect to remote servers.
- Followed Test-Driven-Development (TDD) and used Mockito PowerMock and Espresso for our default testing frameworks.
- Maintained control of versions using GIT and set-up a GitHub repository.
- Sped up the build process with continuous integration tools: CircleCi and Travis.
Android Mobile App Developer
Confidential, Seattle, WA
Responsibilities:
- 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.
- Applied MVP architecture and design patterns Factory, Singleton, and Decorator.
- Integrated new features using Kotlin into an existing Java code base.
- Utilized 3rd party libraries such as Retrofit RxJava and OkHTTP to handle back-end integration.
- Configured app to enable users to save favorite homes and property searches to their Confidential account.
- Customized Home Filters to enable search by price, property type, and desired features.
- Applied 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.
- Improved performance of the app using SonarQube, Network profiler, CPU, and battery profilers.
- 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.
- Configured 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 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.
- Programmed update patches, modules, and components to mitigate security risks.
Android Mobile Application Developer
Confidential, Atlanta, GA
Responsibilities:
- Developed the Android application in Eclipse using Java programming language.
- Managed the build creation with a Jenkins instance on a private server.
- Consumed web services using OkHTTP to make restful web service calls.
- Designed the application with an MVP approach, setting up all the interfaces and the decoupling of the classes.
- Implemented custom views and incorporated navigation icons throughout layouts to improve UI/UX.
- Designed Android threading to run tasks in the background to prevent locking up main Android thread.
- Designed custom animations for transitions between application activities.
- Worked with AsyncTask for multithreading and services with AsyncTask for longer running asynchronous tasks.
- Used Universal Image Loader for media management.
- Created Compound views programmatically to increase reusability.
- Implemented Dagger for dependency injection.
- Used Jenkins continuous integration server with Git code repository on a private server for version control.
- Debugged and tested the application using Robolectric.
- Wrote unit tests and worked with QA team on testing and bugs QA.
- Utilized Android Support Libraries to ensure Android version compatibility.
- Used Butter Knife library to apply binding in Android views.
- Implemented RESTful call to receive JSON based response and parsed to display data to the user.
- Implemented messaging with Push Notifications and Google Cloud Messaging (GCM).