Implemented ActiveX and Websocket server interfacing with Spice client to manage, configure and control virtual machine (VM) from browsers.
Implemented location-based printing for Windows VM by modifying QEMU and Spice clients.
Developed a Dropbox-like server for Openstack Swift object storage based on Pylons and SQLAlchemy framework using Python.
Implemented a load balancer and health check for Swift proxy using DNS.
Senior Software Engineer, 08/2009
to 10/2011 Fluke Networks, Inc – Sunnyvale,
Implemented 802.11 a/b/g/n NDIS (5/6) miniport driver for Windows Vista/XP/7 to support for packet sniffing, throughput/Iperf test, active survey and roaming control for AirMagnet WiFi Analyzer based on Atheros' code base for AR9170, AR9280 and AR9390.
Ported the Linux open source for Intel Ultimate-N 6300/6200 to NDIS6 driver to support Airmagnet WiFi Analyzer and Surveyor running in both 32-bit and 64-bit Windows 7/XP.
Enhanced and maintained the AirMagnet NDIS protocol driver that is an intermediate driver between application and 802.11 a/b/g/n driver for each supported Atheros 802.11 a/b/g/n chip.
Senior Software Engineer, 08/2007
to 01/2009 F5 Networks, Inc – Santa Clara,
Developed a CoNDIS VPN driver to tunnel PPP HDLC frame as well as non-PPP HDLC frame over Secure Sockets Layers(SSL) for SSL VPN client running in 32-bit and 64-bit XP and Vista.
Implemented a rule-based QoS service which shapes the outgoing traffics for VPN client and employs RPC (remote Procedure Call) to communicate with ActiveX dialer to initialize and load service flows and filtering rules.
Senior Software Engineer, 06/2005
to 07/2007 Azaire Networks Inc – Santa Clara,
Developed the WiFi and WAN NDIS intermediate driver for Windows Mobile device (WinCE) to perform the call handoff between 3G and WiFi as well as to resolve the NAT traversal issues found in APs and UDP block problem found in firewall for SIP VoIP using hole punching, UDP and TCP tunnel.
Implemented driver interface APIs and supported routines for Windows Mobile device (WinCE) to allow the VoIP application to control the NDIS intermediate driver, manage adapter's IP address, routing table and detect the power transition state as well as the connection/disconnection of a network.
In Charge of developing a NDIS WLAN intermediate driver and a virtual Ethernet NDIS driver with stream interface for Windows Mobile device (WinCE) to support various types of SIM based authentication
Senior Technical Manager, 12/2003
to 05/2005 Micro Start International Corp – Taipei,
Administered training, documentation and presentations that covered the topics of driver development, OS core concepts, and application development for WinCE to newly hired engineers.
Managed a staff of sixteen engineers to develop embedded software including applications and device drivers for Portable Media Player running in WinCE 5.0 and my tasks included project assignment, project schedule control and designing software architecture.
Led a staff of six engineers to architect and develop a Connection Wizard for 802.11 (Wi-Fi) using MFC to support multiple chips from different vendors.
Senior Software Engineer, 06/2000
to 07/2003 Aperto Networks Inc – Milpitas,
Worked as a protocol developer to implement and modify networking protocols including NAT, PPP, PPPoE, L2TP, DHCP (server, and relay agent), packet classifier/IP filter, IPSec for fixed broadband wireless products (802.16) under vxWorks.
Developed a provisioning server providing the integrated service of TFTP server and configuring DHCP server using socket programming in MFC/C for WIN200/LINUX to facilitate the job of installing and configuring Aperto's wireless network devices.
Senior Software Engineer, 03/1999
to 05/2000 Network Associate Inc – Santa Clara,
Designed and implemented NDIS protocol driver, NDIS miniport device driver and I960 embedded firmware for Xyratext Gigabit Ethernet to generate network traffic for an Ethernet Sniffer.
Developed a NDIS miniport driver for a null modem cable to connect two PCs point-to-point.
Project Lead, 03/1997
to 02/1999 Davicom Semiconductor Inc – Sunnyvale,
Oversaw and tracked the progress of the software development for Daviocom's 56K modem chip to ensure adherence to critical path.
Ported TCP/IP, UDP, and PPP protocols to the modem controller for a stand-alone VoIP phone.
Implement and modified existing serial port driver to evaluate the feasibility of developing the software modem for Davicom's 56K modem chip.
Senior Software Engineer, 06/1995
to 02/1997 Innomedia Inc – Santa Clara,
Developed a NDIS 3.1 WAN driver for an ISDN adapter running on Windows 95/NT.
Developed an intermediate Telephone Service Provider Interface (TSPI) and NDIS protocol driver in Windows 95 to support the voice data on an ISDN adapter.
Software Engineer, 09/1992
to 05/1995 Creative Labs Inc – Milpitas,
Developed audio and MIDI driver in Windows 3.1 for Port Blaster.
Developed a VxD for Blaster in Windows 95 to emulate DMA and I/O of Sound Blaster providing compatibility to run sound applications under V86 mode.
Modified an existing NT kernel mode sound driver for Sound Blaster Pro.
Software Engineer, 09/1989
to 08/1992 Ahead System Inc – Fremont,
Implemented and maintained Windows 3.1, OS2 AutoCAD display driver for Ahead's 16/256 colors VGA chips.
Implemented VESA BIOS driver for super VGA modes provided by Ahead's VGA chip.
Maintained and enhanced the performance of the VGA BIOS.
Implemented a DOS TSR tools and utilities for TIGA3401 graphic adapter.
Master of Science: Computer Science,
1 1989 California State University - Chico,
California Computer Science
Bachelor of Science: Computer Science,
1 1986 Ohio University - Athens,
Ohio Computer Science