Summary
Overview
Work History
Education
Skills
Timeline
Generic

David Choi

Cupertino

Summary

  • Extensive experience: long and impressive career in embedded software development, spanning various industries and technologies.
  • Strong technical skills: expertise in Linux kernel, bootloaders, device drivers, networking (Ethernet, IPsec, VoIP), and various SoCs (ARM, MIPS).
  • Quantified achievements: High performance product development experience.
  • Open-source contributions: Contribution of 2 patches to Linunx opensource community.

Overview

39
39
years of professional experience

Work History

Principal Engineer

Commscope
02.2020 - Current

TPM2.0 device driver & relevant application
-In QCA9574-based Wireless AP, bring up the OPTIGA TPM SLB 9672 device
-Ported relevant applications from GitHub(tpm2-tss, tpm2-tss-engine, tpm2-abrmd) to OpenWRT platform
-Added a feature to protect TPM2.0 device hierarchies by password
-Build a firmware update application
-Build tpm2.0 key programming toolset
-Made a scheme to program RAS 2k and 3k key
-TPM2.0 key access by key handle with Strongswan in gateway-to-gateway configuration network
-Adapted applications including curl library to access the TPM2.0 device

LLDP porting & power management
-Ported opensource code to QCA9574-based Wireless AP
-Implemented Customization works
-Added feature to support 802.3BT and UPOE(Cisco Proprietary Standard)

EEE(Energy Efficiency Ethernet)
-Ported an application from Marvel(former Aquantia PHY) for EEE, and developed the kernel patch for EEE.
-Implemented kernel/application patch for QCA803X/808X EEE under QCA SSDK platform
-Implemented kernel code for Airoha PHY EEE under the QCA SSDK platform
-Used ethtool to manage EEE

Ethernet 1G PHY driver porting & adaption
-Ported/Adapted the PHY driver under the QCA SSDK framework via the MDIO bus
-Implemented the force mode
-Hooked up to ethtool to manage PHY device

IPC over ZMQ and proto buffer
-Maintained ZMQ-based IPC among threads and processes with messages defined in proto buffer
-Developed a feature named "configuration archive" to supervise the system status

Memory leak detection & application crash analysis
-Maintained/updated the in-house tool to trace the stack to get the dynamic allocation memory during the run-time
-Traced/fixed all Glibc APIs that allocate a chunk of memory block internally whenever they are called by applications
-Traced un-matched file handle APIs of popen/pclose, fopen/fclose, and open/close in ICX switch family source codes
-Familiar with Glibc

Principal Engineer

Broadcom
02.2014 - 10.2019

Experience Feb 2014 - Oct. 4, 2019 Broadcom Inc.
Principal Software Engineer
32/64 bit ARM-based SoC North StarPlus (NSP) / Northstar2 (NS2) development
-Patched Linux crypto driver for hardware crypto engine for encryption/authentication for IPSEC. Experienced to work with Linux IPsec, Crypto and XFRM.
-Improved the performance of Broadcom crypto driver by implementing polling mode.
With the improvement, we could reach 38Mbyte/second when reading data from an encrypted Network Attached Device(NAS) device over a 1Gbps network.
-Tested/debugged with Internet Security(IPsec) application(RFC4303) on the top of Open Data Plane(ODP) reaching a wire rate of 10Gbps along with Strongswan for automatic key exchange.
-Implemented to convert the Little Endian(LE) bootloader(uboot and ATF) to BE mode.
-Implemented packet manipulation by firmware running on a microcontroller (ARM R5) in front of the main processor to reduce the main CPU load while increasing packet processing speed.
-Implemented MMC driver in ATF. Familiar with storage devices(SCSI. MMC, USB) in uboot.
-Worked with Yocto/Buildroot.

10 Gbps Ethernet switch (Robo2 or Avenger) Development
-Experienced in bringing up a reference board of the switch reference board with internal GPHYNIPER/EAGLE PHY and with an external PHY(BCM542xx).
-Experienced to control 10M/100M/1G/2.5G/10G Ethernet PHY.
-Experienced in accessing registers of Ethernet devices via SPI interface.
-Tested/debugged controlling TCAM for manipulating Ethernet data at MAC/IP/TCP/UDP level.

Staff Software Engineer

Microchip
02.2005 - 02.2014

Voice Over IP development

-Built u-boot and Linux kernel on MIP32 Little Endian board from u-boot/Linux open source.
-Built toolchains and ramdisk from Buildroot.
-Developed drivers(Ethernet network, serial port, Interrupt controller, timer interrupt, voip driver) on MIPS VolE board.
-Developed ATA(Analog telephone adapter) drivers(SiliconLab Si3226x/Si3217x SLIC with I2C interface for control data) to support 1/2 analog phones in Linux kernel and call
features and timer handler in the application layer. Ported caller ID function from chip vendor to ATA board.

SoC & Ethernet controller software development
-Developed USB host controller driver(USB 2.0) and device driver(USB 2.0) on ksz8692 SoC.
-Ported eCos, which is a small footprint real-time OS, on the ksz8695 board and implemented ksz8851 Network driver.
-Ported both PCI-based Wifi AP driver from RaLink and wireless tools from open source toksz8695.

Sr. Engineer

Broadxent
06.1999 - 02.2005

Developed ADSL modem & router(BritePort) under Atmos, which were sold to America On Line(AOL).
-Ported the ADSL modem driver from the chip vendor(Virata) on the ADSL modem/router boards.
-Developed IP-based webcam. Did porting USB Webcam driver to the platform.

Manager

Samsung Electronics
12.1984 - 10.1998

Development small-size to medium-sized PBXs (Private Branch Exchange) & Wireless microcell
-Led a team to verify functions in the PBX system.
-Led a joint project with SK Telecom to design a microcellular network CDMA BTS(Base Station System) sponsored by the Korean government.

Education

Bachelor of Science - Avionics

Korea Aerospace University
Seoul, Korea
01.1985

Skills

    -To bring up embedded systems from scratch from boot code to root file system and Linux kernel
    -To bringup peripheral devices(USB, PC1e, SPI, I2C) to SoC
    -Familiar with voice networks and data networks
    -Familiar with Wireshark and in-house traffic generator implementation
    -From high-level language to assembly language are available
    -Working experience with ARM, MIPS, and Intel Platform

Timeline

Principal Engineer

Commscope
02.2020 - Current

Principal Engineer

Broadcom
02.2014 - 10.2019

Staff Software Engineer

Microchip
02.2005 - 02.2014

Sr. Engineer

Broadxent
06.1999 - 02.2005

Manager

Samsung Electronics
12.1984 - 10.1998

Bachelor of Science - Avionics

Korea Aerospace University
David Choi