David Fish
E-Mail ******@*******.***
Arlington, WA 98223
Senior Embedded Engineer
Over 25 years of embedded software/hardware development
Excellent debugging skils
Extremely strong wireless experience
Multiple platform and processor experience
Technical Skills
Programming Languages: C, C++ and x86 assembly. Learning Python
Operating Systems: Embedded Linux, Android, WinMobile 5 and 6, Windows, PalmOS, DOS, Multitask! RTOS,FreeRtos, Zephyr, Microsoft Office, Windows, DOS, UNIX, Debian Linux, Arch Linux, Netware, SAP, Android
Linux: Yocto, PTXDist
Processors: Broadcom 5892,Freescale,ARM, ARM OMAP, Intel Belverde, PIC’s, x86(Vadem VG230), Motorola DragonBall
Platforms: Xilinx Zync, Phytec, TI DaVinci, Raspberry Pi, Pandaboard, Beagleboard
Bluetooth Chips: CSR Bluecore (2 and 4), Broadcom 2033, 2035 and 2045.
Interfaces: I2C, I2S, USB, PCMCIA, Serial, UART, NE2000, Bluetooth, RIL, GPS, SPI, PCI
Network Protocols: TCP/IP, UDP, DHCP, Bluetooth, BCSP (Blue Core Serial Port), GPS,PTP1588
Tools: Logic analyzers, Oscilloscopes (DSO and Analog), Spectrum Analyzers, CMU200 Telephony analyzer 8960 Wireless Communication test set. DVM, Various JTAG devices, ARM Tools, Intel Debugger, Microtec XRAY debugger,,Palm Emulator, Wireshark, Eagle CAD, Mach3 CNC, Meshcam7, Ulitmaker Cura for 3D modeling. AvidCNC 2’ x 2’ machine. Sunlu S9 3D printer, Anycubic Photon Mono 6K resin printer.
Code tools: Git, Gerrit, Jenkins, Jira bug tracking, PVCS bug tracker and version manager, TeamTrack bug tracker, Perforce; Source Insight. Microsoft Visual Studio. CodeWarrior, Platform Builder, VMWare
Work Experience
David F Fish
Sole Proprietor – Embedded Engineer Mar 2024 to April 2024
Worked on a STM32 based bare metal project for a vibrating knife. It used UART and I2C.
Accenture Aug 2022 to Nov 2023
Senior Firmware Engineer
I worked on a drink dispensing device for Pepsi as the Lead Firmware Engineer on that project. It used the STM32 controller. We used Microsoft Azure system for code repository, which was on a customer server. We had developed POC prototypes using ST dev boards that incorporated on-metal RF tags and other sensors.
AvtechTyee Jan 2022 to Aug 2022
Senior Software Engineer
Working on the audio avionics product of AvtechTyee
Bare metal programming on a BF535 processor
PTP-1588 Precision Time Protocol
Spectrum Controls (Contract) Sept 2020 to Apr 2021
Software Engineer
Bug fixing on the Universal Gateway product, C code. Networking bugs and multiple others.
Bring up of the new build system, yocto based, to replace the older non standard system.
TableSafe, Inc Apr 2015 to Mar 2020
Principal Engineer
Managed/ Led a team of 3-4 software engineers in this smaller startup and Provided direction for contractors and primary lead in hiring for the SW Engineering group.
Bring up of the Broadcom BCM5892 secure processor with Linux kernel 2.6.32 for the payment device for TableSafe.
I rewrote the touchscreen driver to be interrupt driven.
Brought up both the Wifi and Bluetooth functions of the board that used the Broadcom 43341 based Inventec chip.
Used bluez stack for the Bluetooth stack and an H4 UART interface.
Primarily responsible for all Linux s2bl, uboot and kernel issues for the product.
Designed and build test PCB’s for Rail product line.
Designed and built test harness bed of nails platform for flashing and testing.
Designed and build the WiFi MAC programmer and unit charger station for the Rail product
Debugged issues with USB, UART, and NFC issues with the product.
Environment: Proprietary embedded Linux OS ( Broadcom) C, Bluez and Bluetooth
Caldera Development Group June 2014 to April 2015
Software Engineer – Embedded
Kymeta- 6-month assignment:
oI was responsible for the code in the transmitter and receiver units for their beam forming antenna.
oWrote C code for the dual power supply switcher. This would allow the power to switch from one supply to another in milliseconds.
oThe products for Kymeta were using the Yocto build system, using Phytec board systems.
oWhen the customer switched from Seco to Phytec, I did the same tasks all over again, switching to the latest 3.14 Linux kernel that uses the Yocto build system.
Echodyne-6-month assignment:
oI did the PCIe driver integration for multiple cards for their first radar system.
oResponsible for all Linux software 3.16 bringup, including u-boot, kernel and file system
Worked on several proof of concept designs using Raspberry Pi for two customers.
oOne using a CAN bus hat (Sits on top of the RaspPi) that I also configured to be a functioning access point.
oAnother Raspberry Pi used a Pantech UML290 USB 3G data module. For remote communication for the State of Hawaii.
oWorked on the Xilinx Zedboard with the Zync processor. Brought the board up with a headless kernel and modified uboot to boot from my filesystem and image.
oCreated bash scripts for testing and easy setup.
Innovative Advantage June 2013 to June 2014
Software Engineer – Embedded Linux
As the sole Linux engineer on this project, created an embedded Linux operating system for an encoder/decoder expansion card for the Innovative Advantage AVDS (Audio Video Distribution System) avionics.
Using the Arago Linux project for TI DaVinci processors, I built the u-boot, kernel and a very small UBIFS based file system for the card. This OS for the DaVinci was the TI-RTOS
Tuned the system so that the kernel would boot in only 8 seconds, full loading of the entire system firmware only took 15.
Created the build scripts (bash) to automate the build process.
Environment: Embedded Linux TI RTOS, bash, C
Elektrobit, Inc July 2007 to June 2013
Manager – Software Engineering September 2011-June 2013
Managed the SW engineering group ( 15 engineers in software development and 6 in test )
Implemented the Gerrit review system and the Jenkins build system for Elektrobit.
Created a new Android phone and tablet with iris scanner, fingerprint scanner and CAC card reader. My team took this from planning to near production on the tablet.
The team was responsible for
oVideo processing from a real time custom Iris scanner
oIntegration of a fingerprint scanner
oIntegration a CAC (Government Command Access Card) card
oDeveloping the UI on the tablet product for full integration with hardware.
oNetwork hardware integration to work with downlink servers
Staff Software Engineer July 2007 to Sept 2011
Responsible for the battery charging of our OMAP4430 Android (ICS) based handheld product. Also responsible for LED controller driver code.
Redesigned and wrote the GPS driver for the Terrestar Genus Satellite phone project. This is a Windows Mobile 6.5 OS smartphone that communicates with a geo-synchronous satellite as well as the AT&T terrestrial based network. The GPS driver supports both the MS API set for GPS, and the NMEA sentence standard for GPS over a comport. That required creation of a virtual comport within the GPS driver, as well as the capability to handle multiple application access.
Designed, wrote and created the EBTestTel application. This application is capable of testing all GPS capability, as well as Telnet, FTP, Primary and Secondary context testing
Designed and wrote the EBSocket.dll for the Terrestar Genus Satellite phone project. This was an alternative method for secondary PDP connections for Windows Mobile. This allows data to be sent over a secondary PDP context. This incorporated changes made to the MUX code of the WinMobile device.
Debug and bring up of Macro boards for Terrestar Genus Satellite phone project.
Developed and integrated RIL driver for Windows Mobile Based device
Environment: Android, Ice-cream sandwich, WinCE 6.5, C and C++
Palm Inc. May 2000 to June 2007 Sr. Software Engineer Seattle, WA
Designed and wrote the Bluetooth transport driver for the Tungsten T5, T2 and LifeDrive handheld
Designed and wrote Bluetooth transport drivers for the WinMobile products of the Treo 650 and 700 series smartphones. smartphone line. This includes debugging on not only the transport, but also the Bluetooth profiles, which includes DUN, OBEX, A2DP, handsfree, and other Bluetooth profiles.
Wrote transport driver for Winmobile6 device with CSR Bluecore4 Chip .
Development and debugging of the Bluetooth protocol stack for the PalmOS.
Designed and wrote the Bluetooth transport driver and power management sleep state machine for the Tungsten T PDA. Bluetooth Transport Driver for the Palm SD Bluetooth card.
Design and coding of protocol test application for throughput and protocol validation.
Environment: Palm OS, C, Bluetooth, WinCE 6.5, Window mobile
Intermec Corporation July 1989 to February 2000
Software Engineer II – Networks Group Seattle. WA
Primary engineer on the Antares RF handheld network subsystem, which includes RF and Ethernet connectivity.
Understood and modified the multitasking system and the TCP/IP and UDPPLUS protocol stacks. Responsible for fixing stack bugs in the TCP/IP and UDP proprietary stacks, using emulator and debugger.
Designed and implemented driver, flash loader, and configuration tool for 802.11 radio.
Wrote test software for network test and throughput measurement.
Environment: TCP/IP and UDP network protocols, C, Assembly.
Technician on first laser scanner project for Intermec, the 1545 scanner
Worked on laser evaluation and focus. Built first surface mount boards in the company by hand soldering.
Hand built all first prototypes, and debug and repair of the scanner.
Education
North Seattle Community College, Seattle Washington
Associate Arts Digital Computer Electronics Degree
Associate Arts - Two Year Transfer Degree
University of Washington
Certificate Program in C Programming