●SENIOR SOFTWARE ENGINEER (Web UI/Frontend/Web App. Engineer)
●Ph.D. Candidate (not completed), Computer Science, University of Houston, TX.
●M.S. Computer Science, Indiana University at Bloomington, Indiana.
●Software/Framework/Development: AngularJS 2.0+, React.js, C3/D3 charts, Node.js, Extjs, AJAX, REST API, JQuery, Flash, Struts, Tiles, Spring Framework, Hibernate, SOAP, Apache Web Server, Tomcat, Google: Google Web Toolkit (GWT), Google APP Engine, Google Servlet Engine (GSE), Django, Agile, J2SE/J2EE, EJBs, JMS, JNDI, Java Servlet, Java Applet, Java Help, JavaBeans, JFreeChart, JBoss/WebLogic/WebSphere, JSF, .NET, Eclipse/Plugin/SWT/JFace, Client/Server Architecture, Multi Thread Programming and Object Oriented design methodology, OptimizeIt/JProbe, COM/DCOM/RMI/CORBA, RMI/IIOP, ASP, MFC, Microsoft IIS, WinSock32, Microsoft 3.1 SDK, HP OpenView, CVS, PVCS, ClearCase, gdb, Visio, iPlanet, Ant, JUnit, JIDE, JBuilder/VisualCafe, Visual Studio 2008.
●Database: Oracle/MySQL/Sybase/Microsoft SQL Server/ Informix/ Cloudscape 4.0 Java embedded database/Derby/PostgreSQL, PL/SQL, JDBC, Stored Procedures, ODBC, Informix 5.0, RDBMS/SQL.
●Networking: TCP/IP, UDP, HTTP, HTTPS, SNMP, TL1, LAN(Ethernet)/WAN/SAN, ATM, SONET, MPLS, Token Ring, LDAP.
●Hardware/OS: Unix (SunOS, Solaris, HP-UX, SCO), Red Hat Linux, VxWorks, PSOS, MTOS, VRTX, MS-DOS, Windows 8/2000/XP, Motorola 68000, Intel 8051, 8085, 8086, 80186, 80188, Sun 3/60(UNIX), SPARC(UNIX).
Overall Working Experience: 1985 - Present
Experience in Details:
2018 - Present VMware Inc., Palo Alto, CA
Staff Engineer (Web UI)
●Project: Design/Develop the VMware administrator console(web UI) which is used to configure the connection server, virtual center server, licensing, users/groups, privilege, and farms/desktop pools/machines. This project is on top of the Angular 5, typescript, CSS, and Astro ATK Toolkit.
2015 - 2018 Google Corp., Mountain View, CA
Senior Software Engineer (Web UI)
●Project: Google Play App.(Movies) on Roku (arm/mips/TV) project: Frontend in Brightscript, and Google private Player in C++. Player supports Thumbnails, Info Circle, Fast Forward and Backward. I am the key and the only developer responsible for the Frontend + Player now. Used Google Apiary service to fill in data model and Google License server for signing in. My major contributions are: Brightscript side: TTS(Text to Speech), Family Sharing and Experiment IDs(to tune up performance). Player side: Performance Tuning, TTS, Captions, and Experiment IDs. Fix bugs, build releases, and send our App. to Roku to be online.
2010 - 2014 Symantec Corp., Mountain View, CA
Web UI Engineer (Web UI Team)
●Product: E–Discovery - in response to litigation, regulatory inquiries, and internal investigations. This Platform streamlines end–to–end e–discovery, providing a single product for identification, collection, preservation, processing, analysis, review, and production.
●Project: Working on the Section 508 project to have our Web UI fully working with the outside screen reader (ex:NVDA,JAWS) for supporting disabled person using our UI. Ex: Get focus for the checkbox, and info. bubble through tabbing. When info. bubble got focus, pressing enter to expand the info. bubble and pressing esc to collapse the info. bubble. Pop-up windows come up with focus on the title.
●Project: Web UI for Audio Search, Processing Reports, Container Extraction, Export Template, Load File Import, Scaleout limitation.
●Project: Web UI for Case Settings, Manage Sources, Legal-Hold, Domino, Bulk Import, ICP Analytics Errors UI, Secure On-Site Collections.
2009 - 2010 Google Inc., Mountain View, CA
Senior Software Engineer (Web UI)
●Project: Worked on the “Director Promotion Dashboard” project. The input data came from various sources (GHR/ATS/Perf/PV/App. download), saved data into MySQL db, and used xl2web technology to define front-end in excel, issued query from MySQL to populate the excel data cells, and finally published the data model and generated the web page accordingly.
●Project: Working on Google internal job search web site, to help Googler to maintain their profiles, to help them to do the internal job search and transfer. Also, this tool helps the manager to find the right candidates. Use GWT (Google Web Toolkit) as the front end technology, Visual designer from Instantiations, Google’s Eclipse plugin for GAE(Google App Engine), GAE to deploy this application and JDO for interfacing with the Google’s internal db.
2007 - 2009 Brocade Communications Inc., San Jose, CA
Senior Software Engineer (NMS Team – Web UI)
●Project: Worked on company’s storage switching network management system for the new project with the newly FCoE (Fiber Channel Over Ethernet) switches introduced. Responsible for the front end design, interface design and server/db design. Platform/Tools: Sybase Central 5.0, SQL Anywhere 10, iBATIS, in house topology package, Java/JDK1.6/Swing, Web Start 1.2.
●Wrote the functional specification for the new FCoE project to define the new GUI features. Had high level design for new data model needed in the GUI existing framework, the new database table and the interfaces between the client and server. Did the implementation and testing afterwards.
2005 – 2007 Kazeon Inc., Mountain View, CA
Senior Software Engineer (Web UI Technical Lead)
●Project: Worked on the Information Server 1.0: the first integrated solution for managing all the files for an Enterprise (include snapshots/snapvaults and snaplock/snapsearch operations) on your network. It provides: quickly finding files distributed across storage volumes, simplifying response to legal discovery, efficiently classifying files based on file metadata and file content, migrating files to tiered storage and recall, and tagging files for copy/move/delete operations. Platform/Tools: Linux 2.4.20, Java/JDK1.5/Swing, Web Start 1.2, JIDE1.9 (ready-to-use java widgets), JDOM, Abeille forms designer, and Japser (charting).
●Given significant contributions, such as: to change/improve the L&F of this GUI, fix the usability issue (consistency, logo, font, color, margin, alignment, easy to use, wizard), abstract the application from the communication layer, create backbone building blocks, and create a framework to build the hierarchy table and tree table.
●Responsible for the key components, Job Scheduler, Manage File System, Search and Report. For Job Scheduler, provide different tree table view and total counts for each category to present all jobs launched in the system, multiple select table items to perform each operation such as: Delete, Edit, History, Start, Stop, Suspend, and Resume.
2003 – 2005 Terayon Communication Systems Inc., Santa Clara, CA
Senior Software Engineer (GUI Technical Lead)
●Project: A digital video stream management system for digital video re-multiplexing (static/dynamic/custom grooming), HD digital-into-digital ad insertion, rate shaping, resolution change, and High Definition TV. Platform/Tools: Linux 2.4.20, Java/JDK1.4.2/ Swing, Web Start 1.2, JFreeChart, Eclipse/Plugin/SWT/JFace, Together 5.5.
●GUI was to remotely configure this system (digital video devices network), and set up Grooming via Drag and Drop from source input to output, Stream Analysis in dynamic graphing, Program Analysis in table format, Alarm/Event management and Account Administration.
●Project: SGCM (Single GUI Centralized Management): One single GUI to control multiple systems. Given the proposal, wrote the functional spec., did the analysis for feasibility, complexity and timing issues, and finally completed this project very successfully. This project totally converted our current GUI from one GUI to one device to one GUI to the whole network topology. Got highly recognition/rewards from the CEO and brought great revenue for our product because of this feature completed.
●Designed UI screen snap shots by 3rd tools for system design review, drew event sequence diagram/class diagram via TogetherJ for GUI software design review. Designed and drew each icons.
●GUI was developed in Swing and server was in Java, communicating through RMI. I was fully responsible for analyzing/designing/implementing the new features, maintaining existing features and doing unit test/integration test/system test. Had solid experience to design GUI for its life cycle from preliminary phase all the way to product release and post product maintaining.
●Designed caching mechanism through asynchronously events sent by server to synchronize data model between server and multiple GUIs. This mechanism had great improvements for our GUI’s performance.
2002 - 2003 CPlane Inc., Sunnyvale, CA
Principal Software Engineer (Application Team – GUI + Server) - Technical Lead
●Project: Developed an OSS (Operations Support Systems) system to provide end-to-end connections with a patented/optimal routing algorithm for an optimized MPLS network, and provided workflow application (new services could be added via intuitive interfaces without requiring programming skills, and how business processes could be changed with a flexible workflow). Platform/Tools: Linux 2.4.18, Java/JDK1.4/Swing, JBoss 2.4.4/Web Logic 6.1, J2EE, XML, ILog, Oracle 8i database, Together 5.5.
●Was responsible for designing and implementing the Workflow GUI application. This GUI was to view/edit the existing workflow, create a new workflow visually, run/step through a workflow, append a built in workflow or existing workflow into the target workflow. Designed the DTD and XML files for visual object mappings, mouse gesture mapping, input parameters and application properties. GUI was developed in Swing and server was in EJB, communicating through JMS, RMI, and JNDI.
●Was responsible for designing and implementing the Workflow building blocks and supporting EJBs (session beans, entity beans and message beans) deployed in the Application Server, the traversal algorithm to traverse the internal workflow, and the workflow engine.
2000 – 2001 Geyser Networks Inc., Sunnyvale, CA
Principal Software Engineer (NMS Team – Server + GUI) - Technical Lead
●Project: Worked in the NMS department for an OC48 SONET Optical Ring project which was targeted to be deployed in the metropolitan area. This system was to develop a unique optical solution for carriers that allowed them to maximize the profitability of SONET networks through the efficient delivery of voice, data and video contents. Platform/Tools: Java/ JDK1.3/Swing/RMI, Cloudscape's relational database, Oracle database, AdventNet SNMP v3, TL1, ILog, JReport.
●The Server and GUI were developed in Java/JDK1.3/Swing. I was in the server team and responsible for the Event Manager, Alarm Manager (with high performance to handle multiple events/alarms in the networks), and SNMP Manager, wrote the functional and design specification and did the implementation. This project was implemented in multi threads, synchronization was achieved by semaphores or synchronized methods and error passed through exception. Acted as one of the major architect for the overall system.
●Tuned up the system for improving overall performance, tracing bugs for the memory leaks in Server and GUI, rewriting the code in the bottleneck area.
●Responsible for redesigning/maintaining the new/existing GUI screens in the area of alarm summary and provision equipment (provision node group, NE, card, port, chassis and clock source). This GUI used the RMI to communicate with the server, registering event and callback mechanism for Server’s asynchronous notification, JReport to report the static/dynamic system’s parameters, ILog to draw the network topology, KL Group for graphing performance/statistics in real time.
1999 – 2000 Cisco Systems Inc., San Jose, CA
Senior Software Engineer (NMS Team – Server + GUI) - Technical Lead
●Project: Worked in the NMS department for a small to medium size/VoIP router+switch product. Platform/Tools: NT target system, Java/JDK1.2/Swing, Java Applet, ASP, KL Group graphing tool, JDBC, SNMP v2, HTTP, COM, Microsoft SQL database server, ASP.
●Was in the Event Manager team to write an out-of-process COM to provide the bridging between the backend event log server and the front end GUI (in asp).
●Developed Java Applet in to provide live/historic viewers to view the event log. For the live viewer, user clicked any column header to sort the event logs based on this sorting criteria and the real time event will be inserted into a sorted position with highlight.
●Maintained the backend event log server.
●Project: Responsible for the VoIP/VoFR application server project. This project was to monitor the voice calls over our VoIP/VoFR routers and provided the 3-D graphing information of the usage, trends, statistics and bandwidth utilization to the customer. This was developed at NT platform. The GUI was implemented in Java Applets (invoked by a HTML file), Java/JDK1.2/Swing, and KL Group graphing tool. Clients and Servers were communicated through RMI and automatic notification was sent to client when topology was changed at the server side. The major responsibility of this Server was to collect information from the Voice Routers, store information through JDBC into Java Database (Cloudscape's Java Database, a 100% pure Java/embedded DBMS), and served the requests from the Applets. Server used SNMP (AdventNet Java SNMP v2) to communicate with the routers. Designed this framework to be flexible to add more different NMS components for monitoring different kind of hardware. I was the Technical Lead of this project, wrote functional specification and detailed design document, overall architecture design and the major engineer to implement this project.
●Project: Designed and implemented the Voice Wizard. It was run as a Java Applet or a standalone application, communicated with the device through the HTTP protocol. Its major purpose was to configure the VoIP/VoFR device, create profile as configuration template and create dial plan for routing purpose.
●Project: With VFrame Data Center(DC), customers can link their computer, networking and storage infrastructures together as a set of virtualized services. This is a highly efficient platform within the data center network for dynamic service provisioning, a policy engine for automating resource changes in response to infrastructure outages and performance changes and which requires only a single controller. The real time provisioning engine has a comprehensive view of servers, storage and network resources. VFrame DC provisions resources as virtualized services using graphical design templates. These design templates comprise one of five VFrame DC modular components: discovery, template, design, deploy, and operations. These components are integrated together with a robust security interface that allows controlled access by multiple organizations.
●Platform/Tools: Java/JDK1.5/Swing, Web Start 1.2, JIDE1.9 (ready-to-use java widgets).
1993 – 1999 Siemens Corp., Santa Clara, CA
Staff Engineer (NMS Team – Server + GUI)
●Project: Member of the telecommunication management software team at the Server team. This project was to configure telephony local switch, using object oriented analysis and design through STP software package with Rumbaugh's methodology, implemented in C++, using template and exception, client-server architecture, GUI running on Win95 served as the front end client, server ran on the SCO Unix, software developed at SUN workstation and PC (with SCO UNIX) is the target machine. Platform/Tools: SCO Unix target system, C++, OO analysis and design, Zinc library, INFORMIX ESQL/C, STP OO design tool.
●Developed the base classes to provide some basic functionality for the applications in the server. These base classes load, query, delete or change database to our real time database server which was run on the IRMX O.S.
●Developed the Attribute classes which were the basic building block for this project and developed the application entry objects like, ComGroup which dealt with the ComGroup functionality.
●Project: Member of the network management software team at the GUI team first (and Server team next). This project was to configure multiple telephony switches network, using object oriented analysis and design through STP software package with Rumbaugh's methodology, implemented in C++, ZINC class library as the base bone of our multi-platform GUI, client-server architecture, software developed at SUN workstation and a SCO UNIX PC was the target machine.
●Developed EXPORT functions to extract data out of the switch.
●Developed and maintained this management software's relational database written in INFORMIX ESQL/C. This included the database initialization, generating unique key for each record in the system, generating data dictionary for all tables and upgrading old version's database to new version's database.
●Developed screens for Backup, Restore, Export, Pass Through, Synchronization, Trace, System Status, Configuration Capacity, Domain, Batch Job and Phone Mail COS.
●Developed Transceiver class which provided an interface for communications between the application windows and control server. This included the interfaces for synchronous and asynchronous transmission.
●Developed GUI's device class which provided interfaces for create/destroy ipcstream, send/poll/log outgoing/incoming objects.
●Developed background processing for Backup, Restore, Export, Pass Through, Trace and System Status.
1989 – 1993 Motorola Inc. (TeleSciences Transmission Systems) – Fremont, CA
Software Design Engineer (NMS Team – Server + GUI - Firmware Engineer)
●Project: Member of a new Network Management System product design team. This NMS was designed to control our 2GHz digital radio network. Platform/Tools: This distributed environment included Windows NT development platform, imbedded target system, Intel 80188, 8051 microprocessors, VRTX OS, client-server architecture, UNIX, C, HP Open View, Paradox for Windows and SNMP protocol.
1987 – 1989 Tyco Inc. (Raychem – Raynet) Corporation, Menlo Park, CA
Software Development Engineer (Firmware Engineer)
●Project: Developed real time telecommunication software for subscriber loop telephone system (fiber bus, compatible with SLC 96 RT). Platform/Tools: C, Motorola 68000 and Intel 8051 Assembly and used PSOS as embedded O.S.
1985 – 1986 University of Houston – Texas
Teaching Assistant, Ph. D Candidate
●Was focused on AI.