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.
• 11 years of experience of successfully designing, developing & implementing web based application in Java/J2EE technology.
• Currently employed as a Technology Lead in Infosys Ltd. With active involvement in development & integration of web based applications using WebLogic Server 10.3, WebSphere Application server 7.0 and multi-tier technologies like Struts, Spring and JSF with Oracle as back-end.
• Handled various aspects of software development including Effort Estimation, Designing, Prototyping, Development, Testing, Release, Documentation, Monitoring and Support.
• Participates in discussions with customers to gather scope information and performs analysis of scope information in order to provide inputs for project scope documentation.
• Provides inputs on process tailoring and quality goals in order to finalize project quality plan.
• Participates in requirement elicitation process defined in the project management plan to identify requirement gaps/issues (both functional and non-functional) in order to come up with a comprehensive requirement docu-ment.
• Performs high and low level design, Provides pseudo codes, Implements the prototype and does design reviews in order to deliver design documents as per customer requirements.
• Participates in architecture review sessions to provide inputs to architecture team through framework analysis, de-sign patterns, prototype specifications in order to be able to create High level design specification.
• Participates in KT sessions, prepare and review system appreciation documents, understand application / system / infrastructure dependencies, perform shadow support in order to complete transition.
• Good interpersonal, communication and presentation skills with ability to work in team with diverse background. Strong analytical skills along with strategic knowledge in implementation of Business Logic. I have played a vital role in the team in size from 5-15 people.
• 11 years of experience of successfully designing, developing & implementing web based application in Java/J2EE technology.
• Currently employed as a Technology Lead in Infosys Ltd. With active involvement in development & integration of web based applications using WebLogic Server 10.3, WebSphere Application server 7.0 and multi-tier technologies like Struts, Spring and JSF with Oracle as back-end.
• Handled various aspects of software development including Effort Estimation, Designing, Prototyping, Development, Testing, Release, Documentation, Monitoring and Support.
• Participates in discussions with customers to gather scope information and performs analysis of scope information in order to provide inputs for project scope documentation.
• Provides inputs on process tailoring and quality goals in order to finalize project quality plan.
• Participates in requirement elicitation process defined in the project management plan to identify requirement gaps/issues (both functional and non-functional) in order to come up with a comprehensive requirement docu-ment.
• Performs high and low level design, Provides pseudo codes, Implements the prototype and does design reviews in order to deliver design documents as per customer requirements.
• Participates in architecture review sessions to provide inputs to architecture team through framework analysis, de-sign patterns, prototype specifications in order to be able to create High level design specification.
• Participates in KT sessions, prepare and review system appreciation documents, understand application / system / infrastructure dependencies, perform shadow support in order to complete transition.
• Good interpersonal, communication and presentation skills with ability to work in team with diverse background. Strong analytical skills along with strategic knowledge in implementation of Business Logic. I have played a vital role in the team in size from 5-15 people.
Embedded Linux Engineer, Linux BSP engineer. Particularly MIPS & ARM architecture, know well about the Linux driver model and the common device driver subsystem(Platform, Serial Port, I2C, PCI, hwmon, backlight, input/hotkey, USB...) and also the common core subsystem(Interrupt, Scheduler, Clock, PM...), Memory management, have rich experience on requirements estimating, defects analyzing and fixing.
* RTOS Engineer, Particularly porting and debugging. Have experience on porting Preempt-RT patches to ARM Cortex A9 board, including latency measurement, analyzing and reducing. Have experience on porting the real time tracing tool(FTrace, Perf, LTTng) to ARM architecture. Have experience on safety critical real time research and development. Experience in porting LINUX to ARM based platforms like Cortex A8, A9, PB11MPcore etc
* Device Driver Development Engineer, Wrote USB driver, Ethernet driver, Battery driver, sensor driver.
* Good exposure in solving deadlock, memory corruption, target hung, backtrace and OOPs.
* Good exposure in Atheros (Ath5k/9k) driver development, OpenWRT, Hostapd, TCP/IP Linux stack, IEEE802.11 protocols like a/g/b/n/c/w, Roaming, OKC.
Specialties: * Linux, Ftrace, Perf, LTTng, FPGA
* Ubuntu, Debian, CentOS
* KVM and QEMU
* C, Assembly, Shell, Python
* X86, MIPS and ARM
* 802.11
* TCP/IP Linux stack
* GNU Toolchain, Cscope, Vim, Make, Qemu, Busybox, Buildroot, Openembedded
* Git, SVN, CVS, HG
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