Essam Hadary
Lead Android Developer
Professional Summary
• 12+ years native Android application development using Java, Kotlin, Material Design, Eclipse, and Android Studio; 6 apps on the Play Store.
• Knowledge in 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).
• Successfully carried out the user interface by using Custom Views, List View, Relative Layout, Linear Layout, and Table Layout.
• Enriched the layout rendering by saving and optimizing the view hierarchy in all the resources.
• I am skilled in Android performance profiling, memory, and power management and optimizations.
• Apply Java patterns Singleton, Facade, Factory, Builder, Adapter.
• Leveraged a beautiful, cleaner interface, plus design changes using Android material design tools like CardView, Toolbar, RecyclerView, animation properties, and support libraries for this Android mobile app.
• Improved the performance and UX of several modules of the local Content management system.
• Experience in working 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).
• Brilliant 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.
• 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.
• Proficient in consumption of RESTful web services (REST, HTTP-based, XML, SOAP, JSON, etc.) & 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.
• 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 Languages: Java, Kotlin, Python, Swift, Dart, Rust, C, C++, ADA, SQL, GraphQL.
• Cross-Platform & Mobile Frameworks: Kotlin Multiplatform Mobile (KMM/KMP), Flutter, React Native.
• Android Development: Android SDK, Jetpack Compose, MVVM, MVI, Clean Architecture, Android Architecture Components, Hilt, Dagger, RoboGuice, WorkManager, LiveData, Kotlin Coroutines, Kotlin Flows, Paging 3, Room, ORMLite, Realm.
• UI/UX & Design: Material Design, Jetpack Compose UI, RecyclerView, ConstraintLayout, MotionLayout, CardView, Toolbar, Navigation Component, ViewBinding, DataBinding, Lottie Animations, ParallaxPager, Caligraphy, NineOldAndroids, RecyclerView Animator.
• Networking & APIs: Retrofit, OkHttp, Volley, GraphQL, REST, Firebase Realtime Database, Firestore, Google Maps & Places APIs, Google Custom Search, Google Home API, Chromecast SDK, ExoPlayer, YouTube API, PayPal, Stripe, Android Pay, Google Wallet, BLE, NFC.
• Security&Encryption: Cipher, SharedPreferences Encryption,Certificate,Pinning, TrustManager, Bouncy Castle, Spongy Castle, SQLCipher, KeyChain, Android Keystore System, Jetpack Security, Biometric Authentication, OAuth 2.0, JWT, ProGuard/R8, App Signing, Code Obfuscation, Runtime Integrity Checks, SHA, TLS 1.3, Secure Network Communication.
• Testing, Debugging & CI/CD: JUnit, Espresso, Mockito, Mockk, Robolectric, Robotium, Calabash, Jacoco, SonarQube, LeakCanary, Android Profiler, StrictMode, Systrace, AppDynamics, Firebase Crashlytics, Bitrise, CircleCI, Jenkins, Firebase Test Lab, Azure DevOps, Git, GitHub, GitLab, Bitbucket.
• Cloud & Backend Integration: Firebase, AWS (S3, Lambda), Google Cloud Platform, Microsoft Azure, Parse Server, Spring Framework.
• Background & Job Scheduling: WorkManager, JobScheduler, SyncAdapters, Firebase Cloud Messaging (FCM), Push Notifications, UrbanAirship, PushBots.
• Graphics, Media & ML: OpenGL ES, Vulkan API, Fresco, Glide, Picasso, Lottie, MediaPlayer, ExoPlayer, CameraX, ARCore, ML Kit, TensorFlow Lite, 3D Modeling, Systems Modeling, Simulation, Data Graphing.
• Connectivity & IoT: Bluetooth Low Energy (BLE), NFC, Wi-Fi Direct, MQTT, IoT Protocols, Google Nearby API.
• Analytics & Monitoring: Google Analytics, Localytics, Mixpanel, Flurry, Crashlytics.
• Dependency Injection & Event Handling: ButterKnife, Otto, EventBus, Android Annotations.
• Agile & Collaboration Tools: Agile, Scrum, JIRA, Confluence, Slack, Trello.
• Serialization & Data Handling: Retrofit, Gson, Jackson, Truth, Jasmine. Professional Experience
U.S. Bank, Minneapolis, MN April 2022 – Till Date
Lead Android Developer
• Implemented Android mobile app in Kotlin with Android Studio utilizing 3rd party frameworks and libraries.
• Programmed Kotlin expressions and higher order functions to reduce boilerplate code.
• Developed new features in Kotlin to reduce codebase with data classes and extension functions.
• Implemented Kotlin Coroutines for performing background asynchronous task operations.
• Implemented WorkManager for performing background persistent work operations.
• Use of Git and GitLab for source control and Jenkins for CI/CD.
• Developed the Android app using MVVM architecture pattern utilizing Singleton, Façade, and Decorator design patterns.
• Implementation of Android Architecture Components including LiveData, ViewModel, Lifecycle- Awareness, and RoomDB Storage
• Integrated communication with backend services / API’s (REST and GraphQL) using Retrofit, ApolloClient, and RxJava, parsing JSON objects with GSON.
• Part of Agile Scrum project management team.
• Maintained Android app quality in development through continuous integration process using GitLab and Jenkins.
• Used JIRA for documentation, task tracking, backlog management, and meeting preparation.
• Applied Dagger 2 as the library for dependency injection for readability and clean code.
• Implemented Broadcast Receiver logic to listen for events to trigger local database updates.
• Used reactive frameworks such as RxJava, RxAndroid, RxBluetooth, and RxKotlin.
• Worked with Android notifications to alert users of important updates.
• Collaborated with the web application development team to ensure consistent feature implementation between Android mobile application and web application.
• Contributed to cross-functional engineering teams (back-end development, front-end development, UI/UX designers, QA, Product Management).
• Lead two teams consisting of seventeen offshore developers.
• Conducted frequent code review activities with the members of the development team.
• Performed branch merging using Android Studio IDE and GitLab
• Worked with Platform Team to have feature branches approved and merged into monthly release branches.
• Lead requirement gathering sessions writing high-level design for the Android application, and creating associated user stories.
• Active part of software development lifecycle (SDLC) from product definition through design, development, testing, and maintenance.
• Coordinated with testing team during the testing phase to correct issues of Android app performance and user experience.
• Lead daily agile stand-ups and documented daily development activities
• Worked with remote team members with work schedules within different time zones.
• Experience working with on-site and off-site teams and management.
• Creation of technical documentation to assist in communication with team members.
• Implemented features for A11Y compliance.
• Used Room Persistence Library to implement SQLite database.
• Facilitated communication and understanding between offshore engineers and onshore product management and design teams.
• Implementation of features in multiple languages (English / Spanish)
• Implemented new features and enhancements to pre-existing features using company standards and best practices.
• Wrote instrumentation tests and UI tests using Espresso. Fanatics, Inc., Jacksonville, FL Dec 2018 – March 2022 Senior Mobile Android Developer
• Implemented Android mobile app in Java, and Kotlin, with Android Studio utilizing 3rd party frameworks and libraries.
• Use of Git for source control and Jenkins to assist in integration.
• Developed the Android app using MVVM architecture pattern utilizing Singleton, Façade, and Decorator design patterns.
• Performed Automated testing with Espresso
• Consumed Web Services using a Retrofit instance with a built-in GSON converter to parse JSON objects using Google GSON
• Implemented Kotlin Coroutines for performing background asynchronous task operations.
• Implemented WorkManager for performing background persistent work operations.
• Used Android Studio as the IDE for development of the Android mobile app in Java using MVVM software architecture and Jetpack components,
• Developed new features in Kotlin to reduce codebase with data classes and extension functions.
• Implemented dependency injection using Dagger-2
• Implemented Android Support Libraries for backward compatibility.
• Used Firebase Cloud Firestore and Firebase Cloud Functions beta.
• Enabled notifications with Google Cloud Messaging.
• Part of Agile Scrum project management.
• Participated in daily stand-ups and sprint meetings.
• Use of Test-Driven Development and Continuous Integration with Firebase Test Lab.
• Use of Firebase Performance Monitoring to monitor app performance.
• Implemented Firebase real-time database for storage and persistence during sync events.
• Managed user image uploads and gallery using Glide.
• Maintained Android app quality in development through continuous integration process using GitLab.
• Use Jira for documentation, task tracking, backlog management, and meeting preparation.
• Used custom views for reuse of UI components built to UI/UX design specifications.
• Applied Dagger 2 as the library for dependency injection for readability and clean code.
• Implemented new screens with Constraint layouts.
• Involved in Cipher encryption secured data process as it was being passed to the server, staying in compliance with security standards.
• Collaborated with the web application development team to ensure proper integration between Android mobile application and web application.
• Work on Starva Bluetooth BLE SDK to design module to pair with Bluetooth devices and transmit large bytes of attributes.
PetSmart, Phoenix, AZ Feb 2017 – Nov 2018
Senior Android Engineer
• Developed the Android app in Android Studio.
• Contribute value to cross-functional engineering teams (back-end development, front-end development, UI/UX designers, QA, Product Management, etc.).
• Lead team of four developers and one graphic designer.
• Conduct frequent code review activities with the members of the development team.
• Enhance the UI/UX with well-designed UI/UX and custom views and compound views. Also, collaborated with designers on the Android look and feel.
• Construct prototypes of the User Interface integrating modern Material Design guidelines.
• Used RxJava and Retrofit to manage communication on multiple threads.
• Lead requirement gathering sessions writing high-level design for the Android application.
• Manage authorizations with backend services using certificate pinning.
• Configured Git repositories in private GitHub for the Android development team.
• Created a successful proof of concept (POC) with a secure SSL layer to authenticate users and refresh login tokens.
• Configured continuous integration process with a Jenkins instance hosted on a private server.
• Active part of software development lifecycle (SDLC) from product definition through design, development, testing, and maintenance.
• Documented Android project details and quality testing.
• Coordinated with testing team during the testing phase to cure issues of Android app performance and user experience (UX).
• Created small testing suites with JUnit and the Android Studio IDE capabilities.
• Partake in Agile daily stand-ups.
• Established communication with back-end server to consume Restful API using core Android classes.
• Implemented the use of handlers and threads on numerous tasks to improve Android application performance.
Anytime Fitness, Woodbury, MN July 2015 – Jan 2017 Senior Android Developer
• Built Android app using MVVM architecture with a ViewModel within each Activity and Fragment, creating multiple, individual ViewModels.
• Used Dagger, Retrofit, Robolectric, Picasso and other third-party libraries.
• Use of Java and Kotlin languages in application development.
• Worked with remote team members with work schedules within different time zones.
• Participated in Agile methodology with sprints held every 2 weeks.
• Member of Android team of 3 to 5 developers.
• Followed a modified form of material design guidelines set by internal standards
• Implemented Android Architecture Components to improve the user experience, including LiveData, ViewModel, and Room Persistence Library with SQLite database to cache the Android app data.
• Customized the UI by introducing custom views.
• Assisted with the user’s bag, product catalog, promotions and the user’s info such as address, email address, phone number and payments with WorldPay.
• Participated in Sprint backlog, Sprint Grooming, Sprint Planning, Sprint Retrospective with Daily Standups using Slack.
• Used Workfront for task tracking and migrated task management to Jira.
• Participated in Android team learning sessions to keep team up-to-date on the latest changes in Android technology and to discuss app benefits.
• Use of Dagger 2 for Dependency Injection of single instances of services for View Models.
• Used Robolectric for creation of unit tests with lifecycle awareness.
• Used Jenkins for Continuous Integration.
• Used Room Persistence Library to implement SQLite database.
• Worked with different teams (server side, application side) to meet client requirements.
• Implemented Google Cloud Messaging for customer alerts. Pepsi, Purchase, Harrison, NY Nov 2012 – June 2015 Android Developer
• Experience developing efficient Java code and view layouts with the ability to diagnose performance bottlenecks.
• Development using Java, Eclipse, and Android Development Tools.
• Worked with Android notifications to send reminders to the User Interface.
• Implemented user login screens and designed context menus based on Android Menu Navigation, Tabbed Navigation control, and Action Bar Control.
• Worked with a database management system using native Android API and server-side MS SQL server database.
• Responsible for developing the Android UI layouts (Linear Layout, Relative Layout).
• Implemented the Singleton Object class for managing 3rd party API to access information in various modules of the Android application.
• Implemented two versions of a unique UI. Created prototypes for different UI elements.
• Introduced an optimal caching mechanism into SQLite to avoid unnecessary queries.
• Involved in writing application logic in Android Studio.
• Integrated communication with backend services using Retrofit and RxJava, parsing JSON objects with GSON.
• Worked with Custom Frameworks and Custom Templates.
• Implemented the Frame Layout method to show background images.
• Individual implementation of Google Maps and Location services.
• Worked on the SQLite database to minimize the size of the Android application and increase performance.
• Used Android XML in the design and development of user interfaces. Education
•
MS Computer Science
University of Texas, Texas