Post Job Free

Resume

Sign in

Android Developer Communications Engineer

Location:
San Antonio, TX
Posted:
April 14, 2023

Contact this candidate

Resume:

Abdullah Alnasser

Sr Android Developer

Email: adwjd2@r.postjobfree.com

Phone: (832) 539 - 7128

Professional Summary

•Android development experience: 8+ years with 5 apps on Play Store.

•Experience building Android apps from scratch as well as revision, refactoring, and transitioning architecture (MVC, MVP, MVVM) and code base (Java to Kotlin and Android versions).

•Android performance profiling, memory and power management and optimizations.

•Native Android Development in Android Studio and Eclipse using Java and Kotlin.

•Apply Java patterns Singleton, Facade, Factory, Builder, Adapter.

•Implemented the user interface by using Custom Views, ListView, Relative Layout, Linear Layout and Table Layout.

•Improved the layout rendering by saving and optimizing the view hierarchy in all the resources.

•Leveraged beautiful cleaner interface, plus design changes using Android material designs tools like CardView, Toolbar, RecyclerView, animations properties and support libraries for this Android mobile app.

•Improved the performance and UX of several modules of the local Content management system.

•Work with Shared Preferences, Cipher, Certificate Pinning, TrustManager, Bouncy Castle, Spongy castle, SQLCipher, KeyChain, Key Store.

•Knowledgeable of the latest analytics tools for mobile applications such as Google Analytics, Localytics, Mixpanel, Answers, Flurry, Crashlytics, NewRelic, etc.

•Experience in Git for code base and version control (GIT, GitHub, GitLab).

•Experience working on Agile development teams using Scrum processes.

•Used Android frameworks and APIs to efficiently load data and update databases: Loaders, AsyncTaskLoader and SyncAdapters.

•Well versed in Android third-party libraries such as Volley, Retrofit, Picasso, YouTube, Location API, Maps View, Google View, Google Maps, PayPal, Stripe, Android pay, QR Droid, Butterknife, Dagger, Google Wallet payments, Android Annotations.

•Skilled in consumption of RESTful web services (REST, HTTP-based, XML, SOAP, JSON, etc.) and use of Retrofit, Volley, AsyncTask Android back-end communications.

•Practical implementation of Android Life Cycle, Fragments, Intents, and threads on Android; binding services, implicit and explicit Intents, background processes, sync adapters, activity, activities for Result, WebView, ImageView, TextView, RecyclerView, ListView, and Object-Oriented design and programming.

•Well versed in Android third-party libraries such as Volley, Retrofit, Picasso, YouTube, Location API, Maps View, Google View, Google Maps, PayPal, Stripe, Android pay, Google Wallet payments, Android Annotations.

•Skilled in leadership and able to work well with all people, mentoring developers, working with project managers, stakeholders, and cross-functional team members.

Technical Skills

•Programming Technologies: Java, C++, Python, Haskell, Solidity, JavaScript, NodeJS, Kotlin, Groovy.

•Tools: Docker, InstantLink integration, Android Studio, Visual Code, Jenkins, Firebase Console.

•Database: MySQL, RoomDB, Sqlite, FireStore, RealtimeDB.

•Web Integration: REST, SOAP, JSON, GSON, MOSHI.

•Design Principles: MVP, MVVM, MVC, Singleton, Adapter, Factory.

•Continuous Integration: Circle CI, Travis CI, Jenkins.

•Testing/Debugging Tools: Leak Canary, Espresso, Robotium, Mockito, Logcat, UIAutomator.

•Frameworks: Java Development Kit (JDK), .NET, Android SDK.

•Multimedia: Picasso, Glide, Fresco, ExoPlayer.

•PushNotifications: Urban Airship/Firebase Cloud Messaging (FCM), Google Cloud Messaging (GCM).

WORK EXPERIENCE

Sr. Android Developer

KeyBank

Cleveland, OH since March 2021

App Name: KeyBank – Online & Mobile Bank

Link: https://play.google.com/store/apps/details?id=com.key.android&hl=en_CA&gl=US

Description: Take control of your money and bank the way you want to bank – anytime, anywhere. The KeyBank mobile banking app is free, fast, and secure with features that are streamlined for today’s on-the-go world.

Responsibilities:

Used Retrofit, Coroutines, and data binding in MVVM clean-code architecture.

Worked with an Agile/scrum team to deliver high-quality solution that conformed to client specifications.

Used Slack for team communications.

Programmed in Kotlin as the main code language for the Android application.

Implemented newer features in Kotlin and migrated some existing Java code to Kotlin.

Improved Android Keystore program to store cryptographic keys in a container and protect key material from unauthorized use.

Authenticated users via Fingerprint scan API and implementing the user interface for the fingerprint authentication flow.

Made app adaptable to new Android O for Notification channels and background limits for account Alerts and set notification preferences to keep tabs on your account activity.

Pair programmed to work on multiple feature/functions.

Ensured Room data persisted to was transparently encrypted and decrypted with standard AES-256 encryption.

Applied Android JetPack components such as Room, Lifecycle and LiveData.

Utilized two-way data binding to communicate between ViewModel and XML files.

Performed unit and system tests with JUnit, Mockito, and Espresso.

Utilized Cucumber for BDD (Behaviour Driven Development).

Applied Dagger 2 for dependency injection.

Configured Git server as the software version control tool.

Implemented Picture-in-Picture (PiP) functionality.

Coded Bluetooth BLE services to scan devices and communicate attributes between them using RxAndroidBLE library.

Used JIRA for tracking stories and the story progression through the Development, QA, and Acceptance Testing.

Pair programed to complete user stories like track subscriptions, spending analytics and connect all bank, credit card accounts using checkout SDK, Emma RESTful API and NDK.

Sr. Android Developer

Uphold

New York, NY April 2019 – Mar 2021

App Name: Uphold - Buy Bitcon, ETX and HRP

Link: https://play.google.com/store/apps/details?id=com.uphold.wallet&hl=en_CA&gl=US

Description: At Uphold we make it easy to buy stocks, ETF’s, you can also buy gold, other metals, and digital currencies. Our digital money app now features ‘Anything-to-Anything’ trading that means you can convert directly from any asset into any other - Netflix to Gold, for example - in one step.

Responsibilities:

Practiced Scrums as part of Agile project methodology.

Created and maintained an Android SDK for payments using Kotlin programming features like coroutines, higher order functions, delegate properties, smart cast in MVP architecture.

Programmed new using Kotlin as the programming language.

Refactored old features from Java to Kotlin as part of the organization goals to migrate to Kotlin.

Worked on Sessions API to authenticate online transactions with the EMV 3D Secure (3DS) protocol, allowing you to implement smarter 3DS authentication flows.

For challenge requests, secret key was used to encrypt the request details with A128CBC_HS256 method before being sent via OKHttp call.

Conducted frequent code review activities with the members of the development team using Collaborator tool and Gitflow process.

Participated in design and implementation for specific use cases that provided frameworks, interfaces, and services that could be extended and reused for other use cases or teams.

Handled REST calls, JSON parsing and construction, UI implementation from specifications and troubleshot HTTP traffic using Retrofit, OkHttp libraries.

Shipped production code to a large customer base, and took full ownership of work, including testing and deployments.

Authored and executed test plans for mobile solutions and configurations, built Unit test cases using JUnit, and implemented TDD and automated testing tools.

Refactored logic modules with a focus on Networking and Data Converters.

Helped backend team to finalize the request and response structure of the SDK.

Prepared technical documents about usage of the SDK using Confluence.

Android Developer

Saudi Telecom Company (STC), September 2014 - April 2019

Duration: Jan 2018 – Apr 2019

App Name: GigaFi

Client: Home Telecom

Link: https://play.google.com/store/apps/details?id=com.bluetonemedia.gigafi&gl=US

Description: The GigaFi app is here to make your life easier. Now, your video, security, phone, and audio can all be controlled in one place. You can even pay your bill and locate hot spots in the community, all from within the app.

Responsibilities:

Developed modules in Kotlin using MVVM app architecture for ease of maintainability and extensibility, as well as improved quality testing.

Programmed features/functions and modules in Kotlin.

Created Kotlin extension functions to make the code more readable and concise.

Worked closely with UI/UX designers and interacted with stakeholders, product managers and business units to gather requirements and ensure final product matched needs.

Coded Bluetooth BLE services to scan devices and communicate attributes between them using RxAndroidBLE library.

Participated in Agile meetings such as daily scrum standup meetings, biweekly gut checks, biweekly retrospectives, biweekly sprint planning and weekly Android backlog refinement meetings.

Used and sent tracking data from FusedLocationProvider to the server to track the device during deliveries.

Connected the app to Twitter, Instagram, and Facebook, by integrating their SDKs.

Contributed to the technical documentation to increase the maintainability.

Implemented Google Maps for location search with the Google Location APIs.

Using Retrofit2, OkHTTP networking libraries to retrieve information relating to status and deliveries.

Using an Offline-First model using Room Databases and migrate from SQLite implementation.

Applying Roboelectric, Mockito, and Espresso for testing.

Using reactive frameworks such as RxAndroid, RxBluetooth, and RxKotlin.

Created unit test for all the code I implemented using Mockk as a means of TDD.

Implemented Android UI test using Espresso and Mockito for critical functionality.

Utilized Relative, Linear, Constraint, and custom View Groups to layout views.

Utilized RecyclerViews to display item lists.

Interfaced with the payments REST API, extending the existing call to include the retrieved eligibility information to process the transaction and associated fee.

Duration: Jun 2016 – Dec 2017

App Name: MyTelecom

Client: Telecom Fiji

Link: https://play.google.com/store/apps/details?id=com.telecom.my&gl=US

Description: The My Telecom app can help you access and manage your Telecom account and services. Sign in with your Telecom account or create your account once you have downloaded the app.

Responsibilities:

Worked with SCRUM (Agile) methodology and attended Scrum meetings to track the app development progress and present updates.

Worked closely with the Android and iOS development teams for the web service API definition.

Worked with the UI/UX team to generate a new app layout with Holo themes.

Developed unit test cases to check the correct behavior of the app.

Enhanced the application for heavy web content display.

Programmed in Java using the Eclipse IDE and the Android Development Tool (ADT).

Use of services to run Java classes for the back work.

Created Compound and Custom UI components to improve the user experience.

Configured a Parse account to use as a Mobile Backend, setting up the database, code cloud, and services integration.

Used GSON instances to parse JSON files and load them into POJOs.

Implemented Loaders and AsyncTaskLoaders to implement the data loading in the User Interface.

Consumed the back-end services using a Retrofit instance built with an OkHttp client.

Implement NDK to embed C or C++ (“native code”), reuse existing libraries and build Java Native Interface (JNI).

Implemented Fragments to support multiple device sizes.

Integrated Crashlytics to analyze the behavior of the users.

Implemented services that ran in the background to handle HTTP calls with a multithreading approach (OkHTTP and GSON).

Implemented Sliding Menu library to provide a fluid swiping from left to right and right to left.

Tracked issues with Jira.

Utilized Git as source control management tool.

Used Picasso and RxJava to manage images on multiple threads for improved performance.

Duration: Sep 2014 – Jun 2016

App Name: Telecom App

Client: Geni Process

Link: https://play.google.com/store/apps/details?id=com.telecomapp.amrrashedy.myapplication&gl=US

Description: This application helps the novice communications engineer learn about the maintenance of Huawei, Ericsson and Siae devices. It helps solve many common problems on all these devices and builds this application on serial images.

Responsibilities:

GSON and Jackson converters and a custom interceptor.

Layout of user interface maintained efficiently through Fragments.

Managed the JIRA backlog and assisted with debugging and profiling Android Applications.

Worked closely with offshore team syncing every day to assure clear understanding of requirements given by onsite UI/UX team and DQA.

Used Butterknife to bind together Android views.

Followed up by testing user interface, errors with all possible inputs, debugging several applications using ADB.

Used multi-threading to implement parallel processing.

Consumed REST services using Retrofit, get the JSON data and parse it using GSON library.

Improved the performance on the UI by implementing fragments and implementing the RecyclerView.

Worked on the app and its functionalities like WIFI, Bluetooth, and cellular data for data transfer.

Assisted in designing the logical flow for the application for different components.

Worked on Android.mk files to build Source Code as part of build environment.

Used BlackBerry JME JDE to test software on the device.

Integrated third-party SDK and frameworks.

Used Loading Spinners while loading data.

Handled multithreads to receive and update calls from web server (Service and Broadcast Receiver).

Worked in an Agile environment delivering in short sprints.

Implemented local database using SQLite.

Integrated Google Analytics into the application using Firebase Android to track the usage of application, number of people, number of downloads, etc.

Pair programmed with senior developer to write TDD test cases around critical user stories using Mockito and Espresso.

Education

Syracuse University - Master of Science in Cybersecurity Engineering, Syracuse, NY

King Saud University - Bachelor of Science in Computer Science, Riyadh, Saudi Arabia



Contact this candidate