- Android professional with background in data analysis and information quality. Uniquely equipped to understand use case needs and design effective solutions that integrate with and query back - end data systems.
- 5 years in IT and Android Development with 5 published Android apps in the Play Store.
- Skilled in Java coding, JDK, Android Studio to create new Android mobile apps.
- Skilled in reviewing and refactoring code, to improve existing Android apps.
- Able to create robust quality testing using automated testing with Robolectric, and continuous integration (Jenkins and Hudson).
- Writes high quality unit tests using Junit and creates beta test scenarios implemented in TestFairy. and deployment scripts.
- Experience with embedded local storage solutions such as SQLite, and back-end database connectivity with SQL, Oracle, MySQL and other databases.
- Experience with RESTful web services using JSON and GSON.
- Familiar with integration through various APIs (Facebook, Twitter, Google).
- Experienced in the full software developed lifecycle (SDLC) including planning,
- Mobile App architecture employing MVC, MCP, and MVVM patterns.
- App design with Builder, Façade, Proxy, Abstract Factory, Observer, Decorator, Composite, Bridge, etc. depending on use case.
- Participated in all stages software development including defining product vision, gathering requirements,, prototyping, software system design, coding, testing, release, and support.
- Partner with cross-functional teams to define new product requirements, features, and functionality.
- Experience in working with Video, Static content, and advertising.
- Real-world experience is building very large scale, high availability applications.
- Work effectively with UI designers who are obsessive about pixel perfection.
- Experience working on-site and off-site teams and management.
- Collaborated with Software Engineers for the design and development of back-end services.
- Self-driven person, able to adapt to different environments and adopt different technologies
- Experience implementing persistent data in device memory, web-based databases, and the cloud
- Fully conversant with OOP principles, software development frameworks and design patterns
- Strong knowledge in Agile development environments, having a SCRUM Master role in multiple meetings.
- Good experience with Push Notifications, Google Maps, Navigation, GPS
- Experience with Android performance tuning and crash reporting applications.
- Have strong knowledge and demonstrated experience using Android Studio.
- Aid UX in promoting best practices within Android design and ecosystem.
- Ensure software created and released conforms to quality requirements by accurately writing and executing test plans.
- Knowledgeable of the latest analytics tools for mobile applications.
Database & Data Analysis: SQLite, Firebase, SQL Server, Realm, Mongo, Oracle Server, Oracle 10g, Informatica, Informatica 9.5.2 SAS Dataflux, R, and Hadoop
Operating Systems: Windows (98, 2000, XP, Vista, 7),UNIX based systems.
Software: Microsoft Office Suite
Misc Skills: Internet Programming, Computer Forensics, Database Design and Implementation, Website Design, Systems Analysis and Design, Data Mining, Database Security, ASP.NET, Advanced Database Design, Big Data, Project Management, Advanced Systems Analysis and Design
Web Services: RESTful APIs, REST, SOAP, JSON, GSON, XML, AJAX
Frameworks: Android SDK, Fabric, Three20, Sparrow, Java Development Kit (JDK), .NET
Testing: TDD, Unit Testing (Junit), Automated Testing, JIRA, Jenkins, Written Test Cases, Android Testing(Robotium), Espresso, Robolectric, Mockito
Project Management: Agile/SCRUM, Sprints, Daily Scrums, Sprint Retrospective, Sprint Planning, Backlog, Kanban, JIRA, Redmine, Basecamp, Slack, Atlassian Stack BitBucket, Git, GitHub, SVN, Tortoise
DeBugging/Issue Tracking: JIRA, DDMS tool, ADB, LeakCanary, Firebase Crash Reporting, Fabric Crashlytics
Libraries: Ksoap, Jersey, Java Swing, Ajax Swing, GWT, Retrolambda, NineOldAndroids, RxJava
Multimedia: Picasso, Glide, Fresco
Misc Tech: NFC (Near field communication) technology, GCM (Google Cloud Messaging, Retrofit, Volley, RxJava, Metrowerks PowerPlant, Parse, Push Notifications, Remote URLs, Dagger, Urban AirShip, AsynTask, Recycler View, SongyCastle, Nougat, Dependency Injection
Architecture and Design Patterns: MVC, MVP, MVVM, Singleton, Dependency Injection, Builder, Factory, Fa ade, Proxy, Command, Observer
IDE: Android Studio, Eclipse, IntelliJ
Memory Management: ART, Dalvik, Memory Mapping, leak Canary, Bluetooth Low Energy
ANDROID LEAD MOBILE APP DEVELOPER
Confidential, Plano, TX
- Coordinated team of software engineers to complete required tasks, managing Stories and tasks with JIRA, and following an Agile Scrum methodology with daily Scrums and 2-week Sprints.
- Use of advanced software engineering concepts: object-oriented design, native Android and third-party frameworks.
- Responsible for gathering, documenting and managing requirements including change management with JIRA and Java Doc.
- Worked in Android Studio with Java coding in the development of Android mobile app features and functions.
- Use of The Android Runtime (ART) and Dalvik virtual machine for paging and memory mapping to manage memory.
- Improved performance by cleaning up obsolete object references to free up memory with the garbage collector.
- Facilitated payment integration with Firebase to support various payment APIs.
- Used Git and Bitbucket for code repository and version control.
- Used Android frameworks and APIs to efficiently load data and update databases: Loaders, AsyncTaskLoader and SyncAdapters.
- Worked in MVP architectural pattern and design patterns (Singleton, Command, Facade, Proxy and Observer design patterns)
- Use of ViewGroups provided by the Android SDK: FrameLayout, LinearLayout, RelativeLayout, CoordinatorLayout.
- Achieved a great level of decoupling by implementing Dependency Injection with Dagger 2.
- Actively worked with the back-end team to improve the RESTful API to include new features for the Android app.
- Used Firebase for real-time database, and for CDN with data storage and persistence.
- Debugged code with the help of Firebase Crash reporting, in addition to Junit tests created in Android Studio.
- Utilized push notifications with Firebase Notifications and Firebase Cloud Messaging (formerly GCM) for in-app messages, and enabled user login and authentication with Firebase Auth.
- Integrated with access points with Retrofit to consume RESTful Web Services using HttpURLConnection with GSON to covert Java Objects to JSON.
ANDROID SENIOR MOBILE APP DEVELOPER
Confidential, Framingham, MA
- 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.
- Introduced Dagger library for achieving the decoupling of the modules through dependency injection.
- Participated in Agile Scrum project attending daily scrums, and participating in Sprint planning meetings, sprint reviews, sprint retrospectives and Backlog refinement meetings.
- Interacted with Product manager and stakeholders to gather requirements and keep them in the loop on project status.
- Wrote unit tests for the functionality of the application and tests using JUnit.
- Worked with Android Device Monitor for monitoring CPU load, heap size and memory usage
- Wrote automated tests (TDD & BDD) with RSpec, JaCoCo and Cucumber.
- Wrote Javadoc for documenting the different modules, and software features.
- Extensive use of heavy data workloads to show items in a ListView with the ViewHolder pattern.
- Employed continuous integration tools like Jenkins in Android development.
- Embedded local storage solutions such as SQLite in Android.
- Image manipulation and animation, including techniques like alpha blending.
- Identified bugs on the previous version improving the performance on the Android lifecycle.
- Incorporated Firebase push notifications.
- Used native Android and third party technologies to optimize the app functionality including, Material Design, Firebase Cloud Messaging, Espresso, JUnit, SQLite, Glide, Shared Preferences,, Java, MixPanel, EventBus, RxJava
- Consumed RESTful web services with Retrofit and replaced old third-party libraries.
- Used persistent data on the device to store information already loaded for future use by implementing local LRU and database caching.
- Used Butter Knife library for Android views dependency injection.
- Wrote automated tests (TDD & BDD) with JUnit and Mockito.
ANDROID SENIOR MOBILE APP DEVELOPER
Confidential, St. Louis, MO
- Started from scratch gathering client information and refining requirements into a project plan.
- Implemented a new app participating in the entire software development lifecycle (SDLC).
- Implemented Universal Image Loader for image downloading, catching & rendering.
- Mentored two junior developers on Android best practices and coding standards
- Managed continuous integration with Jenkins, and Git using SourceTree on private server for version control.
- Worked in Eclipse to implementing the Android app.
- Developed efficient and maintainable code with the right balance between solving the problem at hand and not over-engineering the solution.
- Introduced Parcelables for object transfers within activities.
- Providing assistance to code merges, builds, deployments, and ensuring production stability.
- Used JSON to receive data from Restful Web Services configuring Retrofit and employing GSON and OkHTTP for parsing Java objects to JSON.
- Contributed high level input on app interface design and tools/frameworks for implementation.
- Worked closely with the UI/UX team for the new colors, shapes and style combinations.
- Mentored two junior web developers on coding best practices for RESTful web services.
- Integrated Facebook - Twitter API for incorporating like, Login and sharing features
- Ensure excellent form factor integration by creating multi-panel activities with Fragments.
- Used Android Annotations for dependency injection
- Created and maintained technical documentation of the application.
- Added extra functionality to the app such as Comment and vote deals, share offers (directly from the app or with notifications).
- Used HTTP rest calls for better performance using different threads.
- Coordinated with the testing team during the testing phase to resolve issues of Android app performance and user experience (UX).
- Created custom animation to improve the user experience following the Android material design principles.
- Created the database using SQLite for storage and data persistence.
- Created Unit Tests For code in the ‘Presenter’ component.
ANDROID MOBILE APP DEVELOPER
Confidential, Santa Barbara, CA
- Participated in all stages of software development including defining product vision, gathering requirements, software system design, coding, testing, release, and support.
- Developed in Eclipse using Material Design guidelines and oop programming standards.
- Used the Dalvik Debug Monitor Server (DDMS) for debugging and testing.
- Stored data of the task bonuses in SQLite.
- Implemented early versions of the Floating Action Button with the usage of third party libraries.
- Guide decisions on architecture and technical strategy.
- Used Retrofit to handle the API consumption with a Jackson built-in converter.
- Collaborated with cross-functional teams to define, design, and ship new features.
- Utilized a Tabs and Navigation Drawers to switch quickly between application Activities and Fragments.
- Experience with network programming and consuming third party APIs.
- Development of quality code using cutting-edge techniques, tools, and utilities.
- Created custom views and animations for visually appealing UI/UX
- Applied Picasso to download images and show them in the UI.
- Created custom animations to improve the user experience.
- Effectively used Activities, Services, Broadcast Receivers, SQLite and preferences Android components.
- Integrated dependency injection with RoboGuise.
- Used Picasso for image loading and created custom animated annotation programmatically.
- Added selectors and animation effects on UI/UX elements to enhance the User Experience.
- Integrated web applications, and web services to Android app to add functionality and enhance performance.
- Consumed HTTP and REST-style web services.
- Diagnosed and resolved mobile networking performance issues.
- Achieved a great level of decoupling by implementing Dependency Injection with Dagger 1.
- Added Push Notification features with Google Cloud Messaging.
- Added selectors and animation effects on UI/UX elements to enhance the User Experience (UI/UX).
- Added services and AsyncTasks to download image files without freezing the UI.
ANDROID MOBILE APP DEVELOPER
Confidential, San Francisco, CA
- Used navigation drawer to provide quick and easy access to the menu items.
- Have developed and helped grow an effective engineering organization at all levels.
- Assumed the role of SCRUM Master in several occasions, easing the development process and helping the team members to jump hurdles and obstacles in their daily software building process.
- Experience working a significant consumer app that is currently available in the marketplace.
- Worked with GSON and Jackson library to parse JSON files.
- Fixed bugs that I came across during the different stages of the development, and after the deployment.
- Supervised the creation of the testing suites developed with Espresso and Mockito.
- Used Android Annotations library to apply binding in Android views.
- Built and delivered a highly scalable and maintainable application.
- Introduced the Push Notifications through Urban Airship.
- Implemented consumption of RESTful API with GSON converter.
- Added a user configuration setting to persist and switch the network usage.
- Created all project documentations from requirements to deployment plan
- Integrated Crashlytics to analyze the behavior of the users.
- Worked with ZXing library for the coupon bar code reading module.
- Implemented the user interface by using Custom Views, ListView, Relative Layout, Linear Layout and Table Layout.
- Used Dalvik DDMS for memory management and issue troubleshooting.
- Used Intents & Intent Filters to initiate activities and pass information between Activities and Fragments.
- Improved the layout rendering by saving and optimizing the view hierarchy in all the resources.
- Used Shared Preferences to save/retrieve user information