David Downey

David Downey Email and Phone Number

Software Engineering Consultant @ BrightAI
San Jose, CA, US
David Downey's Location
San Jose, California, United States, United States
David Downey's Contact Details
About David Downey

I’m a Senior (25 years) Software Engineer seeking an opportunity that capitalizes on my BS in Electrical Engineering and MS in Computer Engineering, exploits my extensive C/C++ (23 years) programming expertise, and may benefit from my driver (16 years), embedded/RTOS (22 years), Linux (11 years), and network/bus development (21 years) experience.Operating Systems/Bootloaders: Android (SDK and NDK) (3 years), FreeRTOS (5 years), Linux (11 years), U-Boot, UNIX (6 years), VxWorks (4 years), VMS, Windows (7 years), various RTOSs (14 years)Programming Languages: Ada 95, Assembly (Arm, 8051, AMD 29050, MIPS32, Power PC), C (23 years), C++ (8 years), Fortran, HTML, Java (3 years), JSON, MATLAB, various Linux/UNIX shells, Python (5 years), Visual Basic (4 years), XMLNetworks/Busses (21 years): AFDX, ATM, CoAP, DDS, Ethernet (7 years), HTTP, I2C (4 years), MIL-STD-1553, MIPI, MQTT, PCI, PPPoE (4 years), Smart/SIM Card (ISO 7816, PC/SC) (3 years), SNMP (5 years), SPI, TCP/UDP/IP (9 years), USB (4 years), VMEbus, Wireless (LMDS, Wi-Fi 802.11) (6 years)

David Downey's Current Company Details
BrightAI

Brightai

View
Software Engineering Consultant
San Jose, CA, US
Website:
bright.ai
Employees:
69
David Downey Work Experience Details
  • Brightai
    Software Engineering Consultant
    Brightai
    San Jose, Ca, Us
  • Sonos, Inc.
    Software Engineering Consultant
    Sonos, Inc. 2021 - Present
    Santa Barbara, Ca, Us
  • On Semiconductor
    Sr. Principal Firmware Engineer
    On Semiconductor 2017 - 2021
    Scottsdale, Arizona, Us
    AP0300 Image Signal Processor firmware• Tri-core Arm Cortex-M3 with a CEVA DSP SoC on FreeRTOS using C & C++- Drivers: Sensor embedded data, sensor trigger, JPEG, spatial transform engine, image pipe extract points, power domains, PLL driver, MIPI Tx and Rx (including D-PHY and embedded data type), and AUTOSAR MCAL ADC.- Brought up rev2 SoC.- Added Arm Software Test Libraries (STL) to three cores.- Code testing, standards, and tools: Fixed MISRA C & C++ violations detected by Klocwork. Implemented CppUTest framework and tests. Wrote C & C++ coding standard. Implemented Uncrustify, Doxygen, and Lauterbach frameworks.
  • Acer
    Software Engineering Consultant
    Acer 2016 - 2017
    Xizhi District, New Taipei City, Tw
    Cloud IoT devices and Android companion apps• Production IoT (ARM Cortex-M3) device and Android AAR- IoT (IAR/FreeRTOS using C): Implemented user and device management, persistent memory, state machine, button detection, LED control.- Android AAR (Java): Implemented user and device management, key-value cloud storage.• “IoT” (Raspberry Pi) and Android companion app plant watering demonstration- Single-handedly created entire client-side HTTP/MQTT demo.- RPi (Python): Provisioned to cloud. Measured water flow, light, moisture, temperature, and humidity. Controlled water pump.- Android (Java): Provisioned IoT device. Listed plants. Graphed water flow, light, moisture, etc. over time.• libcoap (MW302 WiFi uController (ARM Cortex-M4) SoC on FreeRTOS using C)- Ported libcoap to platform.- Tested libcoap against ETSI CoAP plugtest, using a ported CoAP client and remote CoAP server.• IP camera (Raspberry Pi using Linux/C)- Upgraded SW from Debian Wheezy (SysVinit) to Jessie (systemd).- Fixed various bugs
  • Usens Inc.
    Software Engineering Consultant
    Usens Inc. 2015 - 2015
    San Jose, Ca, Us
    Impression Pi Virtual Reality Headset• Qualcomm Snapdragon 805 (Android KK) platform using C- Integrated dual MT9M021camera and Hillcrest SH-1 sensor hub drivers.
  • Intel Corporation
    Software Engineering Consultant
    Intel Corporation 2013 - 2015
    Santa Clara, California, Us
    Atom (Bay Trail & Cherry Trail) CPU platforms• Experimental Touch Panel- MATLAB, Linux desktop, and Zynq platform: Prototyped and benchmarked touch panel algorithms.- Windows 8* C DLL: Ported touch panel algorithm.* Visual Basic: Created an app that fetched raw data from an NI ADC card, input the data into the DLL, and displayed the resultant touch data onto a GUI.• Maxim Touch Panel (Android KK & L on Atom (Cherry Trail) platform using C)- Modified SPI-based Maxim touch driver to work on platform.- Adapted two platform GPIOs to serve as driver’s INT and RST lines.• Camera/Sensor Sync (Android KK on Atom (Bay Trail) platform using Java and C)- Linux: Modified kernel to toggle GPIO for each camera frame.- I2C Sensor Hub FW: Modified FW to tag sensor data with a sequence number for each GPIO assertion.- NDK: Modified sensor HAL to accommodate the sequence number field.- SDK: Modified app to match camera frames with sensor data.• Benchmark (Android KK NDK/Linux on Atom (Bay Trail) platform using C)- User space CRC32 on kernel memory vs. kernel CRC32 on kernel memory
  • Cisco Systems
    Software Engineering Consultant
    Cisco Systems 2013 - 2013
    San Jose, Ca, Us
    Catalyst Switches• Linux (Cisco’s “Nova” distribution on a Cavium 6230 (MIPS64, 4 core) platform using C):- Fixed memory leak, SNMP, and temperature sensor bugs.
  • Mips Technologies
    Software Engineering Consultant
    Mips Technologies 2011 - 2013
    San Jose, California, Us
    MIPS32 and microMIPS RISC architectures• Xilinx Vertex-6/XCVLX110 FPGA platforms using C:- Linux 2.6.35 kernel: Added new microAptiv, interAptiv, and proAptiv processor support. Fixed kernel vs. userspace (Debian and TimeSys) incompatibilities. Added kernel command line options. Added /sys/…/cpufreq/ entry.- Bootloaders* U-Boot: Added platforms. Ported YAMON functionality.* YAMON (MIPS open-source bootloader): Added new processor support. Added debug features (report true memory size via SPD, option to boot uncached, L1 cache diags).* Drivers: Ethernet (PCnet), I2C (PIC32-based), RTCs (MC146818 (PIXX4) and M41T81S)- EZ-USB (Cypress FX2LP USB 8051 (MCS51) Microcontroller/High-Speed USB Peripheral Controller):* Ported Keil C51 code to SDCC.* Added platforms and features (status LED).- Debug: Created scripts that decoded new processors’ out-of-order execution (signaled to a logic analyzer).
  • Amazon
    Software Engineering Consultant
    Amazon 2011 - 2011
    Seattle, Wa, Us
    Kindle• Linux (2.6 on a Freescale ARM Cortex A8 (i.MX508) platform using C++):- Diagnostics and bug fixes: Atheros Wi-Fi (AR6003), Freescale power management IC (PMIC) (MC13892), TI E Ink PMIC (SN92009A4), eMMC, mDDR, Freescale accelerometer (MMA8453Q), Wolfson audio codec (WM8962)
  • Curtiss Wright Controls
    Software Engineering Consultant
    Curtiss Wright Controls 2010 - 2010
    Davidson, North Carolina, Us
    RQ-4N Global Hawk Unmanned Aerial Vehicle• Linux (embedded WindRiver 3.0 on a MPC8641D platform using C): - Drivers: Discrete IO (Low-Voltage TTL, Differential RS422), EEPROM (CAT24C16), NMEA-0183, Power Supply - Built-In Tests (BIT): EEPROM, Power Supply• VxWorks 6.7 (on a MPC8641D platform using C): - Drivers: Power Supply, NMEA-0183 - BIT: Discrete IO, EEPROM, Elapsed-Time Indicator (ETI), One Pulse Per Second (1PPS), Temperature Sensors (CAT6095 and RTDs connected to LTC2309 ADCs)• Documents (using DOORS): Software Design Description (SDD), Interface Design Description (IDD), Version Description Document (VDD)• Gave several presentations to the customer detailing the system's software design.
  • Real-Time Innovations
    Applications Engineer
    Real-Time Innovations 2008 - 2009
    Sunnyvale, Ca, Us
    Data Distribution System Middleware• Linux (embedded LynxOS on a MPC7448 platform using C/C++ and Java): Ported middleware.• VxWorks MILS 2.0 (on a MPC8641D platform using C/C++ and Java): Ported middleware.
  • Sun Microsystems
    Software/Firmware Engineer
    Sun Microsystems 2005 - 2008
    Palo Alto, Ca, Us
    Sun Ray Thin Clients• BSD-like embedded RTOS (on a MIPS Au1550 platform using C):- Drivers: Smart card (Philips TDA8007B), Wi-Fi (Ralink RT2561)- Diagnostics: USB- Protocols: PPPoE, Local PIN Entry• UNIX (Solaris on SPARC and x86 using C):- Protocols: PPPoE, Local PIN Entry• Linux (SUSE on x86 using C): Local PIN Entry
  • Soundside Inc.
    Software Engineering Consultant (Part-Time)
    Soundside Inc. 2005 - 2005
    Various Windows apps• Windows XP- App (using C++): Added Win32 graphics to a science app.- Office (using VBA): Added functionality to a utility company's Word form.
  • Northrop Grumman
    Software Engineering Consultant
    Northrop Grumman 2004 - 2004
    Falls Church, Va, Us
    BQM-74F Unmanned Aerial Vehicle• Proprietary embedded RTOS (on a BAE Systems processor using C): Added software enhancements.
  • Boeing
    Software Engineering Team Lead (Consultant)
    Boeing 2004 - 2004
    Arlington, Va, Us
    Wideband Gapfiller (Military) Satellite• Led a team of five engineers.• VxWorks (on a PowerPC 750 platform using C):- Drivers: High-Throughput PCI DMA, Interrupt Controller (handled 400 sources)• Windows XP- DLL (using C): Test Station/VxWorks UUT Interface
  • Honeywell
    Systems/Software Engineering Consultant
    Honeywell 2002 - 2003
    Charlotte, North Carolina, Us
    Airbus A380 Airliner• Proprietary embedded RTOS (on a AMD 29050 platform using C++):- Protocol: Data Transfer over AFDX• Documents (DO-178B): Flight Management System's ICDs, SRDs, SDDs- Protocols: ICMP, SNMP, Printer- Interface: Input/Output Controller
  • Boeing
    Software Engineering Consultant
    Boeing 2001 - 2002
    Arlington, Va, Us
    WAH-64D Apache Attack Helicopter• Proprietary embedded RTOS (on proprietary system and weapons processors using Ada and C): Added software enhancements.
  • San Jose State University
    Graduate Project
    San Jose State University 2001 - 2001
    San Jose, Ca, Us
    - Ported Linux PPPoE access-concentrator and host source code to VxWorks.
  • Bridgewave Communications
    Software Engineering Consultant
    Bridgewave Communications 2000 - 2001
    Us
    GE60 60GHz Gigabit Point-To-Point Wireless Link• VxWorks (on a MPC850 platform using C):- Kernel: Fixed DHCP bugs, added multiple boot paths- Drivers: Cable amplifier (MAX3510), FPGAs (Xilinx), NVRAM (DS1250W), Temperature Sensors (AD7814 and MAX1617)- Protocol: Envoy SNMP Agent
  • Nortel Networks
    Software Engineering Consultant
    Nortel Networks 1999 - 2000
    Ca
    Shasta Subscriber Service System• VxWorks (on a PowerPC 750 platform using C):- Diagnostics: Ethernet (Intel 21143 ) (internal loopback test), PCI-to-ISA/IDE Xcelerator (PIIX4E), RAM Datapath• Windows NT 4.0 (using LabWindows CVI and Visual BASIC):- App: Automated Functional Tests (Read test scripts, wrote and read commands through a GUI, transmitted and received data through a pair of RS-232 ports, and recorded test results in log files.)
  • Fourelle Systems
    Software Engineering Consultant
    Fourelle Systems 1998 - 1999
    Bandwidth Optimization Engine• Linux ("embedded" Red Hat using C):- Protocol: SNMP agent (CMU's snmpd)- Scripts: Automated Tests (Set up several micro web browsers and micro web servers on several Linux PCs, carved out IP routes between the PCs and the compressor across Ethernet, launched the web servers and browsers, processed and graphed the raw output, and stored the results on a file server.)
  • Wytec Incorporated
    Software Engineer
    Wytec Incorporated 1996 - 1998
    LMDS base station and CPE prototypes• Windows NT 4.0- Drivers (DLLs): ADCs, Digital I/O Boards, FIFOs, Parallel Ports, Serial Ports, VXI boards (register and message-based)- Protocol: SNMP (Manager: Using C++ with MFC and HP OpenView’s SDK. Agent: Using C with Windows NT’s extensible agent.)- App: Spectrum Analyzer (C DLLs directly interfaced with ADCs and hardware FIFOs as well as performed an FFT on the collected time domain points. A Visual BASIC GUI displayed the resultant frequency response.)- System: Manager/Base Station Software (Manager: Controlled/monitored as well as downloaded code to base stations via modem using Visual BASIC. Base Station: DOS "embedded" SW using C.)
  • National Semiconductor Corporation
    Software Test Engineering Consultant
    National Semiconductor Corporation 1995 - 1996
    Fortezza and iPower Security PC Card• UNIX (Solaris on SPARC using C): Test Apps (Tested RSA public/private key and triple-DES security.)
  • Academic Systems Corporation
    Software Qa Engineering Consultant
    Academic Systems Corporation 1994 - 1995
    Algebra I & II Multimedia Courseware• Supervised 15 software testers during swing shift.• Drafted test scripts.• Implemented automated tests and bug tracking systems.
  • Cabletron Systems
    Project Coordinator
    Cabletron Systems 1993 - 1993
    Us
    Networking Computer Equipment• Designed Ethernet, Token Ring, FDDI, and ATM LANs and WANs for prospective customers.• Wrote detailed proposals and gave customer presentations outlining my designs.• Coordinated entire network installations, including hubs, switches, cabling, and NICs.• Helped make the company half a million dollars.

David Downey Skills

Embedded Systems Device Drivers Linux Unix Embedded Linux Software Engineering Debugging C Software Design Embedded Software C++ Shell Scripting Arm Linux Kernel Operating Systems Rtos Vxworks Fpga Processors Solaris Testing Hardware Usb Snmp Arm Architecture Computer Hardware

David Downey Education Details

  • San José State University
    San José State University
    Computer Engineering
  • California Polytechnic State University-San Luis Obispo
    California Polytechnic State University-San Luis Obispo
    Electrical Engineering

Frequently Asked Questions about David Downey

What company does David Downey work for?

David Downey works for Brightai

What is David Downey's role at the current company?

David Downey's current role is Software Engineering Consultant.

What is David Downey's email address?

David Downey's email address is to****@****ail.com

What schools did David Downey attend?

David Downey attended San José State University, California Polytechnic State University-San Luis Obispo.

What skills is David Downey known for?

David Downey has skills like Embedded Systems, Device Drivers, Linux, Unix, Embedded Linux, Software Engineering, Debugging, C, Software Design, Embedded Software, C++, Shell Scripting.

Free Chrome Extension

Find emails, phones & company data instantly

Find verified emails from LinkedIn profiles
Get direct phone numbers & mobile contacts
Access company data & employee information
Works directly on LinkedIn - no copy/paste needed
Get Chrome Extension - Free

Aero Online

Your AI prospecting assistant

Download 750 million emails and 100 million phone numbers

Access emails and phone numbers of over 750 million business users. Instantly download verified profiles using 20+ filters, including location, job title, company, function, and industry.