- Android App development using Java and Android SDK compatible across multiple Android versions; proficient in Android Studio and Eclipse, core Android and third - party frameworks.
- Efficient and accurate requirement gathering, working with stakeholders.
- A sound understanding of HTTP and REST-style web services.
- Strong understanding of server-side software, scalability, performance, and reliability. Created robust automated test suites and deployment scripts.
- Considerable experience debugging and profiling Android applications.
- Sound knowledge of relational databases (Oracle, MS SQL Server, MySQL, PostgreSQL, etc.).
- Hands-on development experience in the full software development cycle from start to finish.
- Experience with versioning (Subversion SVN, Source Safe VSS, GIT, GitHub).
- Optimization and performance enhancement expertise (battery, CPU, Memory leaks).
- Proficient in Agile/Scrum methodologies, working with multiple-sized teams from 3 to 10 members often with role of SCRUM master, and mentor to junior developers.
- Implemented customized HTTP clients to consume a web resource with frameworks such as Retrofit, Volley, OkHTTP and the native HttpURLConnection.
- Implemented Dependency Injection frameworks to optimize the unit testing and mocking processes (Dagger, Butter Knife, RoboGuice).
- Experienced with third-party APIs and web services like Volley, Picasso, Facebook, Twitter, YouTube Player and Surface View.
Programming Languages: Java, C++, MySQL
Back-End Integration: REST, JSON SOAP, XML, AJAX
Architecture/Design: MVC, MVP, MVVM, Builder, Abstract Factory, Façade, Dependency Injection, Observer, etc.
Project Tools: Basecamp, Slack Confluence, JIRA
Database: SQL Server, MySQL SQLite, Realm, MongoDB
Android Frameworks: Java Development Kit (JDK), Android SDK, Fabric, Firebase, Reactive-X
Threading: AsyncTask, Intent Services, Handler & Handler Threads, Loopers and Loaders
Hybrid Development: PhoneGap, Corona Labs, Ionic, React Native
IDE: Android Studio, Eclipse, Virtual Studio
Optimization: LeakCanary, Icepick, ART Dalvik, Memory Mapping
Testing: Test Fairy, Crashlytics, Logs, QXDM, QPST, QMITestPro, QMICM, CrashScope
Miscellaneous: Flurry, Robolectric, Dependency Injection, RecyclerViews, GSON, JUnit, Espresso, Robotium, MVVM, MVP, Chromecast, Retrofit, Ionic, Dagger, greenDAO, Gradle, GCMNetworkManager, Google Cloud Messaging, ConstraintLayout, Volley, Location Services, Glide, Firebase, Schematic, Bluetooth Low Energy, RxJava, Google Maps API, VidEffects, Material Design, ExoPlayer, Google Analytics, RoboGuice, JobScheduler, Git, Samsung SDK, IcePick, Leak Canary
Confidential, Sunnyvale, CA
Senior Android Engineer & Architect
- Worked in Android Studio to develop, review and debug code.
- Contributed to architectural changes to improve user experience using various design patterns.
- Conducted frequent code review activities with the members of the development team
- Implemented WheelView for easy stats tracking.
- Created compound and custom UI components to improve the user experience.
- Experience with Android performance tuning and crash reporting applications.
- Created custom animation to improve the user experience following material design principles.
- Resolved issues, fixed bugs and optimized the application.
- Implemented LeakCanary to detect memory leaks in early debugging and production builds.
- Ensured quality through code design, code reviews.
- Assisted team members by sharing information, participating in code reviews and mentoring on frameworks, technologies and best practices.
- Introduced Parcelables for object transfers within activities.
- Worked as part of a team of three Java developers, UI/UX designer, and two back-end developers.
- Refactored code to optimize use of resources.
- Parsed JSON files, objects, and arrays using GSON converter along with Retrofit.
- Implemented multithreaded programming to handle long running operations.
- Used JIRA for new requirements, issues, bug tracking, and project planning.
- Integrated dependency injection with Dagger 2 and Butter Knife.
- Used Retrofit to facilitate data communication over network requests.
- Developed applications following an Agile/Scrum process with Scrum stand-up meetings and weekly sprints.
- Participated in the full lifecycle development process preparing app updates for approval and deployment in the Play store.
- Implemented a Navigation Drawer for quick access to different activities and a better User Experience (UX).
Technologies: Android Studio, WheelView, Parcelables, Agile/Scrum, Navigation Drawer, JIRA, Retrofit, Butter Knife, Dagger, UI/UX, Leak Canary.
Confidential, New York, NY
Senior Android Mobile Architect/Engineer
- Worked with the Mobile Product Management team to define the new product features.
- Rewired the app to handle the new Android 6 Marshmallow permissions model.
- Reskinned the entire app implementing the Material Design specification.
- Integrated multimedia material and live streaming video, decoding, and playback.
- Handled web services calls for information and content data retrieval with Retrofit.
- Added a user configuration setting to persist and switch the network usage.
- Improved the bit rate over network changes with the Connectivity Manager.
- Added support for Chromecast for sending video and music to the TV.
- Improved the Video browser and audio player performance multithreading.
- Improved the Playlist manager by replacing the old ListViews by RecyclerView.
- Conducted project plan reviews and resolved conflicts between times and tasks.
- Implemented support for Android Wear as media remote control for the app.
- Organized developers and assigned milestones and track project development.
- Built the application to support multiple screen sizes, phones, tablets and TV Sticks.
- Ensured backward compatibility with the latest compatibility libraries available.
- Incorporated push notification with Mixpanel for sending messages to the users.
- Used Jira for defect tracking and, project planning, and task assignment.
- Worked with Dagger 2 for dependency injection to develop clean, maintainable code.
- Participated on the set-up procedure for the Hudson server for continuous integration.
- Integrated Localytics for app statistics and mobile analytics.
Technologies: Android Studio, Android Wear, Localytics, Dagger, JSON, GSON, Marshmallow Permissions, Material Design, Fragments, Glide, Compound and Custom Views, Animations, SQLite, Retrofit, Dagger 2, Robolectric, Mixpanel, Git, Hudson.
Confidential, San Francisco, CA
Android Mobile Engineer
- Used Android Studio for development environment.
- Used Spongy Castle to encrypt sensible data.
- Used Loopj for asynchronous callbacks together with the Loading Everywhere library.
- Developed custom and compound views to match UI/UX specifications.
- Used multiple ORMs like ORMLite and greenDAO to set up databases and cache information to be used in no-network environments.
- Use of SQLite database schema and Keychain to secure login and persist account information.
- Implemented List View using the View Holder pattern to improve the performance.
- Optimized the application with Java concurrency, memory management.
- Configured Retrofit to handle HTTP requests in the application.
- Modified the navigation and replaced activities with Fragments.
- Generated documentation for detail design including wireframing using Mockito.
- Created innovative solutions in media streaming and mobile user experience.
- Introduced Push Notifications through Urban Airship.
- Extensive use of support libraries to ensure backward compatibility with older Android versions.
- Used MapKit and LocationKit for store and aisle finder functions.
- Worked with continuous integration using Jenkins and Git.
- Performed automated testing with Espresso.
- Mentored junior developer on best practices for coding.
- Created custom views to present data as it was needed.
- Designed tweaks to the look and feel using Model design.
- Integrated Java Guava Libraries for string processing, concurrency libraries, I/O functions.
- Used GitHub private repositories with standard Workflows as a Version Control Software.
Technologies: Retrofit, Spongy Castle, MapKit, LocationKit, Java Guava, Git, GitHub, Jenkins, Urban Airship, Mockito, Loopj, Loading Everywhere, ORM, ORMLite, Fragments, greenDAO, HTTP requests, Retrofit, Espresso, Jenkins, Push Notifications, Mockito, Android Support Libraries.
Confidential, New York, NY
Android Mobile Developer
- Ensure software created and released conforms to quality requirements by accurately writing and executing test plans.
- Transitioned the code base form Eclipse to Android Studio for development environment.
- Used Bluetooth low energy and Leak Canary to solve mobile networking performance issues.
- Implemented a Navigation Drawer for quick access to different activities and a better User Experience.
- Created custom animation to improve the user experience following the material design principles.
- Added value encryption in SharedPreferences using AES 128 with the Secure-preferences Library.
- Created instances of SyncAdapter, Content Providers, and Loaders to update the User Interface on every data change on the server side.
- Actively participated in choosing the technologies to use.
- Implementation of different user interface components such as ListView, WebView, ImageView, TextView to display the data for the application.
- Used Android Device Monitor for monitoring CPU load, heap size, and memory usage.
- Used Parcelable to serialize Java objects from Activity to Activity.
- Handled Fragment data retention to ensure data integrity on screen rotation with the onSaveInstanceState and onRestoreInstanceState methods.
- Experience with Android SDK versions 5 and above.
- Used the color palette support to extract different resources in different contexts.
- Consumed web services to display user history on the user interface.
- Tested the latest changes, correct the bugs using debugging.
- Used an SQLite database to generate local caching service and faster rendering.
- Connected the app to Twitter, Instagram, and Facebook.
- Used JSON in RESTful services to extend the application response capabilities
- Monitored and participated in workflow tracking (Jira) and documentation (Confluence) so that these scalable industrialized processes facilitate business growth.
- Effectively communicate coding solutions and articulate the reasons for your decisions.
Confidential, El Segundo, CA
Android Mobile Application Developer
- Effectively used Activities, Services, Broadcast Receivers, SQLite, and preferences Android components.
- Assisted with Sprint Planning meetings and managed JIRA stories which I broke into tasks and made assignments.
- Used Material Design to adapt the User interface.
- Interfaced with SQLite for storing information.
- Dalvik Debug Monitor Server (DDMS) used for debugging and testing.
- Efficient and clean code integration and backup using Jenkins and GIT.
- Used media player and multithreading with loopers and loaders to download in background.
- Used Realm for media download caching.
- Utilized Agile methodology to fulfill rapidly changing client requirements.
- Used Keychain for account login with Shared preferences.
- Implement transitions between activities in the Android mobile app.
- Detected new features that could be implemented and did so.
- Worked with SCRUM methodology to have a prototype to show every two weeks.
- Worked on app development teams in every step of the software development lifecycle.
- Managed memory leaks in debug builds with LeakCanary.
- Implemented the user interface by using Compound View, Custom View, ListView, View Pager and Tab Layout.
- Mentored three junior programmers familiarizing them with our app structure and code.
- Created innovative solutions in media streaming and mobile user experience.
- Involved in testing and testing design for the application after each sprint.
Confidential, Camarillo, CA
- Native Android Development and Android Testing
- Worked in an agile development team of three programmers
- Created the Android interface to Dacor's Discovery IQ Oven
- Strict deadlines met for the Dacor project.
- Used support libraries to ensure backward compatibility with older Android versions.
- Supported multiple screen resolutions to provide proper resizing across multiple devices.
- Attended daily SCRUM meetings to track app development progress.
- Identified bugs on the previous version improving the performance on the Android Life Cycle
- Added the Parcelable interface for marshaling and unmarshalling setter and getter classes
- Independently design and develop native mobile applications for Android platforms according to specifications from design team or clients.
- Implemented Crashlytics to bug and app crashes reporting
- Configured a JIRA instance to handle mass ticketing and bug tracking.
- Used fragments and tabs to improve the navigation user experience
- Parsed JSON files, objects, and arrays using a third-party converter included in the Retrofit documentation.
- Utilized Eclipse IDE to implement the application.
- Helped IT with backups and installation of software updates
- Included support for animating rotation, translation, alpha, and scaling using NineOldAndroids
- Implemented Mixpanel to make push notification easy.