Software Development Engineer Resume
San Francisco, CA
SUMMARY:
- Good experience in architecture, UI design of mobile applications.
- Well - versed in Object-Oriented design, various data Structures & algorithms, multithreading.
- Good experience wif web services, parsing.
- Experience wif Agile/Scrum methodologies.
PROFESSIONAL EXPERIENCE:
Confidential, San Francisco, CA
Software development Engineer
Environment: Android SDK, Java SDKs, MVVM, RxJava, Kotlin, Git.
Responsibilities:
- Built the Zillow app for real estate agents from scratch using an MVVM architecture. Dagger was used for dependency injection. Kotlin Flow and Livedata for event based signals and coroutines for asynchronous events.
- Built the core screens of the Trulia Android app such as the property landing page, Search page, activity feed and save searches and save properties.
- Integration of graphQl endpoints using Apollo GraphQL SDK.
Confidential, San Francisco, CA
Senior Software Engineer
Environment: Android SDK, Java SDKs, MVVM, RxJava, Kotlin, Git.
Responsibilities:
- Worked on implementing user interface based features using a MVVM architecture incorporating Kotlin, RxJava and Dagger.
- Implemented various features such as search, course landing page, lecture viewing page, login, accounts screen and
- Created features for lecture and course download and saving on the mobile device.
- Implemented notification feature for Leanplum based push notifications.
- Implemented helpdesk functionality using Zendesk SDKs.
Confidential, Redmond, WA
Lead Android developer
Environment: Android SDK, Java SDKs, Kotlin, Geritt.
Responsibilities:
- Created various user interface components such as circular dials, sliding panels, custom toggle buttons, ROI graphics, etc of the Echonous front end using a fragment based architecture wif code written in Kotlin.
- Created a Fragment based approach for displaying ultrasound images by interfacing wif the native layer and other SDKs.
- Created a ViewModel based architecture for various information flows incorporating a MVP based app architecture.
Confidential, San Francisco, CA
Software Engineer
Environment: Android SDK, Java SDKs, MVP, JIRA, Junit, Git.
Responsibilities:
- Created various flows such as the Sell flow of the Stubhub app using Android SDK components. The Sell flow includes features such as upload of PDF files and scanning of Barcodes on tickets
- Created a Fragment based approach for the search, viewing and upload of PDF tickets. Used various APIs such as content resolvers, Intents, Permissions manager, File explorer, etc.
- Created a Activity based approach for the scanning of tickets. Used various APIs such as the camera API and the Android barcode API to accomplish the scanning of tickets.
- APIs for Navigation flows created due to Back button and Home button usage.
- APIs for Android Action bar and the Options Menu button based flows.
- Implementation of unit test scripts using Robotium and functional test scripts using Espresso. Mock scripts using Mockito and PowerMock. Tested navigation flow. Loading of views and network call related logic.
Confidential, San Jose, CA
Senior Android developer
Environment: Android SDK, Java SDKs, MVP, JIRA, Junit, Git.
Responsibilities:
- Involved in the Coding, testing and defect support phase of the project. Build script development using Gradle. Git flow management using Stash. Build release management using Jenkins.
- Designed and Developed App screens and its workflow using Activities and Fragments. Used common Android SDK components to develop the App. Wrote application logic using Eclipse,AndroidSDK andAndroidStudio.
- API creation for Google ExoPlayer, Android Native Player and VisualOn player for streaming of movies and Live TV on Android Fire TV, Google Nexus players, Android tablets and Android mobile devices.
- APIs for integration of Amazon and Google InApp purchase SDKs. APIs for implementation of Digital rights management (DRM) services.
- Implementations of Ads and video streaming specific UI widgets such as Electronic program guides (EPG), live playlists, Continue watching playlists and DPAD navigation listeners.
- API creation for implementation of Google quartile analytics and integration of Hockey app for crash reporting. APIs for implementation of various App heartbeat features.
- User interface creation for Android Fire TV based apps for various customers including CBS, Love Nature and Smithsonian Earth using various Android SDKs. APIs for downloading of thumbnails for display on various user interface widgets.
Confidential, San Francisco, CA
Lead Android developer
Environment: Android SDK, Dagger, Mortar, Flow, Java SDK, MVP, JIRA, JUnit, Robotium, Espresso.
Responsibilities:
- Created a banking app for the Chase bank credit and debit card services. Users can login to activate cash back from their mobile device. The app is based on the MVP architecture implemented using open source software tools such as Dagger, Mortar and flow. Unlike traditional Android app architectures, our app uses a single Activity, thereby improving App responsiveness.
- Touch events are dispatched to a Presenter API, the View and the Model classes are decoupled. The architecture permits mocking of each component of the app, facilitating a TDD method.
- The Open source tool, Flow was used for Backstack management of View classes. A single Activity class inflated View classes popped by the BackStack.
- APIs for Navigation flows created due to Back button and Home button usage.
- APIs for Android Action bar and the Options Menu button based flows.
- Implementation of unit test scripts using Robotium and functional test scripts using Espresso. Mock scripts using Mockito and PowerMock. Tested navigation flow. Loading of views and network call related logic.
- Modularization of Support Fragment Manager, Fragment Manager.
- Creation of an API to enable developers to select Android Fragments/Support Fragments/Dialog Fragments wif the use of an enum.
- Creation of an API dat abstracts the common functionality of codebase related to Login and Account preview. Splitting of Login and Account preview codebase to Fragment based modules dat: handle background image downloading and display, header and footer display and flow, Session management, Timeouts, Action bar related functions, menu related functions, Spanish language flow, Shared p management, Phone dialing flow, Cookie management, Logout flow, Calendar management, Back button and Up button management and Network connectivity management. JPM Retail app - New APIs for the creation of a custom Dependency injection framework.
- Creation of an annotation based Framework for the purpose of dependency Injection.
- Creation of annotations for Class and field injects.
- Refactoring of existing code base for the purpose of using Java Reflection to inject fields/objects using the annotation based framework.
- Modified the launcher Activity to support different flavor to have its own launcher.
- Refactored the various Activities to Fragment based architecture.
- Refactor the Background Image logic and created a Fragment based logic.
- Refactor the Login logic using Fragments.
- Refactor the Asynctasks and added support for callbacks.
- Packaging and delivering to payments team.
Confidential, San Jose, CA
Lead Android developer
Environment: Android SDK, Java SDK, Google Location services, MVC, JIRA, JUnit.
Responsibilities:
- Created a social media app for the Samsung range of smartphones. The app is based on the MVC architecture. Touch events are dispatched to a controller API, views and the model are decoupled. Interactions are regulated using the Observer design pattern. The architecture permits mocking of each component of the app, facilitating a TDD method.
- Use of Java based multi-threading techniques to load various content resolver based cursors and display them on the UI.
- Creation of a Bitmap downloads and display library using Androids Pager Adapter.
- Broadcast receivers to handle SMS management.
- JUnit based TDD methodology to do functional testing, unit testing and integration testing of the whole app. Various features such as UI, activity lifecycle, network connectivity and Location manager were mocked and tested. Continuous integration was done using Jenkins.
- Used Stash for project management and version control.
Confidential
Lead Android developer
Environment: Android SDK, Picasso, Retrofit, Java, Eclipse, Google Location services.
Responsibilities:
- UI design of waterfall of images and video clips using Android SDKs. The waterfall is based on a staggered grid view designed using the open source tool by ETSY. Customization of the ETSY staggered grid to include headers and various listeners. Implemented bitmap streaming, caching and loading using the open source software tool, Picasso.
- Implemented web services using REST API libraries from the open source tool, Retrofit.
- Developed Android SDK based animations using the latest version of the navigation manager including the navigation drawer and customization of the drawer.
- Implementation of custom list views. Customization of list views to include text views for comments. Implementation of camera and file based photo upload.
- Google location APIs for storing, querying of location information. Implementation of location listeners, services and broadcast receivers for location based services.
Confidential
Software Engineer
Environment: Java, Android SDK, Sqlite3, Android XML API, JSON, Spring, Web services, J2EE stack and Eclipse.
Responsibilities:
- Worked on full SDLC from requirements gathering to production. Involved in study and analysis of Software requirements and specifications.
- Developed the prototype, prepared required documents and PSARS to get the permissions.
- Developed front end JSP pages using HTML5, CSS and JavaScript.
- Used various design patterns to hide the implementation details of how an object is being created, DAO pattern to access data from the database and singleton pattern to get database connection. Used Value Object, Data Access Object, Session Façade, Factory Patterns.
- Used Spring Web Flow to maintain State Management of the UI Controls.
- Developed applications using Struts 1.x where each form is submitted through an Action form, guided through Action class for specific classes and other JSPs.
- Consumed the SOAP web service provided by OIT, by creating a stub using JAX-WS, Apache CXF.
- Used the Finder Framework and Hibernate for the Search functionalities.
- Participated in different sessions wif the networking team to check load balancing and session stickiness.
- Involved in Servlet programming and JSP scripting for the communication between web browser and server.
- Prevented many possible security vulnerabilities like SQL Injection using parameterized substitution, session validity by checking session is active in the base action and CSRF attacks using synchronized token pattern.
- Developed unit test cases using Junit 4.
- Also closely worked wif testing team by providing proper data required and also checked the performance and memory management issues.
- Used log4j to track the logs from the server, Ant for build and deployment.
Environment: JDK, NetBeans, html, CSS, JavaScript, jQuery, JDBC, Hibernate, SOAP, Spring 2.0, Spring MVC, JUnit, Log 4j, ANT, Glassfish.