PROFILE SUMMARY
* *****-********** ********** *******. Overall software experience: 11+ years. Apps published to Play Store: 6.
Adept with design patterns: MVP, MVVM, MVC, Singleton, Adapter, Command, Observer, Builder and more.
Highly skilled implementing Material Design and using the support libraries for backwards compatibility.
Experience developing Android Mobile Applications in Java and Kotlin using Android Studio and Eclipse.
Considerable experience with Coroutines and RxJava for multithreading.
Hands on experience with utilizing Retrofit, Volley for consuming APIs.
Extensive experience in user interface (UI/UX) using wire framing tools such as Balsamiq Mockups.
Strong knowledge of the basic Android components: Activities, Services, Content Providers and Broadcast Receivers.
Experience with Firebase Push Notifications, Google Maps, Navigation Component, GPS.
Proven abilities to work closely and effectively with engineering and non-engineering teams.
Skilled working the majority of the social networking SDKs such as Twitter, Facebook, Instagram.
Have participated in innovation, design, and architecture of the apps.
Experienced integrating Mobile applications with web-based content via Web Services,
Created various custom and compound views to generate a better final User Interface and improve the retention.
Work with Android JetPack components such as Room, ViewModel, LiveData.
Experience implementing Hilt for dependency injection.
Hands on applying Figma.
Extensive experience in communicating with teams in different time zones to ensure smooth workflow.
Knowledgeable of the latest analytics tools for mobile applications such as Google Analytics, Flurry, Crashlytics etc.
Experience creating custom views and well-designed fragments.
Sound knowledge of databases (Room, SQLite, Oracle, MySQL, etc.).
Experience in test-driven-development (TDD) with functional testing, and Unit Testing
Used different testing libraries for unit testing such as Mockito, Junit, MockK.
Created apps that work on most devices such as smart watches, tablets, and phones.
An avid user of continuous integration tools: Travis, Jenkins, CircleCI.
Automated testing with Espresso, Robolectric, and Robotium.
Experience in software development processes including Test-Driven Development, Continuous Integration, Version Control.
Integrate Android mobile apps with web-based content via Web Services
UI design implementation using Android Studio, Eclipse, and Android jetpack compose.
Hands on with Android Sensor management such as Android Bluetooth and BLE.
Hands on project planning and tracking skills over Agile methodology.
Skilled in all phases of the Android development life cycle: Planning, Analysis, Design, Develop, Documentation, Test, Deployment
Hands on skills on user interface and user experience UI/UX.
Always interested in learning new skill or a new technology.
TECHNICAL KNOWLEDGE AND SKILLS
IDEs:
Android Studio, Eclipse
Languages:
Android SDK, Java, Kotlin
External Libraries:
Picasso, Glide, Volley, Postman, Charles Proxy
Methodologies:
Agile, Waterfall, TDD, Kanban
Push Notifications:
Urban/Firebase Cloud Messaging (FCM), Google Cloud Messaging (GCM)
Design and Architecture:
MVC, MVP, MVVM, Singleton, Dependency Injection, Builder, Factory, Façade, Proxy, Command, Observer
Methodologies:
TDD, Pair Programming, Agile, Scrum
Databases:
Room, SQLite, MySQL, SQL Server
Software API:
Android Dalvik, OpenGL, DirectX
Web Services:
RESTful, SOAP, JSON, GSON, Retrofit 2, OKHTTP, GraphQL
UI/UX:
Android CustomViews, Material Design, RecyclerViews, Animations, Figma, Android Jetpack Compose
Multithreading:
IntentService, Handler Threads, RxJava, Kotlin Coroutines, WorkManager
Version Control:
GitLab, Git, GitHub, SourceTree, Command Line
Dependency Injection:
Hilt, Dagger, Butter Knife
Continuous Integration:
Jenkins, Travis, Hudson
Testing and Troubleshooting:
Leak Canary, Mockito, Junit, Espresso, MockK, robolectric, sonarquebe, Splunk
Misc:
JobScheduler, EventBus, Schematic, Location Services, Bluetooth Low Energy (BLE), Android Profiler
Management Tools:
Jira, Office Project
ANDROID PROJECT WORK EXPERIENCE
Subway – New York, NY
Senior Android Developer / 07/2020 to Present
https://play.google.com/store/apps/details?id=com.subway.mobile.subwayapp03&hl=en_CA&gl=US
Use the Subway app to customize your way: Like extra cheese? Us too. Build your own Footlong just like you do in the restaurant. Swap your condiments, pick your toppings, or toast your bread — the opportunities are endless.
Worked on payment module to Create a Payment and Process the Order using OAuth2 tokens, the Client Metadata ID, and PayPal's API.
Implemented and enhanced performance of the app when user placing the order with kotlin flows and coroutines to process data asynchronously.
Performed technical tasks in Android Studio IDE and worked with a MVVM app architecture.
Programmed functions in Kotlin.
Migrated project to AndroidX to use the newest Android JetPack libraries.
Used Charles proxy to trace/debug network calls.
Implemented Android Architecture lifecycle aware components and use LiveData to build data objects that notify views when the underlying database changes.
Applied Figma design tool to work on UI/UX.
Made use of Android SDK components, Activities, Broadcasts, Services, Intents, Job Scheduler, RecyclerView, Custom Views, Constraint Layout, Fragments, Looper, Handlers, Shared Preferences, Room, etc.
Applied Flow API.
Connected the app to Twitter, Instagram, and Facebook, by integrating their SDKs.
Created Kotlin coroutines for asynchronous execution and databinding.
Using Retrofit2, OkHTTP networking libraries to retrieve information relating to status and deliveries.
Used Jira platform to track productivity and tasks provided to accomplish the project.
Applied Coroutines to make app multithreaded and perform synchronous operations.
Used combination of Dagger 2 and Hilt for dependency injection.
Created and ran unit and integration tests with Espresso, Mockito, MockK and Roboelectric.
Implemented Google Maps for location search with the Google Location APIs.
Using an Offline-First model using Room Databases and migrate from SQLite implementation.
Integrated third-party SDK for payment authentication.
Sherwin Williams – Cleveland, OH
Senior Android Developer / 10/2019 to 07/2020
https://play.google.com/store/apps/details?id=com.sherwin.probuyplus&hl=en_CA&gl=US
The all-in-one app for PRO painters. Unlock the PRO Advantage with 24/7 access to your pricing, purchase history and more.Quick and easy ordering, exclusive deals, and tools to help build your business: Paint Calculator, Sherwin-Williams Product Data Sheets, Project Bids, Color Toolkit.
Developed the Android app on a combination architecture of MVP and MVVM which worked well for the modular Android code base.
Performed data binding with Kotlin.
Created Repository layer and abstracted monolithic ViewModel into view-case scenario.
Performed network API calls and responses using Retrofit with RxJava to support threading.
Refactored code where possible to improve efficiency of code and increate optimization of the Android mobile app.
Refactoring code from Java to Kotlin allowed for eliminating null pointer exception and improved efficiency by converting Java arrays using Kotlin.
Integrated new features into the Android app using Kotlin in modules built on MVVM architecture with Data Binding using JetPack.
Implemented JetPack LiveData to display most current data locally available and to simplify data management during lifecycle changes.
Implemented two-way data binding to communicate user input to ViewModels which updated localized databases.
Used faster image loading libraries of Glide to manage bitmaps to improve Android app performance.
Used Room ORM for simple caching and data persistence.
Implemented multithreads to receive and update calls from web server (Service and Broadcast Receiver).
Used Frame Layout method to show background images of the app.
Implemented the Android Activities and Fragments to create design for the mockup designs.
Worked on customization of Recycler Views, Spinners, Adapters, custom views etc. Integrated third-party SDK for payment authentication.
Used Charles proxy to trace/debug network calls.
Handled service call errors and improved connection with back-end.
Wrote Unit test cases using JUnit.
GoodRX – Santa Monica, CA
Senior Android Mobile Developer / 08/2017 to 10/2019
https://play.google.com/store/apps/details?id=com.goodrx
GoodRx is a free pharmacy coupon & deal finder that helps millions of Americans save on prescription drugs & medical costs. GoodRx is an online medication app with Rx pharmacy discounts, a medication & pill reminder, medicine tracker & more. We find the best price on affordable prescriptions, medications & health savings you can’t find on other medication apps.
Worked on an Agile dev team and participated in scrum events, planning and estimation meetings, sprints, and retrospectives
Architected the app using Data Binding Library to bind UI components to data sources using a declarative format rather than programmatically.
Persisted cookie store and saved cookies into app’s SharedPreferences.
Established effective front-end and back-end communication through RESTful services.
Exposed data via a Content Provider using Room to access contacts and gallery.
Collaborated with product designers with a focus on new feature design and prototyping.
Utilzed RxPS and RxJavaPriorityScheduler Scheduler library in Reactive environment to parse multiple streams of data concurrently.
Created Schedulers mock using RxJava TestScheduler in unit tests and triggered TestScheduler to drive function behavior as expected.
Created/configured a real-time database system and generated a custom-analytics reporting system using Firebase library.
Programmed a custom remainder feature to identify unknown pills by color and shape features.
Implemented beta test coverage, distributed beta versions, collected live crash reports, and gathered feedback from real users using Hockey App.
Made asynchronous HTTP requests, handled responses in anonymous callbacks and multi-part file uploads with Android Asynchronous Http Client library.
Conducted integration testing with Robolectric framework and behavioural testing with Robotium framework.
Fifth Third Mobile Banking, Minneapolis, MN
Android Mobile App Developer/ 04/2016 to 08/2017
https://play.google.com/store/apps/details?id=com.clairmail.fth&hl=en_CA&gl=US
Securely access your accounts, deposit checks2, view recent transactions, pay bills, transfer money1, and find ATMs and branches. With Now Balance® and the Now Balance® widget you can check your balances without logging in. See over six months of account history and account details. Plus you can view total pending credit card transactions, check images, deposit slips, and 24 months of statements. If you’re a first time user, just follow the link on the login page to get started*.
Worked in Android Studio and developed Unit Test and Stress test cases with JUnit.
Worked in MVP architecture and various design patterns (Singleton, Proxy, Observer, Façade)
Consumed REST API to display user history on the user interface using Retrofit 2 and GSON.
Implemented dependency injection natively in Java for object references.
Followed the Test-Driven Development (TDD) approach while developing the app.
Participated in peer code review, daily Scrums, and Sprint planning meetings.
Worked with an internal QA team on system, performance, and acceptance testing, and Identification of issues during the test cycles.
Developed test cases using JUnit, Mockito, and tested the UI using Espresso.
Detected new improvement opportunities by replacing Volley with Glide and Retrofit, and RxJava.
Worked with NineOldAndroids library to include rotation, translation, alpha, and scale animation.
Retrofit four legacy list views to the new RecyclerView / CardView combination, obtaining all the performance benefits.
Created Material Design layouts with different animations optimized for User Experience.
Designed Widgets to keep track of tasks and reporting object completed updating your stats.
Implemented several Dagger Components and Modules to clearly achieve separation of concerns.
Introduced Parcelables for object transfers within activities.
Stored data in SQLite and with a Content Provider security layer.
Implemented the cipher method for the storage of sensitive data such as passwords within the Android application.
Added extra functionality by enabling the push notifications feature using Urban.
Sworkit Rockville, MD
Android Developer/ 03/2015 to 04/2016
https://play.google.com/store/apps/details?id=sworkitapp.sworkit.com
With Sworkit, the feeling of being too busy, too intimidated, or too unmotivated will be a thing of the past. You can live your best life, once and for all. You don’t have to live in the gym to be fit. You can get in amazing shape with our at-home and on-the-go workout system.
Used Native and third-party technologies (e.g., NetBeans, Java, Custom Views, Web Services, JSON, Eclipse,, Flurry, Universal Image Loader, SQLite, Fragments, Hudson, SVN) to optimize the app functionality.
Designed prototypes to create the new main flow of the application with JustInMind.
Participated and conducted SCRUM meetings to review project progress.
Worked with the UI/UX team to design a user-friendly interface for the Android application.
Applied styles and themes following the new Google material design pattern.
Integrated Flurry for mobile analytics.
Worked with JUnit to complete all test cases.
Used SVN for source control management and continuous integration with Hudson.
Used JIRA for project planning and bug tracking.
Implemented Universal Image Loader for image downloading, catching, and rendering.
Designed and developed the initial web site for Sworkit paid video streaming.
Used Parcelable interface to serialize the objects.
Created custom animations and transitions to improve the user experience.
Supported multiple screen resolutions using different layouts for portrait and landscape.
Implemented data persistence using SQLite.
Urbanspoon, Seattle, WA
Android Developer/ 05/2014 to 03/2015
https://play.google.com/store/apps/details?id=com.urbanspoon
Urbanspoon is the #1 FREE app dedicated to helping you find the best food and dining experiences at over a million restaurants.
Introduced Dagger library for achieving the decoupling of the modules through dependency injection.
Developed Custom Views, Compound Views, and various layouts to construct the complex but user-friendly user interface.
Utilized Hudson for continuous integration.
Added Retrofit to consume RESTful web services to parse commercial updates.
Tuned components for high performance and scalability using techniques such as caching, code optimization, and efficient memory management.
Programmed in Java using Eclipse IDE for development of the Android application.
Inserted suitable code to capture the various button and text field events and implemented the desired action for each of the widgets.
Worked using a MVC architecture.
Applied design patterns Singleton and Observer.
Integrated 3rd party APIs, including SDKs for social networks, advertising, and analytics.
Utilized Picasso for efficient image loading.
Performed debugging and testing using Dalvik Debug Monitor Server (DDMS).
Managed memory leaks in debug builds with LeakCanary.
IT/Software Specialist / 05/2011 – 05/2014
CompuCom Systems Inc., Indian Land, SC
CompuCom Systems Inc. is a technology managed services provider and product reseller.
Installed, supported, and maintained servers and other related computer systems.
Installed, configured, and maintained hardware and software components and systems.
Troubleshot technical and computer hardware/software-related operational issues over the phone and in person, accurately diagnosing and resolving issues in response to customer reported incidents.
Performed remote control, patch management, operating system deployment, network protection, and other services via the Microsoft SCCM platform.
Implemented thorough customer support policies, procedures, and standards, taking care to design them to be as enforceable and accurate as possible.
Performed dedicated strategic and budget planning for all systems and their hardware or software.
Applied company standard customer support policies and procedures.
EDUCATION
Bachelor of Education (Mathematics) degree – Bahirdar University
Master of Science (Environmental Science) degree – Addis Ababa University