August 2014 - Present (4 Years, 8 Months)
Principal Software Engineer-Back End
San Francisco, CA, US
The low level Backend API platform security infrastructure was updated to support the Service Account Integration for enterprise customers so that: * All existing user facing APIs would not be impacted * Service Account Integration session would not be able to access the user facing APIs and vice versa * The security and permissions of the Service Account Integration APIs would be simplified and isolated from the user facing APIs
Based on our customer feedback and user testing, we changed the feedback comments for each skill to a single comment on Moment. I updated the model, APIs, and access control on the back-end to support the new Moment level comments. Finally, all existing skill level comments in LIVE were migrated to make it compatible with the new design.
During the Skill Curator v2 UI redesign and testing, I had an opportunity to ask our TalentSky skill curation team for their feedback. They had mentioned that it would be nice to know the skill usage count across Moments, Skill Searches, and Roles during skill curation, specifically when merging two skills, since they did not have any visibility to skill usage in unpublished Moments, Skill Searches, and Roles for other organizations. Although this feature was not in our backlog, I wanted to incorporate curation team feedback to enhance their overall user experience. After spending some time during off hours, I was able to deliver a new API that provides this information in time to be incorporated as part of skill curation v2 UI.
For initial TalentSky v1 launch, the back-end API platform utilized Play 2 Plugin for ReactiveCouchbase library, which is a database driver for Couchbase written in Scala. The Play 2 Plugin was chosen because it provided an easy bootstrap to database connection at application startup from a configuration file and a Java interface to it's underlying Scala library. We decided to migrate our database driver to the latest Couchbase's native Java SDK client because Play 2 Plugin for ReactiveCouchbase was no longer supported and the Couchbase support team recommended their latest SDK client when we upgraded our Couchbase database. I took this opportunity to rewrite our database driver APIs and refactored the underlying database operation APIs, which resulted in a cleaner and simpler database APIs, as well as Couchbase bucket encapsulation. In summary, 124 methods in our database helper class were consolidated and reduced to just 54 methods. This massive upgrade and refactoring will set a good foundation for ongoing back-end developments and future Couchbase database upgrades.
For TalentSky v1 release, various security and access permissions were associated with the type of enterprise license the user had. This security access model was updated during TalentSky v2 release by introducing a permission set model. The permission set model provides our enterprise customers the flexibility to either use the standard permission sets or create an unlimited number of custom permission sets with desired permissions. This enables the enterprise admin to create and assign specific responsibilities to their employees to perform relevant tasks within TalentSky network for their organizations. I was responsible for migrating the legacy user license model to the new permission set model, as well as the overall implementation of the permission set management and its security enforcement on the back-end.
I developed the back-end API for the Enterprise Customers Dashboard page, which provides a listing of our enterprise customers and their license utilization related data along with the total number of active users in our network. This dashboard API replaced the previously developed Enterprise Customers API. I had to learn and utilize ElasticSearch Aggregations feature, which significantly reduced the number of queries required to get the data and resulted in 400% performance improvement. This new API will scale much better as our number of enterprise customers grows.
August 2010 - August 2014 (4 Years, 1 Month)
Principal Software Engineer
Santa Barbara, CA, US
January 2012 - August 2014 (2 Years, 8 Months)
Technical Lead Engineer for Business Systems at Citrix SaaS Division responsible for Corporate Commerce System, which streamlined their existing sales process by bringing their business customers on board with e-commerce for their popular online collaboration/support products like GoToMeeting, GoToMyPC, GoToWebinar, GoToAssist, Podio, ShareFile, Enterprise suite of products.
Responsibility included, but not limited to, the software engineering around billing and invoicing, collection, payment processing, domestic and international tax compliance, and system integration with other systems.
Developed and managed a billing and invoicing module for corporate commerce system processing $500M in revenue annually.
Staff Software Engineer
Santa Barbara, CA, US
August 2010 - December 2011 (1 Year, 5 Months)
I was the technical lead for integrating SAP Convergent Charging with the Corporate Commerce for Citrix SaaS division. I was responsible for, but not limited to: * Creating a new product type in commerce catalog and pricing to support audio service products. * Updating the quote flows, order management and billing and invoicing to support audio service products. * Overseeing the entire integration and supporting this project from the beginning to the end. As a result of successful implementation of this project, * Sales can quote and sell audio service products along with the “GoTo” service products on the same commerce system. * Customers are billed based on actual usage and/or overage of their audio service. * Customers received a single invoice for both “GoTo” and audio service products. * Streamlined the revenue reporting and recognition in SAP.
Recognized and awarded for outstanding performance and exceptional commitment to the company's core values during Q2 2011.
May 2007 - August 2010 (3 Years, 4 Months)
Chicago, IL, US
Symbol Technologies is an American manufacturer and worldwide supplier of mobile data capture and delivery equipment. The company specializes in barcode scanners, mobile computers, RFID systems and Wireless LAN infrastructure As the architect for the project, I was responsible for: * managing one technical resource onsite and another technical resource in offshore India. * creating a detailed technical design document based on the business requirements prior to any development work. * development work and providing technical guidance to the team members. * creating a comprehensive test document with both positive and negative testing for all development work. * assisting and supporting User Acceptance Testing with users around the world. * assisting the client with production deployment. Implementation included SFDC integration, Quote to Proposal approval workflow enhancements, converting Quote xml to PDF document, email notification with Quote PDF attachment, and developing a metric report using Actuate report.
Sterling Commerce's Distributed Order Management implementation for DSW Inc.'s eCommerce. My responsibilities included, but not limited to: * Reviewed and provided feedback on the design documents prior to starting any development work by offshore developers in India. * Developed string test scenarios and scripts based on the business requirements identified in Solution Definition Document. * Lead the onsite testing effort with assigning the test scripts to testers, executing and reporting of defects, and attending the defect meetings. * Reviewed the defects and clarified the relevant business requirements to the developers in India. * Provided support for integration testing to DSW QA testing team. * Investigated and identified various integration issues around web services and MQ Queues with GIS team members. * Developed a high level design and requirements document around change requests. * Provided technical assistance around onsite build and deployment process.
June 1998 - May 2007 (9 Years)
Chicago, IL, US
January 2001 - May 2007 (6 Years, 5 Months)
Following the successful implementation of BWise application to satisfy compliance with Sarbanes-Oxley at AEGON, our team was invited again to implement the Operational Risk Management (ORM) module of BWise. My responsibilities included, but not limited to: * Developed testing strategy and test plan for the ORM implementation. * Met with project sponsors and VP for gathering and documenting the ORM reporting requirements. * Developed custom Crystal reports, including dashboard reports for upper managements. * Trained AEGON IT staffs in BWise data model and Crystal Report development skills.
We implemented Comergent, which is now known as IBM Sterling CPQ, as the eCommerce store front for Motorola US, which included: * Online catalog and pricing of their goods, such as phones and accessories, as well as ringtones and wallpapers. * Shopping cart experience and promotion coupon management. * Product detail page with related products for cross selling and up-selling * Integration with Siebel for order processing and tracking. * Integration with CyberSource for credit card payment processing
Chicago, IL, US
January 2000 - December 2000 (1 Year)
I was one of the two designated Application DBAs for the team of 8 that developed a client-server application with Oracle database. The responsibilities included: * Reviewing Oracle stored procedures and packages submitted by the developers for quality and version control. * Migrating and deploying stored procedures, packages and all other database objects to QA, stage, and production. * Exporting the database schemas as a backup prior to any new application release in production. * Preparing the new application release checklist document. * Sending out the release note to the team and the client.
I worked closely with the client for the entire project life cycle for developing a suite of client-server Windows applications that met the evolving needs of the regulatory safety group and to assist the organization in achieving greater compliance and departmental performance. I started out as an associate consultant but ended as a senior consultant that lead a team of 8. The application helped the client with: * Improved overall compliance with FDA timelines for reporting serious and non-serious adverse events. * Increased the efficiency of the department workflow. * Categorized adverse events and identified the deadline by when they needed to be submitted to the FDA and the subsidiary country organizations to meet local regulatory reporting needs. * Audit trail capability covering the entire application to ensure compliance with FDA regulations governing electronic records (21 CFR Part 11).
Chicago, IL, US
January 1999 - December 1999 (1 Year)
Developed ActiveX controls (OCX) and Dynamic Link Libraries (DLL) for Windows desktop suite of applications that we developed at Pfizer for Regulatory Safety Group. The purpose of these ActiveX controls and libraries was to encapsulate common, reusable logic and components as a distributable objects so that we can avoid duplicate codes and speed up the development cycle for new applications. Some of the ActiveX controls included data grid and custom dropdown list UI components. Some of the Dynamic Link Libraries included user authentication logic against Oracle database and common functions.
Regulatory Safety Group at one of the world's largest pharmaceutical companies received approximately 600 adverse event reports on a daily basis from around the world. Depending on the seriousness of the adverse event, the FDA and CIOMS requirements mandate that the report be submitted to their offices within a specified period of time. The customer's original adverse event reports were received in paper format and then moved through the workflow to be processed by different groups, which created a bottleneck as each group was dependent on the previous group completing their work. We developed and Implemented a document imaging system that allowed users to scan the adverse event reports into the database at the beginning of the workflow to streamline the processing of the adverse event reports. The document imaging system consisted of: * Image Scanning * Image Viewer * Image Print Server * Image Print Monitor
Chicago, IL, US
June 1998 - December 1998 (7 Months)
Attended a training bootcamp along with over 50 other “fresh out of school” new hires at the TSC Dallas Office. Over the next 4 weeks, we learned how to be a professional consultant along with technical and functional skills.
September 1992 - May 1998 (5 Years, 9 Months)
MBA, Management Information System
Albany, NY, US
September 1996 - May 1998 (1 Year, 9 Months)
The Physical Space Inventory (PSI) is a database of all spaces in every building owned or used by the University. The PSI data is integral to numerous campus operations and responsibilities, including but not limited to, property controls, space management, statistical analysis, coordination of IT, various State and Federal reporting requirements and room scheduling. PSI is also the foundation of the University’s work order system, and provides the basis for tens of millions of dollars in federally-sponsored research overhead costs. During my second year in the MBA program, the PSI internship project was offered to me by the University Budget Office. The internship required 20 hours/week and I received a full tuition for the second year of my program plus $9K stipend. The database was developed in MS Access using forms, VBA, and reports. It also included a feature to export the entire database to a flat file so it can be uploaded to a designated server for FED reporting requirement.
BS, Computer Science with Applied Mathematics with Mathematics minor
Albany, NY, US
September 1992 - May 1996 (3 Years, 9 Months)