Dheerajkumar Haritheesan
Senior Android Developer
Phone: 857-***-****
Summary
* *****’ experience in Java, standard industry design patterns, and Object-Oriented Programming
Experience in optimizing performance and memory usage of Android Apps
Experience with multi-threading, integration with REST and SOAP APIs, custom view animations and transitions, and producing reusable libraries
Strong knowledge of Android SDK, core java different versions of Android, and how to deal with different screen sizes
Familiar with working on geo-fencing, google map integration, background, foreground services
Proficient in designing, wireframing, and implementing UI/UX
Offshore/Remote team collaboration and management experience
Mentoring Jr developers by analyzing code via code request to ensure best practice been followed
Experience with the entire Software Development Lifecycle conducting and implementing applications from conceptualization to publish apps
Key Skills
MVP/MVVM/Singleton/Builder/Façade Architectures
Glide/Picasso/ExoPlayer/VideoPlayer
Testing/TDD/BDD/Code reviews/Junit/Espresso/Mockito/Powermock
Activities/Content Providers/Services/Broadcast Receivers
Certificate pinning/Android Keystore/Cipher/AES/RSA
Kotlin/Data Classes/Sealed Classes/Extension Functions/Coroutines
Retrofit/RxJava/GSON/Json/Moshi/Http URL Connection
SQLite/Room/MySQL/SharedPreferences/File Provider
Firebase/AWS/Push Notifications/BLE
Jira/Jenkins/Bitbucket/Git/Git lab
Work Experience
Kaiser Permanente
Location: Boston, MA Dates: August 2019 – Present
Sr.Android Developer
Work on a shared library that allowed patients and health care specialists to talk to each other through video conferences. The shared library then had to be integrated into Kaiser Permanente Washington to allow patients to click on an appointment card which then gave them the option to launch the video visit within the app itself. Users also had the ability to click links they received through emails and text messages to launch the video visit.
Android app:
https://play.google.com/store/apps/details?id=org.ghc.android&hl=en_US&gl=US
Worked in an Agile environment with 5 Android developers, QA testers, UI/UX designers and backend developers.
Run meetings with product owners and scrum masters on a daily standup meeting.
Collaborated with deep link integration across multiple functionalities inside the application.
Tokenize authentication has part of the Launch Meetings conference feature.
Closely collaborated with backend developers to integrate security measure with deep link interactions.
Created Sequential Diagrams has part of documentation to clearly visualize the stages of the application.
Updated onboarding documents for KT effort exemplifying Android deep link process.
Participated in PR approval team, enforcing a code coverage around 80% for the Android App.
Working closely with dev piers to follow SOLID principles and utilized tools like Jacoco to keep track on code coverage.
Implemented material design components and debug and track with UI/UX designers to implement pixel perfection layouts.
Worked with QA developers and implement Apache Server to execute extensive automation test.
Liaise has a point of contact to the offshore teams, tackle blockers in every sprint cycle and resolve communication barriers with non-technical colleagues.
Worked with testing libraries and frameworks: Junit, Espresso, Mockito, Robolectric
Refactored code base to make use of observable design pattern.
Implemented Google Archictecture Design patterns with MVVM + repository layer.
Utilized state-of-the-art technologies like Lifecycle components ViewModel and LiveData.
Grasshopper
Location: Boston, MA Dates: March 2019 – August 2019
Sr.Android Developer
Grasshopper customers can now run their businesses from anywhere with the new Grasshopper Android app:
https://play.google.com/store/apps/details?id=com.grasshopper.dialer
Worked in an Agile environment with a crossover team including iOS developers, Android developers, QA testers, UI/UX designers and backend developers
Implemented custom SDK to perform VoIP using android call application
Actively participated in daily scrums meeting behaving has a point of contacts with offshore teams to clarify milestones and increase efficiency on pending work
Executed meetings with UI/UX to clarify uses cases on rebranding effort and translate requirements to technical efforts
Enforced UI interactions to follow Android Material Design and apply best practices
Establish process and standards for code deployment and test coverage, applied Bambu scripts to automated builds with multiple test cases
Created custom views to be incorporated across multiple features in the project
Developed Settings Feature to incorporated Navigation Drawer component along with fragments to define user interaction and customize application configurations
Debugged closely with backend teams an issue when app settings weren’t reflected trough middleware endpoint
Implemented Observable pattern to reduce application memory consumption and facilitate readability decoupling app modules
Worked on a MVVM Architecture Design pattern using observables and data binding connections between modules
Created Repository pattern to abstract connections between local databases and remote endpoints
Refactored Java code with Kotlin implementations like companion objects and Singleton objects
Interacted with default Content Providers as Contacts Providers to facilitate user interaction with local user contacts
Created Searchable Activities to efficiently utilize contacts locally in user device
Worked on prove of concept to incorporated previous and favorite contacts navigation
Implemented Coroutines to asynchronously fetch new Contacts Mobile data, which will contain new features from backend endpoints
Created easy to identify status bar with the last updated date and time to the messages and also incorporating call history screens according to specs
Accomplished several unit test cases along the application using jUnit and Hamcrest assertions, created mocks and verifications of classes and interfaces
Consolidated Instrumented Test cases with QA tester to closely executed inside of the application using Espresso and Roboelectric tools
Humanity
Location: San Francisco, CA Dates: June 2018 - March 2019
Sr. Android Developer
The Employee Scheduling app helps employees stay in the loop and connect more easily with their workplace and colleagues:
https://play.google.com/store/apps/details?id=com.humanity.apps.humanityV3
Refactored several callbacks implementation from old MVP design pattern to excel the use of RxJava schedulers
Participated on Architecture Design Pattern migration from MVP to MVVM, reducing and consolidating code to make use of Android Ktx plugin
Reduced learning curve on Kotlin language by creating multiple training materials and balance current sprint work with mentoring developers’ piers
Worked on a distributed version control system and handled branching strategy to effectible track working effort and increase production during the sprint cycle
Collaborated on a Agile methodology with 2 weeks of sprint cycle and 1 week of retrospective
Helped to create scripts on groovy language to be possible to execute in CI/CD tools like Jenkins
Participated in reviewal team to monitor smells and code quality along with the enforcement of code coverage using Jacoco tool
Integrated push notifications messages with cloud tool Firebase to populate new updates on schedules for ShiftPlanning feature
Debugging push notifications on ShiftPlanning feature that forbids user to properly see updates from managers accepting the new schedule using DebugView events
Created abstract classes to define common behavior across the application and utilizing extension function from Ktx plugin we consolidate common operations like getCurrentTime and parseDate
Constructed several custom views to reduce the burden of multiple fragments across the application
Helped to generate the object graph and elaborating @Binds, @BindsInstance, @Providers, @Scopes and @Components
Debugged missing bindings on dependency injection tool and track properly solutions to inject constructors
Participated in pair programming to reduce learning curve on new Kotlin language implementation
Elaborated pull request that reflects sprint effort in Jira bug tracking system
Hollar - The Online Dollar Store
Location: Santa Monica, CA Dates: August 2017 - June 2018
Sr. Android Developer
Bring the fun and addicting dollar store experience straight to your phone:
https://play.google.com/store/apps/details?id=com.hollar.android&hl=None
Worked on an Agile environment with 5 Android developers and interacted with backend developers
Created pull request that matches expected quality code that follows SOLID principles
Helped other developers to decompose and refactored code to follow SOLID principles patterns
Worked with new ConstraintLayout to positioned elements accordingly to design, and created chains and guidelines to make the application more appealing
Integrated search patterns and search activity interaction inside the application
Debugged network calls to reflect correct consumption of data using Postman, Swagger and Charles Proxy API
Refactored networking calls using Retrofit Api to enqueue and reflect changes from a worker thread into the main thread
Implemented Certificate pinning to mask endpoint calls during login feature procedure
Collaborated on ItemsCart feature to selectable collect items from user preference to prepare payment process one and initialize purchase process
Closely debug with UI designers to achieve pixel perfect layout on list of views using Recyclerview with customize Item Separators
Implemented abstract view holder pattern to support headers and multiple layouts in RecyclerView
Elaborated comparable algorithm according to design to simplified choose elements and facilitate decision from user
Implemented customize fast scrolling with custom drawables and fastScrollEnabled property
Participated on branding implementation to create a more appealing layouts and define new acquisition strategy inside the application
Integrated Exoplayer with a customized layout to help users to identify products with videos where applicable
Created background operations with Android JetPack components WorkManager to in a period of time check updates on items
Worked on a TDD methodology applying Red-Green-Refactor to increase code stability using multiple tools like jUnit, Mockito and PowerMock
Worked with the implementation of federated login like Google Sign-in capabilities to give more options to interact with the application
Whole Foods Market
Location: Austin, TX Dates: August 2016 - August 2017
Sr. Android Developer
Get the most out of every shopping trip with the Whole Foods Market app:
https://play.google.com/store/apps/details?id=com.wholefoods.wholefoodsmarket
Code user story ‘Browse weekly sales at favorite location to find the latest deals on the products’ completely from scratch
Designed alternative UI and improved payments options for prime members product flavor
Browse weekly sales at your favorite location to find the latest deals on the products
Incorporate Crittercism library and Google Analytics to send real-time, actionable crash reports and collect user engagement data to the backend
Implement Amazon In-App Purchasing API to enable purchase digital content and subscriptions for purchase within apps on Amazon Appstore
Refactored legacy codebase, architected the project using MVP and widely applied code reusability using dependency injection libraries (Dagger2, Butterknife)
Use Android Studio, Java, AsyncTasks, Google Maps, RESTful, JSON, SQLite, Servlets, Tomcat, MySQL, SVN, 9Patch
Generate a downstream logic to communicate the servers with the phones using Google Cloud Messaging (GCM)
Closely work with the testing team and used developer testing tools like Robolectric
Implement Recyclerview-animator’s library to increase the attention of the user and easily implement multiple animations across the project
Communicate with Amazon Web Services (AWS) for secure cloud services platform, database storage and content delivery using IntentServices and AlarmManager API
Check Android quality control using PMD, Findbugs, Checkstyle, Gradle and Jenkins reports
Take ownership of and address tickets raised by QA, UAT from Jira
Participate in an agile technical team across UI, Front End and Back End responsibilities
Snag
Location: Glen Allen, VA Dates: September 2013 - August 2016
Android Developer
Snagajob is the #1 free, easy job finder app to find part-time jobs and full-time jobs, make job applications easier, get great career advice and more:
https://play.google.com/store/apps/details?id=com.snagajob.jobseeker
Save search and get email updates when new jobs are posted that match in search
Consumed web services with a Volley client to support for request prioritization and strong ordering that makes it easy to correctly populate your UI with data fetched asynchronously from the network
Search for local job openings and have Daily Job Matches sent directly to user phone
View job application status updates on jobs that user have applied to
Included Moshi library for built-in support for reading and writing Java’s core data types
Apply to jobs with just one click by using Snag profile
Perform 80% integration testing using Robolectric framework
Improved user interface by adding AndroidSlidingUpPanel component foe draggable sliding up panel and circular ImageView in list view
Find jobs hiring in user area using map search feature
Created a Snag Widget on home screen to show the latest offers according to users’ geo-location
Incorporated contacts, calendar, gallery device specific content-providers and build custom content providers to share data across processes
Replaced old SQLIte database with Realm to include difficult-to-build features like two-way data sync, realtime collaboration, persist with lightweight transactions and query using fluent interfaces
Modularized the code by using Dagger 2 dependency injection library to decouple the classes, to make the code easier to test and maintain with no hard dependencies
Implemented Bolts Framework to perform branching, parallelism, and complex error handling, without the spaghetti code of having many named callbacks
Education
University Attended: California State University Northridge
Degree Obtained: Bachelors Computer Science