Post Job Free

Resume

Sign in

Senior Android Developer

Location:
Charlotte, NC
Posted:
February 17, 2023

Contact this candidate

Resume:

Luis Viruena

Senior Android Developer

Phone: 973-***-****

Email: advd83@r.postjobfree.com

Technical Skills

Languages

Java, Java EE, ASP, .NET, C#, C++, SQL, HTML, JavaScript, Python

Database

Firebase, SQLite, DB2, Oracle, SQL, MySQL

Development Environment

Git, GitHub, SVN, Jenkins, JIRA, Maven, Gradle, LeakCanary

Design Patterns

MVC, MVP, MVVM

Android Development

Android OS, Dependency Injection, GcmNetworkManager, Push Notifications, JUnit, Retrofit, EventBus, Otto, SSL, Mixpanel, Mockito, Material Dialogs, Google Places, AsyncTask, Glide, ProGuard, Bluetooth Low Energy, ButterKnife, Services, Google Analytics, Volley, RecyclerView Animator, Spork, Libphonenumber, XmlPullParser, GSON, CoordinatorLayout, Multi-Window, GitHub, SOAP, Volley, JobScheduler, Content Providers, Parceler, SQLCipher, ZXing, Cipher, Maven, Dagger, MVC, RxJava, Facebook SDK, Google Custom Search, Gradle, Kotlin, FloatingActionButton, Jackson, Google Cloud Messaging, Picasso,, Material Design, Android-Job, ORMLite, Logger, Handlers, Android Studio, Doze Mode, VideoView, Espresso, Parse, Animations, Loaders, Fresco

Project Management & Leadership

Agile Scrum

Scrum Master, Team Lead, Mentor

Project Planning

Managing dependencies, requirements, stakeholders, external teams, and project tasks, deliverables, and timetables.

Years of Experience

20+ years of experience in the IT field, in software development and engineering

2 Years of experience in Kotlin

8+ years of experience in Android

6 published apps in the Google Play Store

Professional Summary

Continuously research, test, and implement new techniques, frameworks, and utilities, and apply to Android development.

Strive to improve and learn on each project and stay current with changing trends and developments in the technology.

Experience using GIT/GitHub for Source Control.

Experience with Android SDK versions 5 and above.

Good knowledge OS fundamentals with the ability to apply it in the context of modern operating systems (Linux, OS X, Windows Server 2008/2012).

Strong understanding of Android framework, best practices, and design patterns.

Ability to contribute to design, architecture, and technical strategy.

Experience with Android performance tuning and crash reporting applications.

Experience with web related technologies, including JavaScript, HTML 4/5, AJAX, JSON, XML.

A firm understanding of building mobile applications that utilize web services (REST, HTTP-based, XML, SOAP, JSON or other services).

Ability to ask the right questions, provide feedback to stakeholders, break down tasks, and create a plan to achieve the intended result.

Able to optimize the technical architecture and technical debt of the Android app.

Created logins, embedded tweets using the Twitter API.

Passionate about best Android design and general UI/UX best practices.

In Android skilled with implementing fragments, diverse layouts, animations, Material Design, Compound Views and Custom Views.

Strong knowledge in Android multithreading frameworks: AsyncTaks, IntentServices, Handlers, Threads, Runnables, Loopers.

Principles, handlers and Java threading to match the provided specifications and needs of the Android project.

Applies Google’s best practices targeted to mobile environments: use of networking, memory management, battery status, responsive and intuitive design, managing multiple screen sizes, identifying app installations, internationalization.

Pro-active fast learner, self-motivated, proficient in programming logic and easily adaptable to new technologies.

Managed the implementation of dependency injection in Android with Dagger to sped up the unit testing process.

Performed Espresso, JUnit, Mockito and simulated design patterns in Android to test and develop applications.

Designed the schema for and deployed SQL and MySQL servers.

Self-motivated, always enjoying a good challenge and thriving under pressure.

Created the initial setup of multiple continuous integration servers to help the build creation process (Travis, Jenkins, Circle-CI).

Use of multiple MBaaS (Mobile Backend as a service) and cloud integration tools like Parse, Firebase, Google Cloud Services, Amazon Web Services.

Able to architect the creation and the consumption of Web Services targeted to be used by millions in Android.

Participated in all phases of the Android development life cycle (Planning, Analysis, Design, Develop, Documentation, Test, Deployment, Hypercare)

Exceptional communication, project management, and organizational skills with the ability to build positive relationships with boards and stakeholders, senior executives, all levels of staff, and clients.

Professional Experience

TIAA

Sr Android App Developer

TIAA Bank, Jackson, FL

Since September 2022 – Present

Manage your retirement, banking, and brokerage accounts using the TIAA mobile app. The app provides quick and secure access to all your TIAA finances and puts 100 years of top money management into the palm of your hand.

Performed technical build work within a MVVM architectural model.

Utilized Jetpack Paging library to load data incrementally, cache data with Kotlin, CoroutineScope and create custom PagingData, RemoteMediator and PagingDataAdapter.

Applied Kotlin extension functions to efficiently re-use existing codes and reduce code duplication to its bare minimum.

Applied elements of Kotlin Flow such as coroutines to interact with the database and networking operations in repository layer in Clean Code architecture.

Refactored RxJava implementation code with CoroutinesScopes and WorkManager API to async operations like network requests, database calls and pdf downloads

Integrated OpenCensus library to collect application metrics and distributed traces, then transferred the data to backend database

Replaced Dagger2 with Kotlin Koin dependency injection to inject dependencies into modules and sub-modules, provided a factory bean definition and resolved a component dependency

Implemented Android Architecture lifecycle aware components and used LiveData to build data objects that notified views when the underlying database changed.

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 implement the user interface for the fingerprint authentication flow.

Handled code sessions and inactivity management through internal timers and automatic logout.

Included Voice Access accessibility service to allow users with mobility limitations to control a device with spoken commands and Talkback reader for visually impaired or blind users.

Added security by encrypting static and dynamic keys and sensitive application data with white-box cryptography using Arxan Key and Data Protection SDK.

Added a GraphQL API that's backed by AWS AppSync and user authentication mechanism through Amazon Cognito.

Integrated Firebase push notification and user-level push notification and notification channels settings.

Integrated third-party security library for user login authentication via PIN and biometric prompt API.

Developed new Kotlin modules and migrated existing code into Kotlin.

Modified secure transferring of money between accounts and accounts at other banks.

Prudential Financial

Lead Sr Android Developer

Prudential Financial, Inc. Newark, NJ

October 2019 – August 2022

The Mobile Prudential App is a large financial application. Due to the changing nature of finance – formulas, conditions, values, rates, can change overtime, the app is flexible, allowing a vast remote configuration. Yet is easy to use with a simple UX design.

Refactor previous code from MVP to MVVM architecture design pattern and used Kotlin in the refactoring.

Wrote a series Unit Tests to achieve 85% of code coverage.

Re-wrote Unit Tests to use Flavors to apply mock classes, in absence of Dependency Injection.

New features written following Test Driven Development (TDD).

Write architectural documentation using Javadoc and creating UML diagrams.

Fixed and implemented features to enable ADA compliant Accessibility requirements (ADA).

Implemented mocked API endpoints while backend team finished the productive Web Services.

Use of Mockito for Unit Test and Espresso for Instrumentation Testing.

Conducted code reviews for features implemented by others.

Participate in Scrum sessions: Standups, Grooming, Post sprint.

Used Jira to keep track of tasks, requirements and completion.

Part of large team conformed of 6 Android, 6 iOS, 4 Backend, 5 QA and PM.

Collaborated with UI/UX team to enable UX driven by XML and Data Binding.

Debugging and fixed some of the Technical Debt in legacy code.

Used the platform support and enhanced the Cache Database

Created a Custom View to dynamically change icon colors

Dynamic programming with remote configuration.

Enable functionality that allows the application to be updated remotely using dynamic programming.

Implemented Functional programming available as of Java 8.0

Volley was used as the application’s HTTP Client.

Used Git for version control.

Technologies: MVVM, ViewModel, LiveData, Data Binding, Kotlin, Domain Driven Development, Fragments, Accessibility, Mockito, Glide, Crashlithics, Room database. RecyclerView, Styles, CustomViews, Firebase messaging, Material Design, API Mock

Magic Leap

www.magicleap.com

Magic Leap Plantation, FL

June 2018 – October 2019

The MCA is a mobile app that complements the MagicLeap headset. The app acts as a controller, a media gallery, a quick start guide a user registration platform and a streaming video client allowing a second person to view what the user sees through the headset.

Implement xml screen layouts

Implement frontend functionality

Implement mobile backend functionality

Use of TDD (Test Driven Development)

Write unit tests and instrumentation tests using Kotlin

Bug fixes

Participate in bug bashes

UX improvement

Develop POC (proof of concept) for future functionality

Feedback to QA (Quality Assurance)

Launch and Deliver builds for QA when a milestone is met

Browse JIRA for urgent issues

Write test cases as a first stage to development

Ownership of development of functional units

Feedback to UX (User Experience)

Write analytics on key functions of the system

Monitor the Crashlytics reports on field failures

Analyze analytics reports to discover root cause of errors

Participate in inter-team meetings

Review architecture documentation and provide feedback

Learn new technologies to assess possible future routes

Participate in Code Reviews as a reviewer and as a coder

Promote and provide team project understanding and training

Small team: two Android developers, two iOS developers and one Lead

Contributions: Introduce WorkManager for asynchronous remote data transfers. POC for to stream to Twitch. Implement all the accessibility for the app. Implement Quick Start Guide. POC to use Codex for RTMP.

Technologies: Activities, Fragments, ContraintLayout, PageViews, RecyclerView with GridLayout, CustomViews, Glide, OkHtttp, Kotlin PdfRenderer, Sensors, Accessibility, Jetpack ViewModel, Jetpack Room ORM, RTMP and RTSP and Video Streaming, OAuth 2 authentication, Java 8, lambda expressions.

Wells Fargo Mobile

Lead Sr Android Developer

Wells Fargo San Francisco, CA

April 2017 – December 2017

The new Wells Fargo mobile has more feature than just banking and account access. This app is rich in personal financial management features. This is a unique mobile app, which does not integrate with website.

Used RESTful to communicate with web services and replaced old

Developed the app in Android Studio as a native app with programmatic Java coding.

Used RxJava for improved performance and efficient multithreading.

Used Dagger 2 for dependency injection.

Configured Retrofit to handle asynchronous network calls to back-end and parsed JSON objects with GSON.

Implemented Fragments to manage long chains of screens with ease and efficiency for optimal UI/UX and performance with reusable Java code.

Used proprietary fragment management with Android APIs for managing the back-stack.

Implemented an EventBus type of strategy to communicate in between Activities and Fragments based on RxJava.

Assisted in communication and in localization of multi-language capabilities with communication support and translation of English and Spanish.

Used Espresso for automated testing as well as Unit Tests in Junit and Mockito, supporting a test-driven development methodology.

The Android app serves as the prototype for future iOS mobile app development.

Project management was based on a mixture of Agile Scrum and Waterfall. The overall processes used were Agile Scrum, with daily scrums and 4 weeks sprints; each Sprint structured as short-term Waterfall project.

Considerable involvement with designers in deriving wireframes and specification and working with developers to translate the designers vision accurately.

Technologies Used: Android Studio, Expresso, RxJava V1, Dagger-2, Retrofit, JSON.

Solitaire Collection

Senior Android Mobile App Developer

Arkadium for Microsoft Corp. Redmond, WA

January 2016 – March 2017

Used RESTful to communicate with web services and replaced old third-party libraries with more modern and attractive ones.

Collaborated with external teams on modification and improvements to the Android app.

Development of quality code using cutting-edge techniques, tools, and utilities for Android.

Provided Android app to support for Android permissions.

Used RxJava for all web service requests to the Android app.

Actively worked with the back-end team to improve the RESTful API to include new features for the Android app.

Helped transition the Android app from MVC to MVP, to achieve a complete separation of concerns, better code reuse, simpler code reuse and a higher percentage of unit tests.

Contributed to the Android project product documentation.

Applied of Design Patterns and use of design tools such as Android Studio.

Performed regular Android team code reviews to ensure overall code quality and adherence to company coding standards and industry best practices.

Use of SQLite database schema to persistent data storage for every schedule

Implemented ACRA API to handle error reporting for the app.

Participated on the RESTful API definitions for the app.

HSBC Mobile Banking

Android Developer

HSBC New York, NY

January 2015 – December 2015

Implemented a WebView to render HTML content from various websites to the Android application interface view.

Performed code reviews to ensure compliance with coding standards and proper use of OOP concepts in development of the Android app.

Guided the Android testing team in creating small testing suites with JUnit and the Eclipse IDE capabilities.

Configured private GitHub as a code repository for the Android development team.

Experience with embedded local storage solutions such as SQLite in Android.

Experience interacting with RESTful API and data formats like (JSON, XML, etc.).

Added Selectors and Animation effects on Android UI/UX elements to create a dynamic user experience (UX)

Used continuous integration tools like Jenkins or Travis CI and automated testing frameworks such as Espresso.

Scheduled daily SCRUM meeting and documented tasks for follow-up with Android team members.

Kept Android team on deadline on each Sprint.

Improved handling of HTTP requests.

Utilized Android and third-party frameworks to use the multithreading capabilities of the physical devices: AsyncTasks, IntentServices, Handlers, Threads, RXJava instances.

Made use of Activities and Activities for Result and the RecyclerView to get a better performance of the Android application.

Implemented some animation and transitions from activities to improve User Experience (UX).

Implemented material design features such as Recycler Views and Card Views.

Participated on the data modeling upgrade on the device side and the server side.

Worked with both on-site and off-site teams and management.

Helped team members to translate designs and wireframes into high-quality views and code.

Scotiabank Mobile Banking

Android Mobile App Developer

Scotiabank New Orleans, LA

April 2013 – December 2014

Worked with GSON and Jackson library to parse JSON files on the Android project.

Managed code review sessions to always have high quality (reusable, simple, documented) code.

Supervised development of the Android app by the team and lead requirements definition, design, and reviews of the Android team.

Included Retrofit to make asynchronous HTTP requests.

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

Responsible for the requirement gathering for the Android application.

Mentored five junior programmers familiarizing them with our App structure and code.

Added services and AsyncTasks to download PDF files without freezing the UI.

Used the Dalvik Debug Monitor Server (DDMS) for debugging and testing.

Experience with Android SDK versions 5 and above.

Created Widgets to help customers manage the launcher in the Android app.

Ensure backward compatibility by using Android support libraries.

Implemented messaging with Android Push Notifications and GCM (Google Cloud Messaging).

Guided team in implementation of Android design patterns (MVC, MVP, MVVM).

Gathered requirements and generated detailed technical documentation.

Used Crashlytics to track user behavior and obtain mobile analytics.

Responsible for the design, development, testing and publishing of the Android application.

Add Universal Image Loader to Improved Image loading and Android performance.

Implemented the SquareUP API for processing online payments.

Solid understanding of Android app development life cycle including Google Play and Amazon App Store compliance policies and submissions requirements.

Worked with RoboGuice for dependency injection to develop clean, maintainable code.

Utilized strong understanding of Android framework, best practices, and design patterns.

Lync/Skype for Business Android

Android Developer

Microsoft Corp. Redmond, WA

September 2012 – March 2013

Use of Explicit and Implicit Intents in Android.

Used Parcelable to serialize Java objects from Activity to Activity.

Communication with external Restful API with the backend server using core Android classes

Attended the meetings to learn more about business and requirements.

Effectively communicate coding solutions and articulate the reasons for decisions.

Incorporated Hockey App to distribute beta versions, collect live crash reports, get feedback from real users and analyze test coverage.

Used JSON/GSON to exchange data from Restful Web Services.

Enhanced the user experience by validating first the network state before calling a web service.

Designed custom views and use icons extensively for the layouts improving the Android app user Interface.

Used Loopj for asynchronous callbacks together with the Loading Everywhere library.

Cultivated an environment of excellence, through code design and code reviews.

Used Parcel for sending notifications in Android about changes and alerts.

Handled Fragment data retention to ensure data integrity in Android on-screen rotation with the onSaveInstanceState and onRestoreInstanceState methods.

Participated in Android project requirement gathering process and understanding of user specifics.

Partnered with cross-functional teams to define new product requirements, features, and functionality in the Android app.

Parsed JSON files, objects, and arrays using a third-party converter included in the Retrofit documentation.

Ability to manage competing priorities in a complex environment and maintain high productivity.

Wrote automated tests (TDD & BDD) with RSpec and Cucumber.

Setup proper interactions of the front-end design and implementation with backend servers.

Fidelity App

Android Developer

Fidelity Bank New Orleans, LA

April 2012 - August 2012

Parsed JSON files to obtain data returned from web services.

Widely applied Android design patterns such as MVC, MVP, MVVM, Observer, and Singleton.

Used Eclipse as the primary IDE since it includes all the tools needed to develop, test and deploy the Android application.

Use of GIT for the source control management on the Android project. Configured a GitHub for the Android project team.

Enhanced the UI/UX with expertise of well-designed UX/UI and by adding custom views and compound views. Also collaborated with designers on the Android look and feel.

Used JIRA as the issue tracking tool on this Android app project.

Employed unit-test code for robustness, including edge cases, usability on the app project.

Collaborated with web design and development team to develop an Android app that interacts smoothly with web content and web services.

Used YouTube Android Player API to incorporate videos into the Android app.

Conducted a team of six developers and one graphic designer.

Interacted closely with the mobile app Product manager.

Consumed the RESTful Web Services using HttpURLConnection.

Software Engineer

Microsoft Corp. Redmond, WA

April 2009 – April 2012

On this three-year-contract I worked on compartmentalized back end development of .net and VB, and C++ coding going into various Microsoft Office updates.

Designed file synchronization tool, Windows Explorer namespace shell extension and API for a cloud data storage service from scratch.

Performed refactoring of PowerPoint to HTML document converter generalizing and optimizing code and using standard and 3rd party libraries where possible.

Decreased size of codebase by refactoring to cleaning up code, replacing outdated usage with more efficient code tools.

Increased database response time by 70% by implementing changes to call structure for better code.

Reverse engineered OLE object storage format to implement picture BLOB conversion from MS Access database)

Software Engineer

Various Contracts

1989 – April 2009

Worked on various contracts in the US and Mexico, honing my skills in software engineering and development, database design and development, and keeping up-to-date with new technologies and development in the field, leading projects and mentoring junior developers.

Contributed to an open climate with continuous feedback from Product Owners, team and users to secure high quality in ways of working as well as quality of deliverables.

Designed a PostgreSQL database with multiple entities and several relationships.

Implemented multiple algorithm optimizations to fasten up the developing process.

Tested with Junit and the mock design pattern

Developed application in Java and C# maintaining both code-bases separately.

Education

Degree in Computer Sciences Engineering

Universidad Autónoma Metropolitana

Mexico

Master of Business Administration: Economics

Universidad Anáhuac

Mexico

Project Management Course and Certification

Instituto Tecnologico Autonomo de Mexico (ITAM)

https://play.google.com/store/apps/details?id=com.mobile.tiaa.cref&hl=en_CA&gl=US

https://play.google.com/store/apps/details?id=com.prudential.android.RetirementParticipant

https://play.google.com/store/apps/details?id=com.wf.wellsfargomobile&hl=en

https://play.google.com/store/apps/details?id=com.microsoft.microsoftsolitairecollection

https://play.google.com/store/apps/details?id=com.htsu.hsbcpersonalbanking

https://play.google.com/store/apps/details?id=com.scotiabank.mobile

https://play.google.com/store/apps/details?id=com.microsoft.office.lync15

https://play.google.com/store/apps/details?id=com.ifs.banking.fiid4450



Contact this candidate