Sr. Android Developer Resume
Redmond, WA
SUMMARY
- ~12 years’ Mobile App /Android Development experience.
- Mobile Apps Published plus custom development of proprietary internal modules, libraries, and applications.
- Experienced in Material Design: Well - rounded knowledge of the Material Design specifications and experience programming with Material Design Views Widgets and design patterns.
- Comprehensive experience in front and back end as well as database and web services.
- Good understanding of RESTful client and server.
- Have worked on cloud with Azure and Google.
- Thorough knowledge of XML, XAML, HTML5, CSS3, JavaScript.
- Experienced in Java, Kotlin, JavaScript, C, C++, Python.
- Proficient with Eclipse and Android Studio IDEs.
- Design, develop, implement successful large-scale mobile projects from client requirements to completion.
- Enjoy planning, designing, and implementing successful mobile projects from requirements to publication.
- Accustomed to working with versioning tools like Git, GitHub, SVN, SourceTree, BitBucket, and Tower.
- Good knowledge of programming methodologies like Agile SCRUM and Waterfall.
- Adept at using external libraries like Picasso, Retrofit, Sugar, GreenDAO and more.
- Great communicator, I enjoy working in teams.
- Self-motivated, I enjoy a good challenge and thrive under pressure.
- I consider myself a good mentor and I enjoy mentoring junior members of the team.
- I am a firm believer in testing: test early, thoroughly, and continuously. The sooner bugs are found the better.
- Have worked with push notifications and with as well as internal notifications for Android and wear products.
- Well versed in asynchronous programming; successful use of Java’s Thread class as well as Android’s AsyncTask class.
- Experience with network programming and consuming third party APIs, guiding the integration into dozens of APIs successfully with highly performant/critical integrations.
- Experience working on-site and off-site teams and management of remote teams.
- Fluent in Android SDK/NDK and device driver development.
- Experience developing highly efficient Java code and view layouts and the ability to diagnose performance bottlenecks.
- Performed Espresso, JUnit, Mockito and simulated design patterns to test and develop applications.
- Hands-on experience developing stable, reliable and backward compatible mobile applications.
- Capacity to identify problems and provide alternative solutions.
- Dynamic, competitive, and proactive self-learner who learns and adapts easily to new technologies such as Smart Watches, Chromecast, and Smart TV devices.
- Implements best practices and security whenever possible.
- Experienced in software development life cycle working with Android.
- Skilled use of Threading, Fragments, Implicit and Explicit Intents in Android development.
- Experience with apps with networked data from content management systems.
- Application of the Pillars of Object Orientated Programming and Android development best practices.
- Experienced working with tablets, phones, smart TVs and more recently Android Smart Watches.
- Advocate for coding best practices based on Object Oriented Principles.
- Generating QR codes using the native Google Vision frameworks or a third-party library like ZXing.
- Extensive experience in user interface (UI/UX) using wire framing tools such as Balsamiq Mockups
- Full-stack developer cable of designing, developing and publishing scalable and high-performance Android applications working on both front-end and back-end development.
- Fast and accurate coding using several IDE's including Android Studio, Eclipse, JCreator, NetBeans etc.
TECHNICAL SKILLS
Programming Languages: Android SDK, Kotlin, Java, HTML5, CSS3, JavaScript, PHP, XML, C, C++, Python
Web Services: RESTful, JSON, Volley, Retrofit, AsyncTask
Web Servers: Apache, Tomcat, GlassFish
IDEs: Eclipse, Android Studio, NetBeans, JCreator
Methodologies: Agile, Waterfall, Test-Driven Development, Continuous Integration, pair Programming, Xtreme Programming, Scrum
Project Management Tools: KanBan, JIRA, Slack, Confluence, Basecamp
Libraries: Retrofit, Picasso, GSON, Twitter Fabric, Google Maps API, Google Location Services, Google Sign in, Sugar, OkHttp, Butter Knife, Firebase Analytics, Google AdMob, Parse, Facebook API, LeakCanary, Universal Image Downloader, Volley, SQLCipher, Glide, Espresso, SQLite, ORMLite, iText, Firebug, Bolts, Firebase Crashlytics, Otto. C standard Library
Web Technologies: JavaScript/HTML/CSS
Database: SQL Server, MySQL, SQLite, NoSQL, Firebase, Parse
Version Control Software: Git, GitHub, SVN, SourceTree, Bit Bucket, Tower
Architecture & Design Patterns: MVC, MVP, MVVMClean, Decorator, Façade, Visitor, Proxy, Reactive, Modular, Command, Observer, etc.
Design Patterns: MVC, MVP, MVVM, Singleton, Builder, Factory, Façade,Command,Observer
Memory Management: ART, Dalvik, Memory Mapping, leak Canary, Android Profiler
Frameworks: Three20, Sparrow, Java Development Kit (JDK), .NET, Android SDK, Fabric
Development Platforms: Android SDK, Firebase, Reactive-X
Issue Tools &Tracking: JIRA
DDMS tool: ADB
PROFESSIONAL EXPERIENCE
Sr. Android Developer
Confidential, Redmond, WA
Responsibilities:
- Built an application from scratch following MVVM/Clean architecture patterns
- Mentored a junior developer in both Android development and general Agile practices.
- Built out a robust camera application using Jetpack CameraX
- Sent images to the backend for machine learning analysis using Retrofit and coroutines.
- Created a low-level image stitcher using OpenCV and Android NDK to ensure optimal performance.
- Responsible for maintaining the project’s Azure Devops code repository, implemented a build pipeline, so apks could be shared with business stakeholders.
- Added AR product recognition to camera using ONNXruntime and YOLO model.
- Worked to ensure image quality during a walking speed capture.
- Added support for push notifications through Firebase Cloud Message and later Azure Notification Hub. Responsible for the project’s Firebase console.
- Implemented dependency injection using Hilt.
- Ensured app was adequately unit tested.
- Since there were no QA testers, took on responsibility of testing and ensuring quality of both the mobile application and its backend services
- Responsible for delivering mobile and end-to-end demos at the end of every sprint.
Lead Android Developer
Confidential, Seattle, WA
Responsibilities:
- Worked with a team of 7 Android Developers undertaking key Agile-Scrum methodology, with 2-week sprints
- Mentored junior Android developers and conducted peer reviews to ensure code quality while collaborating with cross-functional teams on a “Danger” implementation and associated set of rules to speed up/automate the peer review process
- Cooperated with services teams on requirements/models and rendered leadership to help them keep pace with the project
- Designed technical implementation details and used JIRA and Confluence for project tools
- Implemented the mobile app using Android Studio IDE
- App primarily uses MVVM architecture, with newer code taking on more of an MVI focus
- App is compatible with Android 8.0 and up
- Legacy code in Java, with all new code in Kotlin
- Wrote a class to generate ITF barcodes using ZXing
- Replaced legacy databinding implementations with ViewBinding (or Compose, when possible) equivalents
- Pushed for standardization of UI to Material Design standards, including following the rules of 4s/8s and the establishment of a typography scale
- Resolved several application crashing bugs and ANRs that were present in the production version of Android app.
- Migrated some legacy service calls away from using RxJava to Coroutines
- Added Firebase Dynamic Linking to the project, updated the handling of preexisting deeplink code accordingly
- Migrated legacy reservation classes to use Jetpack Navigation
- Wrote Viewmodels and usecases for the Select Location portion of the Reservation redesign
- Created several Jetpack Compose components for a UI library meant to be used cross-brand
- Overhauled error handling across reservation flow
- Ensured all new code was up to modern Android design standards and adequately unit tested
- Worked on the addition of Hilt for dependency injection
Lead Android Developer
Confidential, Charlotte, NC
Responsibilities:
- Worked on a team of 3 iOS developers, 2 Android developers, and 3 quality assurance engineers.
- Development teams were organized using Agile Scrum methodology used, with 2-week sprints and JIRA and Confluence for project tools.
- Mentored junior Android developers and conducted peer reviews to ensure code quality.
- Implemented the mobile app using Android Studio IDE.
- The Android app is structured using MVP architecture and was designed to be compatible with Android versions 5.0 and up.
- Legacy code in Java, with all new code to be in Kotlin.
- Refactored layouts across investment portion of app to have flatter view hierarchies, resulting in improved performance.
- Standardized dimensions and styling across the investment portion of app to be Material Design compliant.
- Resolved several application crashing bugs and ANRs that were present in production version of Android app.
- Improved accessibility-related sticking points across the investment portion of Android application.
- Created module to display CFRA and Morningstar market research using ConstraintLayout.
- Provided demo presentations of the Android app to the Chief Digital Officer.
- Refactored multiple older classes from Java to Kotlin.
- Participated in a large project to bring the investment-side and bank-side closer together, including using the same endpoints.
- Overhauled the bank-side transfers code to use Retrofit with RxJava instead of HttpURLConnection.
- Wrote unit tests for legacy classes that lacked them.
- Wrote unit and instrumentation tests using JUnit, Mockito, and Espresso.
- Refactored several bank-side transfer classes to be MVP patterned and easier to work with.
- Assisted in modularization of investment portion of Android app.
- Worked with market experts to fix logic errors for purchasing stocks and options and introduced some quality of life changes for traders.
- Provided leadership to services teams to help them keep pace with the project.
- Collaborated on coachmark Fragment to show users new features.
- Worked with market experts to fix logic errors for purchasing stocks and options and introduced some quality-of-life changes for traders.
- Implemented a feature to allow traders to easily search for/filter through ETFs that matched a variety of criteria.
- Worked with other teams on a generic ExoPlayer Activity as an alternative to using the Brightcove framework.
- Pushed mobile team to use Moshi as an alternative for GSON and led the migration efforts.
- Refactored a large chunk of the investment code to handle options positions more efficiently.
- Converted Invest code away from using findViewByID/Butterknife/Kotlin synthetics to using Android ViewBinding
- Implemented Android Bluetooth and Location Connectivity components.
- Collaborated with other teams on a Danger implementation and associated set of rules to speed up/automate some of the peer review process.
- Created a POC and associated ADR document for Jetpack Navigation.
Lead Android Developer
Confidential, Atlanta, GA
Responsibilities:
- Worked on Vector device Bluetooth interface to provide periodic status updates to aid in customer/dispatch visibility using GPS and tractor engine data from the Vector
- Implemented Push Messaging to update the driver on worklist and notifications using MessageBroker
- Worked with secondary application called the MessageBroker, which monitors the device for changes in connectivity and notifies the backend what is the best way to reach a given device (SMS, Direct IP using sockets, or Firebase Messaging)
- Refactored legacy Java code to Kotlin while working on app performance and optimization
- Software development, turning ideas into code with java and kotlin, effectively using each language to its advantage
- The MessageBroker receives any messages using the aforementioned methods and routes them to the destination app.
- Helped maintain the MessageBroker using AIDL
- Worked in Android 6.0 developed in Android Studio 3.0 IDE, designed exclusively for use by the Panasonic FZ-N1, using MVP architecture throughout the application
- Instrumental in improving the Android app’s telephone features
- Responsible for both research/proposals and implementation, and for managing existing codebase
- Acted as team mentor as the Confidential team was fairly new to Android, and helped orient, train and manage offshore developers
- My biggest achievement was the implementation of analytics to provide greater visibility into application crashes
- SME for the MessageBroker application, responsible for researching and resolving defects, and implementing a couple of new features for the architecture team
- Implemented and ran testing with AppDynamics analytics to analyze the battery/data footprint
- Advised the team on CI/CD techniques, namely pair programming and test-driven-development (TDD)
- Trained and mentored the Confidential development team in instrumented/UI testing using Espresso
- Ensured all new code written was free of “code smells” using Sonarqube
- Updated the application to use Mockito and handled all changes to preexisting unit test cases
- Ensured that all new code I wrote was intelligently and comprehensively unit tested
- Refactored several application components, and wrote proposals for refactoring for a few others
- Frequently demonstrated new features and layouts to the business partners
- Created a tutorial/information/quality of life Activity from scratch to support a feature that was confusing for users. Said Activity had varied behavior based on context/Intent passed to it
- Fixed a great number of defects/bugs using both AppDynamics and logs pulled from the devices using Airwatch MDM
- Cleaned up Log4 logging in both PnD and a helper library to be both more responsive to changes in logging level and easier on device memory
- Used the Android Architecture Components with MVVM and Kotlin to cut down on boilerplate code
- Worked on a number of Telephony related features, which resolved user issues inherent in the technology
- Moved application away from using AsyncTask except when appropriate
- Aided in making changes to the app’s Gradle to accommodate for Jenkins CI pipeline changes
- The development team consisted of 3 Android developers, 1 web services developer, 1 hybrid, and 4-5 offshore developers
- Used Hewlett Packard’s Agile Manager for assigning tasks and backlog management
- Optimized an ANR-prone broadcast receiver to offload its work onto an IntentService
- Helped other developers thoroughly test their code before it passed to QA, team has one of the lowest defect rates in the company
- Participated in managing CoreFramework, an Android library designed to handle interfacing with the Vector, a non-standard Bluetooth device, and barcode scanning using Panasonic’s firmware
- Assisted Confidential SMEs in conducting peer code reviews
- Overhauled the PnD Settings sub-application to use SharedPreferences
- Worked to teach and mentor a team new to Android development and a weak off-shore team, and successfully improved team performance and knowledge of Android development and best practices
Lead Android Developer
Confidential, Atlanta, GA
Responsibilities:
- Documented all changes made to the app, improvements, fixes and new features, back-end and front-end development.
- Participated in the full mobile software development life cycle.
- Conducted SCRUM meetings and acted as liaison with the upper management to make everything work faster by removing all blocking situations the team was facing
- Added the Parcelable interface to pass custom objects between components via Intents.
- Used Espresso for instrumentation testing using Assertions, Matchers and Actions.
- Worked with LRU Cache to increase the performance of ListView scrolling.
- Updated the look and feel following Material Design guidelines, and implemented several Fragments for the UI.
- Ensured excellent form factor integration by creating multi-panel activities with Fragments.
- Improved the layout rendering by saving and optimizing the view hierarchy in all the resources.
- Supervised the creation of the unit, integration and stress test cases with JUnit, Espresso, 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 depending on its preferences.
- Managed private Git code repositories with SourceTree.
- Implemented a WebView control to reuse some legacy web application functionality within the native app.
- Implemented Google Analytics and Firebase for various analytics.
- Utilized the Android Studio IDE to develop and code the application in Java.
- Contributed value to a cross-functional engineering teams (back-end development, front-end development, UI/UX designers, QA, Product Management, etc.).
- Led a team of three Android developers, one hybrid developer, and one back-end developer and one front-end developer.
- Conducted frequent code review activities with the members of the development team.
- Facilitated requirement gathering sessions and wrote the high level and detail design for the Android application.
- Managed the authorization with the backend services using certificate pinning.
- Configured Git repositories on private Git server for the Android development team.
- Configured the continuous integration process with a Jenkins instance hosted on a private server.
- Constructed prototypes of the User Interface integrating the latest Material Design guidelines.
- Documented the progress of the daily stand-ups and Scrum meetings with JIRA, Confluence and Slack.
- Established communication with back-end server to consume Restful API using core Android classes.
- Implemented the use of handlers and threads on several tasks which improved the application performance.
- Managed team and optimized workflow with balanced task assignments and knowing the skills and aptitudes of my team.
Lead Android Developer
Confidential, Richmond, VA
Responsibilities:
- Data caching done with an SQLite local database encrypted for enhanced security using SQLCipher
- RESTful client implemented using Retrofit and GSON for serialization.
- Maps done through Google Maps using v2 API and Google Localization Services.
- Images loaded asynchronously resized and cached using the Google Glide Library
- UI/UX for maximum brand recognition, simplicity of use and intuitiveness
- The project was managed with an Agile SCRUM methodology. I assisted and at times took over the position of SCRUM Master
- Implemented the menu using the support v7 Navigation Drawer with multiple options
- Constructed a layout following Material Design Guidelines and using various views and layouts, coordinator layout, image views, text views, etc.
- Participated in architecture, design, implementation and launch.
- Proposed a front-end architecture using the MVP Model design pattern.
- Implemented Android Support Library for backwards compatibility.
- Used Google Cloud Messaging for push notification and user set alerts of inventory changes.
- Used Jenkins continuous integration and Espresso for automated testing.
- Acted as direct interface with client and participate in overall development activities including requirements elaboration, design, and coding.
- Performed peer reviews on colleague’s code to ensure consistent standards.
- Used SharedPreferences to provide consistency with key-value pairs.
- Provided the app with functionality that enables location awareness with Google Play Services
- Used Localytics to find issues, get stats and improve performance.
- Mentored junior developer on best practices for coding.
- Added Retrofit to consume RESTful web services to parse realtime-data and new items.
- Consumed web services to display user history on the user interface.
- Led Android development and worked closely with cross-functional teams of web development and remote contractors encompassing a variety of Android specialties.
- Established the coding standards to be used in the Android development.
- Crashlytics used for testing and various Fabric tool employed.
- Used Google ZXing for scanning car stickers.
- Dagger 2 and Butter Knife used for dependency injection and decoupling.
Senior Android Developer
Confidential, Burbank, CA
Responsibilities:
- The application was written natively with the Android SDK, and it support devices starting from KitKat.
- Used Android Studio as the IDE since it includes all the tools needed to develop, test and deploy the application.
- Used Lazy Loading to improve performance over heavy visual content.
- Used Intents & Intent Filters to initiate activities and pass information between activities and fragments.
- Created Compound views for a more attractive and efficient design.
- Implemented Google location services to support use by Spanish audience.
- Used MediaPlayer with VideoView to stream and render live streaming media and streaming media.
- Used Fragments for easier navigation & re-usability of UI components.
- Implemented Android Support Library for backward compatibility.
- Interfaced with SQLite for storing information, and SharedPreferences to store custom key-value pairs.
- Used Espresso & Mockito for testing the UI & App functionalities.
- Implemented web view to be able to login using different service provider credentials.
- Used GIT control the source code by creating different tags, branches & commits according to the different releases made.
- Mentored junior developers about coding standards and best practices.
- Generated new technical documentation based on all changes made to the app.
- Participated in the full mobile development life cycle.
- 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.
- Supervised the creation of the unit, integration and stress test cases with JUnit, Espresso for UI behavior testing.
- Was the owner of the central Git repository for our team, and used private GitHub repositories to host internal code.
- Actively worked with the back-end team to improve the RESTful API to include new features.
- Consumed RESTful web services using Volley and parsed JSON objects with GSON.
- Developed compound views to present information to the user depends on its preferences
- Used the View Pager Indicator to provide feedback to the user about the background processing status.
- Participated in technical feasibility of UI/UX per Google Material Design Guidelines.
- Built Activities using compound and customized views.
- Implemented Google Analytics and Flurry for app analytics purposes.
- Ensure excellent form factor integration by creating multi-panel activities with Fragments.
- Worked with Picasso library for image rendering in high resolution.
Confidential
Responsibilities:
- Enhanced the app for heavy data load processing using services and AsyncTask combined with AsyncTaskExecutor.
- Used the Picasso library for intensive image rendering on ListView
- Created extensive caching of both images (lazy-load) and data (object data from network as SQLite tables).
- Designed and implement peer-to-peer messaging via the Pusher libraries.
- Google maps and location services to find services where users are currently located.
- 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.
- Integrated activity and 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
- Implemented several design patterns such as MVP, Singleton and Observer; Builder, Façade.
- 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.
- 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.
- RESTful data consumption using Retrofit with a GSON converter, and a custom interceptor.
- Used Google GSON to parse JSON files.
- Tracked incident reports with JIRA
- Collaborated with the product team to identify, prioritize, and document detailed product requirements.
- Followed TDD/BDD and Agile methodologies throughout the project.
- Used JIRA for project planning and bug tracking.
- Constantly perform and manage code reviews.
- Led a team of Android Java programmers.
- Made use of communication between standard data between apps over network requests using Retrofit.
- Able to develop efficient and maintainable code with the right balance between solving the problem at hand and not over-engineering your solution.
- Worked with the UI/UX team for the new app skin redesign.
- Implemented Google Analytics for app analytics proposes.
- Connected the app to Twitter, Instagram, and Facebook.
- Tested the mobile app in various emulators to support multiple Android devices.
Android Mobile Developer
Confidential, San Francisco, CA
Responsibilities:
- Used Git repositories to have the software in a version control environment.
- Employed TDD/BDD and Agile methodologies.
- Implemented the user interface by using Compound View, Custom View, ListView, View Pager and Tab Layout.
- Worked with Urban Airship for push notifications.
- Tuned components for high performance and scalability using techniques such as caching, code optimization, and efficient memory management.
- Use of Implicit Intents, ListViews, ActionBar tabs with Fragments.
- Applied fragments to minimize the activity count and simplify the navigation.
- Tested the application on various devices and emulators to determine compatibility.
- Design and develop functionality between user’s interaction and delegating it back to the server using RESTful web services and JSON parsing consuming them with HttpURLConnection.
- Developed enhancements and improvements to the current Application.
- Used the Android tool ecosystem for development, testing, debugging, and performance benchmarking.
- Configured a Flurry account to retrieve analytics information from every device installation.
- Designed and developed the Android app as simple as possible for quick user adoption.
- Accessed internal file storage to save different configurations of the application.
- The passing of data was made using bundles and serialized information among different activities.
- Used the Dalvik Debug Monitor Server (DDMS) for debugging and testing.
- Worked with the testing team and used developer testing tools like Robolectric.
- Collaborated with the product team to identify, prioritize, and document detailed product requirements.
- Used SQLiteOpenHelper to create the SQLite database schema to persistent data from users
- Connected the app to Twitter, Instagram, and Facebook.
- Tested the mobile app in various emulators to support multiple Android devices.
- Use of the startActivityForResult flow for different features within the application.
- Employed a Test-Driven Development methodology to ensure every method was properly done and tested.
- Mentored three new developers about beta testing and requirement gathering.
- Created asynchronous operations using multiple strategies: AsyncTask, Handlers, Intent Services, and Loaders for Android.
- Devised creative technical solutions to performance bottlenecks.
- Added encrypted environment configuration with sessions and user login using SharedPreferences.
- Implemented Picasso to do Asynchronous image loading.
- Usage of core Android resources like Fragments, Styles, Themes, 9-Patch Images.