Sign in

Engineer Software

Cupertino, CA
February 18, 2020

Contact this candidate


Peter Lin


Contact: 415-***-****

Senior Software Engineer with solid Web UI/Frontend/Web Application/Server/Java design and implementation skills, and always play the key role in the core software development team. Engineering skills include JavaScript, HTML, CSS, AJAX, AngularJS 2.0+, React.js, Typescript, C3/D3 charts, HTTP, Flex, Java, C++, Python, Servlet, Spring Framework, and J2EE technologies such as EJBs, JBoss/WebLogic, JDBC, RMI, JMS, and JNDI.


●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.

Technical Summary:

●Language: JavaScript, CSS, HTML, Typescript, Java/JDK1.8/ Swing/Design Patterns, JSP, DHTML, XML/DTD/Schema/DOM/SAX/XSLT, JSTL, Visual C++, PHP, CGI, PERL, Python, Unix Shell Programming(Borne/C/Korn Shell), C++, C, Pascal, Cobol, LISP, Scheme, Visual Basic, VBScript, UML (Rational Rose/TogetherJ), Motorola 68000 Assembly, Intel 8051, 80186, 80188 Assembly.

●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.

●Product: Google Play App on Smart TV for LG/Samsung/Sony TV: To develop the smart TV Web UI, presented on each smart TV. Code is written in AngularJS, Javascript, Google Javascript library, lint compiler(for optimization), and strictly follows the Google JS coding standard. Run this Web UI in local server with Chrome debugger or let the smart TV points to a local server IP and open the Chrome debugger imbedded in smart TV to debug.

●Project: Responsible for the Details page which shows the Movies or TV shows. Wrote the following directives/building blocks in AngularJS for Details page: buttons(play-button/play-trailer-button),action-bar,image-container(poster),background-image, secondary info(contentRating/releaseDate/durationInMin/badges/thumb-rating/star-rating),primary-info(title/secondary-info/descriptions), rental-policy(+duration-filter). Also working on the data model (asset, purchase, offer, rental), focus-container, key/event handling base class and splash screen. The localization is achieved either inside the Angular’s template by redirection or call Google API in the controller side. Joined this project since the beginning phase and this large web application is totally written in Javascript/Angular JS/CSS. Through Jasmine/Angular framework, wrote test cases to cover different scenarios for each directive building block. Used Google Apiary service to fill in data model and Google License server for signing in.

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.

●Platform/Tools/Development: JavaScript, HTML, CSS, Java 1.6, Ajax, extjs-3.3, Struts/Tiles, Flash(Flex Builder4, ActionScript), Fiddler2, Microsoft Visual Studio 2010(IE debugger), JsonViewer, JSP, spket-1.6.18, MySQL-5.5, Query Browser and Agile development.

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: Work on the “Leave Request Form” and “Interview Scheduling Request Form”. The final results are: present confirmation to the requester, send email to the HR, and create ticket to the GUTs ticket system. This project is written in Python/HMTL/CSS/JavaScript/JQuery/Django and installed at Google App. Engine.

●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.

●Project: Worked on the Google’s organization chart to be used by the HR hiring committee. This tool used HTML/JavaScript/CSS/Google internal visualization APIs/XhrLite(Google’s AJAX Lite Library) as the front end and Python/LDAP to prepare each employee’s data set in json.

●Project: Worked on the China benefits workflow tool. This tool is for the Googler at China to enter their personal information, online benefits enrollment. Use GSE (Google Servlet Engine) and HTML/JavaScript/CSS technology and JDBC to interface with the db.

●Project: Worked on the File Server tool. This tool is hosted by the HR to dispatch some files to the Googler, like total rewards (salary, bonus, vacation), stock options. Use GSE (Google Servlet Engine) and HTML/JavaScript/CSS technology and JDBC to interface with the 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.

●Project: Worked in the Web Tool team to provide user web capability to configure our switches. Platform/Tools: JavaScript, HTML, CSS, Apache, Tomcat, Spring MVC, JSP, Sybase.

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.

●Project: Working on the Web GUI search application for the end user. This web solution is to provide File search, Email search, set preference, and apply action on search results (such as Tag, Copy, Move, Download, Export). This project utilizes Spring framework, JavaScript, HTML, CSS, JSP, AJAX and Java classes.

●Analyze, architect and move the current java GUI to web based GUI by using the Spring framework (Hibernate), AJAX, and ZK web widget toolkit. This ZK tool/framework is a server side solution, desktop programming model, component based, AJAX based event driven, stateful client-server mode, all front end written in zul (xul/xhtml format)/Java, this Java code implements the controller/listener and executed at the server side. Platform/Tools: ZK tool, JavaScript, XHTML, CSS, Spring Hibernate, open source Postgres db.

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.

●Project: Worked on the Configuration Web GUI to configure our system through web interface. Platform/Tools : Apache, Tomcat, Struts, Servlet, JSP, HTML, JavaScript, CSS, MS SQL Server.

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.

●Project: Designed and developed a light weight web-based GUI, target for customer/subscriber, used for network configuration, provisioning, and administration functions using HTML, DHTML, JavaScript, CSS, JSP, Servlets, Java, Tomcat and Apache web server.

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.

Contact this candidate