Firmware Development Engineer Resume
Menlo Park, CA
PROFESSIONAL SUMMARY:
Extensive experience in embedded systems programming, data storage, data communication, data acquisition, process control and monitoring with structural and OO design. I am team player who can adapt to different types of work and environment in full product lifecycle.
TECHNICAL EXPERTISE:
Programming Languages: C/C++, ASM, Python, Expect, PHP, HTML, JavaScript
RTOS: VxWorks, OSE, Nucleus, Linux
Target architecture: SoC ( OMAP, Qualcomm MSM/CSM), CPU (ARM, PowerPC, ColdFire)
Development platform: UNIX (Solaris), Linux, Windows
IDE: Code Composer/MS Visual/Atmel Studio, Tornado, TRACE32, Xtensa Xplorer, Virtio, MySQL
Lab Tools: Logic/VME/USB/PCIe AnalyzerFrontline Sniffer
Methodologies: Structural Design, OOD/OOA
PROFESSIONAL EXPERIENCE:
Confidential, Menlo Park, CA
Firmware Development Engineer
Responsibilities:
- PBL (Pointing By Light), LED and servo - mechanism laser beam pointers (C, PSoC Creator).
- Enterprise Architecture document design.
Confidential, Fremont, CA
Sr. Firmware Development Engineer
Responsibilities:
- Xtensa Xplorer, host side (CentOS 5.11)
- OCD, utilities and administration application target side (CentOS 6.5, Windows7)
- SSD drive board bring-up (PMC PCIe/NVMe controller)
- Meta partition utilities design (FW and Super Block images read/write)
- Debugging stubs design (Flash Channel, target, LUN, block, page access)
- Secondary boot loader commands design (FW and Super Block read/write).
- Flash interface initialization design ( SLC/MLC, Toggle DDR 2.0)
- SMBus interface set up and application code design (PCIe, NVMe, CAR bus access).
- PCIe/NVMe Windows/Linux driver design (C, Visual Studio, WinDbg, Eclipse, GDB)
- Power management and feature set/get support
- I/O and IOCTL request support
- UEFI Windows development environment set up (Visual Studio, EDK ||, C)
- Firmware development constraints solution.
- Overlay design improvement
- Priority based wear leveling algorithm improvement Test software design (Python and C)
Confidential, Woodinville, WA
Firmware Engineer
Responsibilities:
- Power management software design (Atmel controllers AVR32UC, ARMSAM4S)
- Confidential pins and interrupts programming
- Bluetooth/USB transport testing
- Code modularization and testing
Confidential, Folsom, CA
Software Engineer
Responsibilities:
- Flash file system operation transaction safe PLR feature implementation
- Power loss data formalizing using log file mechanism
- File system recovery reversing interrupted operations
- Disk check and error corrections
- Hash table search algorithm
- CRC32 based hash table design (API, callbacks, internals)
- SCFS API modification to conform hash table search algorithm
- SCFS kernel modifications to conform hash table population and callback parameters
- NFTL debugging (Wear Leveling, Garbage Collection, Bad Block Management)
- Performance and memory usage analysis; porting to Nucleus OS
- Test points requirements design and PCIe analyzer setup (LeCroy)
- Board bring-up, performance testing and data processing
- Reliability software architecting and design
- Linux PCIe/NVMe driver modification
- Set of PCM die test mode access utilities
- IO Performance software design (C, Windows, Linux, MySQL, Vdbench, Fio)
- MySQL client application software design
- Data modeling and database schema design
- Benchmark tool run, data generation and database tables population
- Database driven website design (Apache, PHP, HTML, JS)
- Server side database data transfer (AJAX/JSON)
- Client side data processing and charting (jQuery, Highcharts)
- IO Performance code formalization and integration
- Data modeling (IO and database)
- Linux multi-threaded event driven native asynchronous IO test design
Confidential, Petaluma, CA
Sr. Software Engineer
Responsibilities:
- Code building system modification to conform OSE 5.2
- GCC 3.4.4 compiler collection build and testing
- BDI3000/GDB ICE tool setup
- PPC405GP memory management programming
- BSP PPC405GP hardware abstraction layer design to conform OSE 5.2
- OSE 5.2 kernel initialization configurations
Confidential, Dallas, TX
Software/Firmware developer
Responsibilities:
- Confidential serial communication design (retrieve all available COM ports/baud rates)
- Cryptography software design using OpenSSL toolkit
- Message digest, asymmetric keys and signature generation (SHA, RSA)
- High security application signing and image formatting
- NOR, NAND, OneNAND flash drivers design
- Mobile DDR SDRAM configuration
- U-boot loader building (internal/external versions)
- LCD driver design (OMAP2430, Himax HX8312-A)
- USB OTG driver design (OMAP2320)
- Board bring up testing and debugging
- Serial command communication to U-boot Linux loader (Expect)
- Linux kernel (Monta Vista) OMAP image build and download (Ethernet, TFTP)
- Loading test application and run.
Confidential, Richardson, TX
Software/Firmware developer
Responsibilities:
- Confidential (Firmware Over The Air) software design.
- Cellular mobile station firmware update download
- Cellular mobile station OMA DM protocols
Confidential
Software/Firmware developer
Responsibilities:
- Gateway system software development and design (MCF5282)
- Boot program, memory management and peripheral initialization
- Kernel initialization, task switching and scheduling
- Data link layer design (Serial Communication, Ethernet)
- TCP/IP stack design
- Protocols design (IP, TCP, UDP, ARP/RARP, PHY)
- Sockets design
Confidential
Firmware Engineer
Responsibilities:
- VISA single/multithreaded protocol state machine design
- Transactions processing (TCP/IP, PPP)
- Micronode VISA protocol state machine simulation on the PC
Confidential
Firmware Engineer
Responsibilities:
- BSP design (h/w initialization, bootstrap)
- Confidential driver design (SCC1, I/O)
- MODBUS protocol implementation
- Confidential Flash device driver design (AMD)
Confidential, Boston, MA
Sr. Software Engineer
Responsibilities:
- Server controller multi-shell parser debugging and update
- CLI debugging and modification ( commands)
- RPC processes debugging ( Ethernet client/server requests)
- Debugging server-module UDP/IP socket communication (VxWorks UDP primitives)
- Line module Confidential debugging and modification:
- Performance monitoring software enhancement as per GR-253
- Cooling module control MPC860 I2C driver debugging and modification
Confidential
Software Design Engineer
Responsibilities:
- Bootstrap program design (MPC860, i960)
- VxWorks BSP modification and customization
- Qualcomm CSM, Xilinx FPGA formatter driver design (I/O BSP level)
- DMA channel programming (DRAM refresh)
- Synchronous serial communication MPC860 HDLC driver design
- Flash memory device driver and loader design
- UNIX utilities design for conversion of the binary FPGA initialization file to ‘c’ file format
- Script and make files design using cshell script language and software integration
- UML CEM subsystem design
- Documentation design accordingly to ISO 9001 standard
Confidential
Software Design Engineer
Responsibilities:
- DSP device driver design based on SHARP LH9124 processor (VME bus, VxWorks I/O)
- Board configuration and filter coefficients loading
- DSP board diagnostic software design, (SHARP LH9124, FIR, FFT)
- Beam forming, inverse beam forming, interpolation and filter coefficient generation
- Graphical presentation of FFT (X Motif)
Confidential
Software Design Engineer
Responsibilities:
- DS0A, DS0B, T1/E1 protocols encoding/decoding and protocol parser FSM design.
- VxWorks inter-task communication and synchronization; interrupt, semaphore and queuing primitives.
- System component description and programming (CDL language)