Senior Software Engineer Resume
Orange County, Ca
SUMMARY:
- Expertise in software development/debug for device driver(WDK) and (TCP/IP/UDP/Ethernet/WLAN)
- Expertise in Python/C/C++/C# test bench instrument/device drivers for ASIC/Emulation, SoC/board level verification
- Expertise in Robotics/Image Processing/Audio/Video/RF/Ethernet/FC/PCIe/BT/802.11 software development/test
TECHNICAL SKILLS:
Languages: C, C++, C# and Shell script, Python, Perl.
Operating Systems: Window7/8/10, Thread X, Fedora/Ubuntu/Centos Linux, Android, QEMU
Software Tools: OpenGL/CV, WCF, MATLAB, LabVIEW/TestStand, PCIe tree,WDK, Windbg, WinDriver, QT, LabWindow/CVI, Broadcom Broadband Studio, ClearCase/Perforce/GIT/SVN, VMware, Oracle 11g, SQL, Agile, JIRA/Bugzilla, Putty, PyCharm and Jenkins, Qualcomm Emulation VM.
Instrument/Bus: DMM, Keithley Switch System, Logic/Spectrum Analyzer, Digital/Analog Oscilloscope and TV/RF Signal Generator, JTAG/BDI3000/Lauterbach, RS232/422/485, PCIe(Gen3), USB3.0, I2C/SPI, UART, HDMI, Bus Analyzer GPIB/Ethernet, TCP/IP/UDP, TFTP, 802.11, DOCIS3.1, AR INC, MID - STD-1553/PC104 etc.
PROFESSIONAL EXPERIENCE:
Confidential, Orange County, CA
Senior Software Engineer
Responsibilities:- Develop Xilinx FPGA and embedded software (drivers and OpenCV) for video processing (C/C++ for interrupt, register, DMA/DDR, 64 bits address), Window 7/10 device driver (WDK/VS 2015) development for PCIe card to integrate GPU based AI products.
Confidential, San Jose, CA
Senior WLAN Software and Systems Enginee r
Responsibilities:- Work on Physical/Mac layers of 802.11 Wi-Fi (11ax for both 2G and 5G bring up) validation software and integration team. Major works include verification, integration and infrastructure development, PCIe based pre-silicon and post silicon emulation tools.
- Develop Python/C/C++ based software framework/driver to verify FPGA based emulator for 11ax on Linux/Android. Lauterbach JTAG debugger (Trace32) is used to verify and validate SoD.
- Python device driver development with PyCharm. Integrate host based emulation firmware with 802.11 WLAN protocol (TLV parser, Tx/Rx, packet, registers read/write, IO, Queue and scheduler call back functions etc.) verification. C/C++/Python (Visual Studio 2013/PVTS and PyCharm IDE) socket programming for client-server based software development for the Wi-Fi nodes for the pre-silicon verification and validation.
- Jenkins/Python regression test framework have been developed on window/Linux virtual machine for regression/smoke/bring-up test of 11AX radio functions (RSSI, Throughput, Memory, Clock/Reset, FTPG and Tx/Rx etc.) where host firmware codes for CPU/Memory/IRQ/Timer on shared codes are built (Create images for Ubuntu Linux on Jenkins window and Linux builds),
- Write makefile and Python functions, Integrate code changes with updated image on Perforce. Wireless SoC hardware characteristics/debugging using NI PXI 1085 and NI scripts are performed for post silicon FW validation, automation and regression.
Confidential, San Diego, CA
Staff Software Engineer
Responsibilities:- Work on embedded diagnostics software development(C/C++/C#/CVI/Python) for IP Set Top Box(STB) at chip/board/device level. Develop middleware with firmware teams to DFM/DFT of video/audio/wireless modules.
- Create instrument drivers and DLL (I2C, USB, Serial, Ethernet, DMM, Switch, HDMI, IR, NI audio drivers etc.) and PCIe cards video/audio and libraries on Window 7.
- Develop/debug C/C# based manufacture framework and network protocols (TCP/IP/UDP, DHCP and TFTP) and test equipment (Linux based Wi-Fi golden unit, IR sensor, Bluetooth dongle etc.), IP, drivers and SQL for Foxconn and GemTek.
- Develop diagnostic and application software (TestStand/LabVIEW DLL/C#) on automatic test stations for kernel loading via DHCP, IP check, customer firmware/device verification, functional DUT station.
- Develop software tools(I2C) via JTAG for loading boot loaders(BOLT) of Broadcom/Quantenna chips and drivers/API, Create Linux (Ubuntu) based MTC (manufacture test code with Linux kernel programmable BIST) and configure customer firmware for IP STB, programming manufacturer data (chip ID/Security/Mac, Security keys etc.), debug(serial port)/test firmware functions: memory, NAND flash, video/audio, LED, HDD, USB, Bluetooth and wireless protocol (Paring, RSSI, Iperf, EVM and Throughput etc.).
Confidential, Costa Mesa, CA
Staff Software Engineer
Responsibilities:- Develop C/C++ window based (win32/64 bits on win2003/win 7 manufacturing diagnostics software for PCIe based network storage adapters (Fiber Channel HBA) with Visual Studio 2010/12. Create DLL for Oracle and SQ; Develop window MFC based multithread software with Windriver/Miniport drivers for PCIe based HBA at Flextronics:
- Complete 64 bits’ low level PCIe C/C++ API library for HBA/Fiber Channel using Windriver develop tool; Complete Window DOS based FRU (Field Replace Unit) module on I2C bus for programming PCIe boards.
- Debug/test window 7 based 64 bits’ test software with 9 slots PLX board for PCIe HBA or single slot VME board for testing multiple PCIe on the controller, the programming portions include window network programming, TCP/IP between controller and slave computer with 64 bits Windriver for PCIe HBA.
- Develop 64 bits manufacture window test software(C/C++) for PCIe host bus adapter (HBA) of single/multiple ports and boards. Primary functions include device information (PID/VID, model/serial number, context memory, DDR memory, Seeprom test, Flash ROM CRC, ARM core, PCIe loopback tests). firmware download (EEPROM, Flash, VPD,IPL,VMT, UFI), PLX (bitmap for device information), I2C/SPI test; MAC/WWPN address configuration, checksum, write Oracle/SQL; Modify DOS base and Window DOS(Windriver) diagnostic software utilities(C/C++), download Rom image, update MFG sector (serial number, VPD, IPL and Mac/WWPN) and firmware based testing.
- Develop console base utilities (C functions) to configure/change EEPROM binary low level bit information (device address, register address, memory location) for manufacturer bits data via I2C or device driver.
- Visual Studio 2008/2010 C/C++ WDM/NDIS and socket programming on PCIe network adapter and NIC(Miniport); Debug (WinDebug) and diagnostic WDM driver and test programs (Python 2.7, Swig 2.0, Perl and boost C++ library 1.41); Debug the IP based protocols (TCP/UDP/IP, AAL5, ATM, QoS, SONET and bridge RFC1483/2684, RFC1577 packets etc.) using multithread programming for 32/64 bits.
Confidential, Irvine, CA
Senior Software Engineer
Responsibilities:- Develop advanced diagnostics software tools (device driver, libraries, utilities and tools) on window and Linux for embedded Linux devices (IFE audio/video/RF and network devices). Create Colinux/QEMU and VMware based emulators and network adapter drivers on windows for downloading both low level (CPLD/FPGA, BIOS, Linux Kernel, Root file system, IP sequences and compact flash etc.) and application software (Cores, databases and customer software) into Linux based display and network devices. Write diagnostics software, update protocols, libraries using C/C++/LabVIEW/Python/Linux scripts on windows/Linux for verifying Linux based devices (video, audio, LCD, Ethernet and RF etc.) functionalities for production.
- Develop Ethernet over USB window driver using QEMU emulator for passenger control unit, USB HID driver((LibUSB).
- Download low level software driver under Colinux/bootp/tftp/nfsexport and VMware for the display units; Update Linux based Colinux for software download, interface with LCD controller, IrDA sensors, and Ethernet; Modify BIOS (I2C, Memory, Flash and LCD etc.) for boot loader kernel/RFS flash programming on the processor.
- Develop/Debug (GDB debugger) software (BIOS and low level kernel) download method, libraries and Linux script for testing RF/Video/Audio/Ethernet/ARINC429/Boot Partition; Develop Test Program and Linux scripts for integrating ATP software and customer software (database, video stream and media etc.) for Linux based display LRU and passenger control units; The works include to modify the instrument drivers for digital and Analog and network adapter, develop DLL (TCP/IP, Ethernet, FC and VLAN)
Confidential, Los Angeles, CA
Senior Software Engineer
Responsibilities:- Develop USB type of host driver (bulk, interrupt, I/O control, DMA and HID etc.) using DDK/WDM for game printer. Update PID motor control/image processing/USB firmware on Thread X & Multi debugger for ARM processor.
- Write diagnostics tool for testing USB 2.0 driver; Developed Win32 based USB driver, stack/protocol DLL and RS232 protocol for firmware/software download and device testing using Visual C++.
- Linux based diagnostics software/driver (Kernel space for load driver, create partition, ramdisk and (Makefile) for PCIe backup memory card, verify the kernel driver (PCI addressing for BAR, CST, BIST etc. DMA/Interrupt, partitions, IOCTl, read/write and error handle etc.), Modify Linux based diagnostics software (user space for read/write for 8/16/32/64 bits, memory location, error control, I/O control) of the PCIe card, for testing battery, LED, power, and disk etc.
Confidential, Los Angeles, CA
Software Engineer
Responsibilities:- Develop and tested the instrument drivers using CVI (C/C++) compiler and IVI architecture for VXI Plug Play type of AC Power Supplies of the avionics support equipment under DO-178B. Integrated graphical interface, function panels, and static/dynamic linked library (DLL for C/Atlas) for GPIB based protocol with instruments (PCI Analog/Digital I/O, DMM, USB, ISA, MIL-STD-1553 etc.).
- Provide support for TPS programs for the USAF C-17 Teradyne test stations. Other projects included to design software and instrument drivers (CVI and PCI window driver) for telemetry control (PC104 based I/O control) and radar systems firmware.
Confidential, Alabama
Software Engineer
Responsibilities:- Develop new FFT/Reversed algorithm using LabVIEW 6.1 to reduce the EPAS raw data for 80% of PC based ATE; Write new LabVIEW 6.1/Vb.net for integrating the controller, Motorola 568xx DSP microprocessor (using CodeWarrior), GPIB, Cognex vision/Bar Code, USB, HP power supply and other sensors and drivers on Window 2000 platform;
- Develop C/CVI software for PC-based test equipment (DMM, Switch, HP circuit board tester, TTI Testron, Electric Compliance Analyzer, I/O DAQ, Relay and Power Box, Position sensors, GPIB etc.) for the automatic device; Develop Windows 2000/XP kernel mode driver (WDM) using Driver Studio 3.1/DDK for X-scale based high speed DMM PCMCIA card; Worked on Window CE/Linux based device driver and DLL for test and measurement card.
Confidential, Long Island, NY
Software Engineer
Responsibilities:
- Work on software development C/C++ such as: writes software to PC platforms and embeddable into custom modules with RTOS and DSP on PC buses (PCI/ISA) for robotics.
- Develop C/C++ API for multitask motion control boards. Extended motion control driver library programs between DLL, low level PCI driver and test fixtures.
- High order high pass/low pass/notch filters design for DSP algorithm. Design new high order FIR/IIR and notch filters for PID controller and firmware.
