Xiaoguang Dai is an experienced embedded software engineer with over 10 years of experience developing device drivers and firmware for Linux operating systems. He has expertise in C programming and knowledge of ARM, PowerPC, and MIPS architectures. Dai has worked at several companies developing embedded software, including Intel, Atheros, Sun Microsystems, and Delta Networks. He has a master's degree in computer science and proven experience developing drivers for technologies like USB, SCSI, flash memory, I2C, and JTAG.
1. Xiaoguang Dai
Professional Skills
Expert C programmer
In-depth knowledge of ARM; hands-on experience with PowerPC and MIPS
Experience with embedded OS including Linux, Nucleus, eCos and ThreadX
Seasoned device driver developer for embedded Linux
Experience with USB, SCSI, Flash, I2C, UART and JTAG driver development
Experience using equipment such as oscilloscopes, bus analyzer and JTAG based
debugger (BDI/ICE)
Hands-on experience with board bringing up and bare metal programming
Proven veteran with 10 years experience developing under Linux environment
with GNU toolchain
Efficient with common programming languages such as C++, Java, and Python
Education
2013–2015 Master of Science, University of Oregon, Oregon, US.
Department of Computer and Information Science
GPA 4.05. Member of the UPE (Upsilon Phi Epsilon) honorary society.
2001–2005 Bachelor of Science, Harbin Institute of Technology, Harbin, China.
Department of Computer Science and Technology
Work Experience
2011.2–2012.8 Senior Software Engineer, Intel, Shanghai, China.
Built and delivered BMC firmware as a member of ECD firmware team. Intel
BMC is an ARM based embedded Linux system with high availability that runs
24x7. It sits on the enterprise server motherboard and enables customer to actively
manage and monitor the server independent of host OS state. In addition to what
are listed below, this position also covered all the responsibilities of what I had done in Sun.
Key efforts:
Platform owner of the Intel S1200BTL/BTM 1U rackmount server module
Led ODM engineers to deliver BMC firmware to customers and resolve their problems
Led the IvyBridge refresh program on S1200BTL/BTM server module, which is the
first occurrence in entire Intel server platforms
Took the initiative to build a micro BMC (uBMC) that consumes fewer resources than
full-featured one. uBMC is based on ThreadX and the entire software stack (driver
and application) is built from scratch to make it royalty free. Delivered 5000 lines
of product quality code with 50 pages documentation in 3 months, including board
bringing up, driver for UART, I2C and Flash, part of IPMI protocol stack, debugging
framework and some applications
1111 S Atlantic St. Unit 306 – Seattle, WA 98134
(541) 221 3259 • ender.dai@gmail.com 1/2
2. 2010.9–2011.2 Senior Software Engineer, Atheros, Shanghai, China.
Developed WIFI chip drivers for BSD/eCos.
Key efforts:
Took the initiative to bring up driver framework for eCos
2008.3–2010.9 Senior Software Engineer, Sun Microsystems, Shanghai, China.
Focused on ILOM System for x64 enterprise server product line. Sun ILOM is the
equivalent of Intel BMC, but some early generations are based on PowerPC and FPGA
instead of ARM.
Key efforts:
Maintainer of several rackmount and blade server modules
Delivered several major firmware updates of maintained products
Improved fan control algorithm that significantly lowered the false alarm rate
Developed some applications and integrated them with IPMI protocol to monitor sensors
connected to I2C bus on the motherboard
Implemented USB/SCSI driver and a Java application to redirect storage (USB stick,
floppy and cdrom) access through network. This is one of the core features of the
product
Firmware update and recovery, implemented flash device driver to support the feature
2005.7–2008.3 Software Engineer, Delta Networks, Shanghai, China.
Built layer 2/3 network switches and wireless routers for enterprise customers.
Key efforts:
Layer 2/3 switches based on PowerPC and Broadcom chips, running Nucleus
Wireless routers based on MIPS and Atheros chips, running embedded Linux
Took the initiative to port switch software stack from Nucleus to Linux running on
PowerPC platform
Developed GPIO and XFP fiber module driver for Nucleus and Linux
Other Experience
Android Ported a performance tool (TAU) to Android. Implemented Java bytecode injection
to collect performance data of Android apps. Obtained a good understanding of
Dalvik VM.
Python Built a Python package to setup and run application on HPC clusters, collect and
analyze performance data automatically. The package has 4000 lines of Python
and 1000 lines of C. It is currently used by a research group.
RPi & BBB Brought up and wrote several bare metal drivers for Raspberry Pi and Beaglebone
Black.
JTAG Created a homemade JTAG debugger by bit banging through a USB parallel port
adapter. The debugger is capable of re-programming flash chips and doing some
basic assembly level debugging.
1111 S Atlantic St. Unit 306 – Seattle, WA 98134
(541) 221 3259 • ender.dai@gmail.com 2/2