Tommy C. Lee
Home 425-***-**** Cell 425-***-****
E-mail: ******************@*****.***
______Objective______
A creative and energetic senior software engineer seeking challenging works
in an environment to make significant contribution to the development of
high quality software products.
______Competencies______
Software system design approaches
Object-oriented using UML. Structure analysis. System decomposition into
concurrent processes and inter-process communication mechanisms.
Software development methodologies
Agile/Scrum (Adaptive; Feature Driven; Dynamic Systems). Predictive.
Leadership skills
Project management (team organization; partners coordination; scheduling
and monitoring; release process). Engineering approaches (trade-off
analysis; risk assessment).
Source code control facilities
CVS. Perforce (p4v; p4win; p4 command-line). Microsoft Source Depot.
Programming languages
Scripts (Perl; bash; gawk; ms-dos batch). High levels (C/C++; Java).
Assemblies (x86; EM64T; ARMv5TE/ARMv6/ARMv7; Coldfire; MIPS64).
Microprocessor instruction set architectures
Intel (386/486/Pentium; Core; Atom; SIMD; Hyper-Threading; Multi-Core;
EM64T). ARM (Intel Xscale (IOP; IXP4xx); TI OMAP4; Atmel AT91; Freescale
I.MX35). Motorola/Freescale (mc68k; Coldfire). MIPS. Qualcomm BREW MP.
Hardware debugging and verification
Hardware debugger (oscilloscope; RF spectrum analyzer; logic analyzer;
ICE). Host/target debug interfaces (serial; Ethernet; JTAG). Devices
(Network (Ethernet; 802.11x); On-board (USB; TPM; PSU/UPS; IPMI; PCI-X; PCI-
E; SCSI; SATA; ISA; VME; RF interface; I2C; PS2; serial interface;
DDR/DIMM; ASIC (FPGA; CPLD)).
Software and firmware debugging and verification
Linux (GDB; OOPs+System.map analysis on kernel panic; /proc and /sys
debugging. KGDB remote kernel debugging. Memory leak detection and analysis
tools (mtrace; dmalloc; kmemleak). Stack overflow detection and prevention;
Ethtool coalescing for improving multiple Gigabit Ethernet networking
performance.
Windows desktop/server (kernel and driver debugging tools (windbg for crash
dump analysis; kd.exe). Device driver verification tools (devcon; verifier;
staticdv; devpathexer; prefast). WHQL/WLK (Device Test Manager). Windows
CE/Mobile (CETK; KITL; Remote Tools; Debug Zones).
Software/firmware development environments
Linux tool chains(x86; EM64T; ARM; MIPS); Eclipse and ADT and Android 2.2
SDK. Bugzilla. Linux Test Project. Linux Jbuilder. UNIX (vendor-specific
native tool sets; GNU Build System).
Windows (desktop/server (VS2008; WDK (WDM; KMDF); CE/Mobile (EMC++ 4.0 and
Platform Builder 4.2; VS2005 and Windows Mobile 5/6 Pocket PC and
Smartphone SDKs; VS2005 and Platform Builder 6.0 R2).
Multimedia components
Audio (HD Audio; AC97). Video (NTSC/PAL; 915G; 915GM; 945G; AGP; codec).
Wireless communications
Spread Spectrum Wireless DSU/CSU. RF spectrum analysis. EIA/TIA air
interfaces (553 for AMPS; 856 for EV-DO). 2G Wireless modem standards (GSM
7.07; TIA IS-707). 3G (IMT-2000) cellular communication standards
(UTMS/WCDMA; CDMA2000; HSPA). IEEE 802.11a/b/g/n (radio technologies;
protocol stack; security infrastructure (EAP; WEP; WPA; WPA2); WiFi
enabling and configuration in Fedora and Ubuntu Linux systems). Bluetooth
protocol stack and profiles.
Network communications and management
Enterprise networking features (SSL VPN security; load balancing; high
availability clustering; Unified Threat Management). Network SSL VPN
performance improvement and optimization. Ethereal, Wireshark and tcpdump
analysis of TCP/IP protocols (HTSP, Telnet, SNMP, FTP, TFTP, BOOTP, TCP,
UDP, IP, ICMP). USB 2.0 (device/driver stack; protocol). Automotive buses
(Canbus; Xanbus). NAT Travel.
System Engineering
Installation, modification and upgrade of GNU cross-development tool
chains. Management of Linux software engineering packages (RPM; ISO; DPKG;
patch). UBuntu 10.04 and Moblin 2.1 on ASUS Eee PC 900HA netbook.
Enabling of Linux system on Android platforms. Android SDK 2.2 installation
in Ubuntu(Android Emulator; AVD configuration; Android application
development). Linux 2.6 kernel (scalability; high availability; hypervisors
(Wmware; Xen; KVM)). Installation and configuration of Vmware in Debian
Etch system. On-chip virtualizations (Intel VT; Freescale; ARM TrustZone).
OpenWRT.
______Software Development Accomplishments______
Applications
Linux C/C++ (POSIX multi-threaded software (Game Boy Color console porting;
open source benchmark programs modification for measurement of storage I/O
performance).
Java (multi-threaded application of collecting audio clips into database
for audio analysis; RMI distributed application).
Windows Win32 (SNA gateway porting from Win16 to Win32; CE 4.1 Game Boy
Color console software porting; CE 5.2 SSL/TLS software porting)
UNIX perl script suites (7x24 non-stop monitoring of routers in cellular
communications infrastructure; software engineering from archiving, stage,
installation and customization). S
Middleware (framework)
Windows Embedded CE 6.0 R2 multimedia framework (Bluetooth SDP A2DP; Apple
USB protocol stack; CDROM; WMA DMO codec architecture; event notification
mechanism).
UNIX cross-platform SNMP Open Agent (Solaris; AIX; HPUX).
System level
Linux kernels (configuration, building, installation, optimization and
debugging; source code file system familiarity; multi-core/processor kernel
scheduling domain analysis and tuning; Stack overflow detection and
protection; interrupt handling and IRQ affinity adjustment; DMA memory
mapping).
Linux kernel mode device drivers (Fiber Channel HBA; multimedia (ALSA; STPC
CRTC(SVGA; NTSC/PAL); Tungsten; SiS661GX); Ethernet (E100; E1000; Marvel
Yukon (sk98lin; skge; sky2)); soft modem; ACPI (gas gauge; battery);
Yukon/PCIX and Yukon2/PCIE based NAPI MSI mode; PCIE Advanced Error
Reporting driver. Linux user-mode device drivers (protocol driver;
multimedia video driver).
Windows WDK WinDDK (WDM model NDIS5.1 (subsystem; miniport driver; virtual
driver); KMDF USB/HID filter drivers. Windows CE/Mobile (DIS5.1 (subsystem;
miniport driver; intermediate driver); audio and video device drivers; GDI,
Direct Draw, Direct Sound.
Firmware
Mc68K power on sequence test code; diagnostics code on digital circuit and
ASICs; x86 BIOS upgrade; ARM Redboot and Uboot modifications.
Windows CE/Mobile (Enabling of boot loader, KITL and OAL in BSPs (CE4.1
x86; CE6.0 AT91); HTC Apache ROM images customization and upgrading).
Real-time operating systems
WindRiver VxWork (Tornado tools set; programming, debugging and deployment
of device driver and multi-threaded software; system integration);
proprietary SVR4 System V streams based interprocess communication
mechanism. OSPF/RIP/BGP inter-networking protocols in network router
systems.
______Employment History______
Microsoft, Redmond, WA, (Contracted) Senior Software Engineer, 1/2010-
5/2010
Development of the Windows Embedded CE 6.0 R2 based Win32 multi-threaded
partner development kit for development of versatile automotive software
systems. Development system: Windows 7. Development tools:
VS2005/BP6.0/CETK. Target system: FreeScale I.MX35 multimedia platform.
Work items: kernel threads; device drivers; Bluetooth A2DP; USB; speech;
iPod (5G; Touch); iPhone; audio CD ripping; SBC codec. Mobile device types:
USB; Bluetooth; iPodTouch/iPhone; CDROM.
Medicis Technologies, Bothell, WA, (Contracted) Senior Software Engineer,
11/2009-11/2009
Development of the Windows Embedded CE 6.0 BSP for the. Development system:
Windows Vista. Development tools: VS2005/BP6.0/CETK. Target system: Atmel
AT91SAM9263 platform. Work items: kernel startup; audio driver; Ethernet
driver.
MindTree Inc., Redmond, WA, (Contracted) Senior Software Engineer, 7/2009-
10/2009
Development of the Windows USB/HID filter drivers as components of the
multi-user resource sharing software product. Development system: 64-bit
Windows Server 2008 R2. Development tools: WinDDK7600/KMDF 1.9; CoreXT;
Visual Studio 2008. Target system: 64-bit Windows Server 2008 R2.
WatchGuard Technologies, Seattle, WA, (Contracted) Embedded Software
Engineer, 10/2008-05/2009
Evaluation and selection of new multi-gigabit-LAN platforms to increase the
networking throughput. Development system: Debian Etch. Development tools:
GNU cross-development tool chains; Uboot; Redboot. Target systems: Core 2
Quad Q9400 based; IXP435 based. Work items: Linux 2.6.21.7 SMP kernel
scheduling domain analysis and tuning; experiment on the of LAN IRQs
affinity with BIOS; adjustment of the network driver NAPI MSI mode.
Enabling of the embedded Linux systems to support the development of the
enterprise the network Unified Thread Management (UTM) products.
Development system: Debian Etch. Development tools: GNU cross-development
tool chain; uboot; WatchGuard Perl and Python proprietaries. Target
systems: x86 based. Work items: configuration; building; image
creation/upgrading; debugging on 2.6.21.7 and 2.4.20 kernels. Network
device drivers: sk98lin, skge, sky2.
Identiprise corporation, Seattle, WA, Senior Software Engineer, 11/2006-
9/2008
Porting, verification, debugging and problem resolution of Win32 multi-
threaded Windows SSL/TLS WiFi and CDMA secured mobile wireless
communications software systems from Windows XPSP2 laptop to Windows CE 4.2
based devices .
Development of the Windows NDIS5.1 device drivers as a component of the
above software systems. Development system: Windows XPSP2. Development
tools: WinDDK 3790.1830; Windows CE 4.2 plus Embedded VC++ 4.0; Visual
Studio 2005 with WM5/6 SDKs for Pocket PC and Smartphone; HTC Apache ROM
Kit. Mobile devices: Windows XP SP2 laptop devices; Pocket PC 2003SE PDA
devices; Pocket PC 2005 PDA devices (THC Apache XV6700; iPAQ110 Classic
Hand held); Windows Mobile 5/6 Smartphone devices. Work items: ACPI
compliant device power management; Cryptographic of the Internet traffics
in the SSL/TLS network security tunnel.
TCP/IP network configuration and monitoring in Red Hat Fedoroa Core 8
system (DHCP; DNS; SSH; router); Analysis (etherreal; tcpdump) and trouble-
shoot on the TCP/IP protocols (HTTP; UDP; TCP; IP) in Red Hat Fedora Core 8
system.
Intel Corporation, Hillsboro, OR, Senior Software Engineer, 6/04-11/2006
Enabling of Linux systems on Intel desktop platforms. Platforms: IA32;
EM64T; Low-cost Affordable PC; Community PC. Kernels (2.4; 2.6):
configuration; building; installation; debugging. Device drivers: Ethernet;
graphics; HD Audio codec; ac97; USB; mc97; ACPI-compliant PSU/UPS; TPM;
Battery; software modem. Linux OSVs: Red Hat; Novell; Debian; Mandriva;
Ubuntu; Red flag; Ce2C.
Engineering works include: engineering project management (team leadership;
cross-company coordination); open source ALSA liaison engineering; BIOS
upgrade facility development; kernel patching, configuration, building,
debugging and kernel panic analysis; installation and rescue of OSV
distributions; Linux/platform gap analysis and filling; device driver bug
fixing, debugging, performance analysis and profiling; engineering
infrastructure scripts development; CVS source control; ACPI power
management; RPM, ISO and patch file managements; new-platform BIOS
validation.
Modification and enhancement of the open source POSIX multi-threaded
benchmark programs and conducted the storage device performance measurement
and analysis. Delivered the analysis results, which helped identify the
bottlenecks in the server storage I/O paths. Platforms: IA32; EM64T; AMD64.
Operating systems: Linux (Red Hat Enterprise Linux; SuSE); Windows Server
2003. Device drivers: Fiber Channel HBA; RAID SATA controller; RAID
Ultra320 SCSI controller. Benchmark programs: Iometer; Platune; SQLIO;
Linmark; Tiobench; Bonnie++; Dynamo.
Microsoft Corporation, Redmond, WA, (Contracted) Windows CE Escalation
Engineer, 11/03-5/04
Answered the questions and resolved the problems of Windows CE 4.2 OEM and
IHV on CEPC and Xscale platform: kernel memory leak detection; Socket code
debugging; NDIS device driver trouble-shooting; HTTP protocol analysis;
EVC++4.0 multi-threaded programming for system monitoring; Windows
Socket programming; PCI bus drivers loading; IEEE802.11a/b/g WPA/WEP
connectivity and authentication trouble-shooting.
Intel Corporation, Folsom, CA, (Contracted) Software Engineer, 6/03-8/03
Enabling and verification of Red Hat Redboot BSP developed for Intel Xscale
platforms. Platforms: IQ80310; IQ80321. Embedded Linux software development
tool chain: Red Hat GNUPro. Host/target debug interfaces: serial; Ethernet;
JTAG.
Nintendo of America, Redmond, WA, (Contracted) Software Engineer, 12/00-
2/03
From scratch development of embedded Linux Kernel 2.4.18 GBC emulation
subsystem on STPC for integration into in-flight entertainment system:
configuration, building, installation and optimization of Linux 2.4
kernels; programming and debugging ALSA 0.5.12 device drivers on ISA
SoundBlast16 card; programming and debugging the STPC CRTC for SVGA and
NTSC/PAL interfaces; Linux system integration on sound driver, VGA driver
and handset interface.
Porting of above GBC emulation subsystem to Geode/MediaGX board running
Windows CE 4.1. Work items: validation of BSP components (boot loader; OEM
Abstraction Layer) with board vendor; creation and modification of platform
features for building OS image; resolution of multimedia device driver
issues with board vendor (audio and video device drivers; GDI, DirectDraw,
DirectSound and porting of Win32 multi-threaded console game player in the
EVC++4.0 environment.
CantaMetrix Inc., Bellevue, WA, (Contracted) Software Engineer, 12/99-12/00
From scratch development of Java RMI server and client of a distributed
music-content collection subsystem as a part of music analysis system: web
crawler, URL-downloading of music content; music formats conversion;
Oracle8i SQL; building, installation, configuration and debugging of Linux
paudio module for automatic music format conversion from RA to WAV.
______Education ______
MSCS (minor in EE), Georgia Institute of Technology, Atlanta, GA
______Remarks______
Early years employment history is available upon request. References are
ready for check. US citizen. Business travel is acceptable. Bilingual:
Speaking English and Chinese (Mandarin).