525 N 1150 E
Lehi, UT 84043
(801) 766-0918 (801) 897-0918
My dream job is being part of a small team build great embedded systems in C and assembly.
I'm one of the best embedded C and assembly programmers around. I can build tight, fast interrupt handlers for you, and am a master of working with an RTOS. If your product has performance constraints, limited memory resources, or tight timing, I'm the man for you. I'm an expert at C (have written over 200k limes), C++(50k), assembly (100k). Very good at VB and HTML. Greatly experienced with VxWorks on MIPS and PowerPC running in Xilinx FPGAs, as well as RS232, RS485, Ethernet, and internet protocols.
EDO Corporation Salt Lake City, UT (8/07 to Preset). Supervisor Glenn Courtright,
I participated in a team of three programmers that designed, coded and tested all of the firmware for a submarine sonar system. It was based on a Xilinx FPGA with an embedded PowerPC. I worked on the routines that interfaced to all the hardware devices attached to the FPGA, as well as the code to read and interpret a configuration file.
ClearOne Communications Salt Lake City, UT (4/05-8/07) 4/2005-8/2006
Engineering Consultant. Responsible for firmware development on Xilinx base uBlaze softcore processor. I configured the hardware and wrote software in C for a conference phone. Also worked on VoIP type phone equipment using the Telogy VoIP stack. The phone also used VxWorks for the RTOS.
* Designed the firmware update facility for the phone. It included CRC verification of the image on each boot and data comparison to insure the latest version was loaded.
* Helped with the web server back end with value updates.
* Worked with Xilinx FPGA (Spartan 3) to implement VoIP driven second generation phone. I created the project using the uBlaze processor along with several UARTS, SPI ports, and various GPIO to communicate with other processors and peripherals including an LCD and keypad.
Burk Technology Inc. Littleton, MA 4/2002-5/2006
Engineering Consultant. Responsible for all firmware development on transmitter remote control/industrial automation system based on 8051 processor.
* Designed the hardware and software to a small industrial automation system using the AT89C51RD2 processor with 32k of I2C serial EEPROM and RS485 multidrop interface.
* Designed, laid out the hardware and built the prototypes of the ARC-16 Web interface. This included layout under Protel verification of the design and the building of the first 6 prototypes.
* Designed, laid out the boards and built the prototypes of the GSC Web interface. This included all the hardware development and PIC software to support the functionality of the interface.
* Developed embedded Linux server. The server interfaced to an embedded transmitter remote control. The server ran on compact flash and used 1.5meg of space.
Q COMM INTERNATIONAL INC. Orem, UT 8/2002-3/2004
Engineering Consultant. Responsible for all firmware development on POS terminals and for hardware development of low cost terminal manufactured in China. Project manager for various software endeavors on the terminal leading 3-4 people.
* Designed and implemented embedded C code interpreter for QCOMM’s Qexpress 200 terminal. This was a ground up redesign including flash file system and all drivers for serial ports and printer.
* Implemented PPP/TCP/IP on the above terminal.
* Created a cross compiler to compile C like code into the byte codes the terminal understood. This created the user interface and functionality of the terminal.
* Obtained various certifications for the terminal allowing it to operate as a merchant banking terminal.
* Headed up team of 4 engineers on various projects which included architectural design and organization of task along with other managerial tasks.
Enterasys Networks Inc. Salt Lake City, UT 6/2001-4/2002
Sr. Software Engineer. Responsible for software development of company network switches and routers. This required knowledge of several protocols including TCP/UDP/IP/ICMP.
* Debugged various network functions on switch/router running Nucleus RTOS. This included routing and bridging protocols including UDP, TCP/IP, Spanning Tree, and Ethernet. All coding done in C.
* Wrote Java test routines to test company switch/router products. Including load tests, bridge protocol tests, and performance tests.
DoBox Inc. Salt Lake City, UT 9/2000-6/2001
Sr. Software Engineer. Responsible for converting company application over to a small embedded system running OpenBSD. Was involved in Web page administration of the product.
* Headed up a team of 3 programmers which wrote the interface for a domestic firewall/gateway. The interface was web based utilizing PHP, Apache, and PostgreSQL.
* Created a single disk firewall/router from OpenBSD the most secure version of Unix.
Gentner Communications Inc. Salt Lake City, UT 3/1992-9/2000
Sr. Software Engineer. Responsible for embedded software design and implementation of company products. This included DSP development in assembly language for audio processing used in teleconferencing equipment. Also worked on TCP/IP network for embedded products.
* Implemented TCP/IP stack on an embedded 8051 system. Created an HTTP server utilizing the TCP/IP stack to allow web administration of the embedded system.
* Designed, developed, and documented the firmware for a radio broadcast transmitter remote control.
* Created audio processing equipment using DSP’s that used sub-banding to take 8k hertz of audio and split it into three bands to ship down three phone lines. Then reassemble it on the other side.
* Have controlled the adaptation of Finite Impulse Response filters using Neural Networks. This required the detection of the caller audio and absence of near end caller to correctly adapt the filter.
Unisys Inc. Salt Lake City, UT 6/1981-3/1992
Software Engineer. Responsible for custom changes to company hardware including firmware changes to terminal equipment and driver changes for AT&T Unix equipment.
* Wrote device driver in C for a serial terminal concentrator box to AT&T Unix. The concentrator handle 32 serial terminals. This was a complete serial driver that included all the features in the stty structure.
* Designed firmware in Z80 assembly to a line module for a redundant cost accounting system. The line module interfaced 16 bar code readers through a multidrop RS485 network. It allowed users to input cost accounting information on all 16 bar code readers at the same time.
* Adapted X11 server for company hardware. Debugged X11 server and wrote X11 clients based on Athena Widgets.
Bachelor of Science Computer Engineering, University of Utah, Salt Lake City, UT 1981
Master of Science Computer Science, Utah State University, Logan, UT 1994 GPA 3.97/4.0