Greg C. White
704 North Valley View Drive
Prescott, Arizona 86305
Phone (home): 928-771-8279
Phone (cell): 928-713-3400
Summary of Work Experience:
Fifteen years consulting as a Systems Software Engineer specializing in Windows and Linux based embedded systems design. Extensive recent experience in device driver design and application development. NET Web based application development. USB Device driver design and implementation. Windows and Linux Kernel engineer. Extensive experience with device driver design and implementation under Linux, Windows and Windows CE based systems. Windows CE Board Support Package design, development and deployment. C, C++, C#, WCF, WPF, SOAP, HTTP, XML, JavaScript and Web Services. Experienced and familiar with integrating .NET applications to Web based applications. Expert at porting applications and device drivers to/from Linux. UI application development using WPF and XAML. GTK and GNU. Data base design and application development using ADO.NET, MySQL, LINQ and SQL Server 2005. WPF Data binding using LINQ.
Education:
Bachelor of Applied Science, Florida Atlantic University, Boca Raton, Florida
Software Engineering
University of California, Berkeley, California - Professionals Extension
Program - Computer Science
Employment History
Under contract to: Snapon Diagnostics – San Jose, California (Offsite)
April 2011 - Present
Embedded Systems Software Engineer
USB device driver
design and implementation for an automotive diagnostic and ECM scanning and programming
product. USB Endpoint configuration, Bulk Data Transfer and Interrupt
programming. Extensive use of C,C++ and C#, .NET Framework, Device driver debugging, USB driver stack,
Bus Protocol Analyzer (Beagle), ACM/CDC device driver class, Serial over USB,
Virtual COM Port and ACM/CDC device driver design. Extensive use of automotive diagnostic bus
protocols (CAN Bus, ISO 15765, ISO 9141, ISO 14230 and J2534). Windows .NET Web and PC based application
programming and development for a suite of automotive diagnostic tools. C#, WPF, XAML, LINQ and SQL Server 2005. Web services
design and integration using XML-RPC, SOAP, WSDL and XML.
Under contract to: Eureka Software – Austin, Texas (Offsite)
April 2011 - Present
Embedded Systems Software Engineer
Windows CE Embedded BSP design, development and testing for a MIPS based SoC IPTV set top box. Linux BSP code porting from Linux (FreeBSD and Ubuntu) to Windows CE Embedded. Boot Loader and OAL design and development. Ethernet, Flash (NAND), ATAPI, Audio (Si3210, WM8710, MP3) and Video Codec (H2.64, SMPTE, WMV9, MPEG-2, FS453) embedded programming. Familiar with the Sigma SMP86XX and Broadcom BCM7405 family of Secure Media Processors. Windows .NET C# programming using the Windows Mediaroom ADK.
Under
contract to: Intel Corporation – Chandler, Arizona (Onsite)
November 2010 - April 2011
Windows Device Driver Engineer
Windows WDF device driver design and debugging for a proprietary embedded RAID storage controller. Storport and Miniport device driver design and debugging. Transport layer design and implementation. Windows filter driver design and debugging. KMDF and UMDF device driver modeling. Extensive use of C, C++ and Assembly Language. Windows kernel driver programming. Windows DDK, ETW, WMI and EPP. WinDbg and Crash Dump File analysis. Extensive use of WinDbg extensions in conjunction with Stack, heap and memory corruption errors. B.S.O.D analysis. WinDbg debugger extension design, development and implementation.
Under contract to: DICKEY-John Corporation, Auburn, Illinois (Onsite)
September 2010 - November -2010
Windows CE Software Engineer
Windows CE Embedded BSP design, development and testing for an ARM PXA270 moisture measuring agricultural device. Boot Loader and OAL design and development. USB and USBOTG (OnTheGo) device driver design and implementation. Serial, RNDIS, keyboard, and I2C device driver development and debugging. Extensive use of Platform Builder, KITL debugging and image build. C# and .NET Programming and development for a Windows CE .NET based grain analyzer application. Extensive use of the .NET 3.5 Framework API programming, WPF/XML and LINQ using SQLServer.
Under contract to:
Volcano Corporation, San Diego, California (Offsite)
June 2010 – September 2010
Windows Device Driver Engineer
Windows KMDF NDIS Protocol device driver design and implementation for an intravascular remote imaging catheter monitoring device. Extensive use of Layer 3 and Layer 4 protocol filtering. Packet filtering. Windows 7 Kernel API’s, UDP Frame reception and assembly, Ring Buffer management, CRC validation, Plug and Play, Power Management, IOCTL, WMI, Interrupt and DPC level processing,  Work Queue management. C and C++ device driver programming. Windows installer and package installation using NMAP. Kernel level debugging using WinDbg in conjunction with kernel dll symbol files (.PDB).
Under contract to: Gametech International,
February 2010 - June 2010
Windows CE Board Support Package Engineer
Windows CE BSP design, development and testing for a portable video gaming device. Touch screen, SD, Compact Flash, Smart Battery, keyboard, audio (AC97), I2C, SMB, USB (host and client), video and wireless device driver design, development and testing. Free Scale iMX31, iMX51 (ARM11) and MX 13783 firmware development. Windows .NET game application and graphics programming using C#, Open GL and Direct X. Reel, Payline and and Ball Call graphics rendering. Device driver programming for SMB Bus Specification 3.0. C/C++ programming. Kernel level debugging using KITL. Third Party BSP package and catalog (CEC) development. Device driver porting from Linux to Windows CE.
Under contract to: Eclipse
Data Technologies, Pleasanton, Ca (Offsite)
January, 2001 - June, 2010
Windows Device Driver Engineer
Windows KMDF PCI device driver programming and design for Xilinx PLX 8059 PCI bus controller interface for an image encoding device. Extensive use of Windows Kernel API. DMA, Frame reception and assembly, Ring Buffer management, CRC validation, Plug and Play, Power Management, IOCTL, WMI, Interrupt and DPC level processing, Work Queue management. C++ programming. Kernel level debugging using WinDbg in conjunction with kernel dll symbol files (.PDB). CD/DVD and Blu-Ray mastering, LBR, CSS encryption, DDP and CMF file set validation. Audio and Video Codec compression. Hardware PCI interface programming using Xilinx FPGA.
Under contract to: Boeing Integrated Defense Systems,
January 2009 – May 2009
Web Developer and Software
Engineer
Web based programming and development using WordPress (2.6), PHP, MySql, CSS, HTML, CGI, Apache and MySql. My primary roles was WordPress and PHP web based programming for Boeing internal web sites used to log and maintain military contract and defense related information . Embedded Linux systems engineer responsible for the design and implementation of a Reliable Unicast Transport stack (Layer 3) that anchor and support command level battlefield network communications in a Mobile Ad Hoc Network (MANET) environment. Linux network kernel programming to stabilize and sustain Voice over IP traffic flows that meet or exceed government standards for situation awareness. Software Defined Radio (SDR). JTRS WIN-T and GMR radio waveform integration. HAIPE (IPSEC). Routing protocol design and implementation. Embedded Linux kernel debugging and testing. C and C++ programming. Linux based scripting using Bash and JavaScript. GNU Tools (MAKE). Linux network kernel configuration and debugging using layer 4-protocol interfacing. ARM, XSCALE and Freestone microprocessor implementations. Virtual devices. TUN/TAP and network stack interfacing (frame reception, net device, and softnet data). Linux kernel debugging using GDB, OOPS, Ksymoops, YAMD, Memwatch and Electric Fence. Linux embedded Kernel development using JTAG and USB based kernel development tools such as Abatron and Lauterbach real-time debuggers.
Under contract to: Cameron Health,
December, 2004 - December, 2008
Windows CE Systems Engineer
Windows CE Board Support Package (BSP) design and modification for an ARM based embedded heart monitoring device. OS Image file creation, installation and testing (NK.BIN and EBOOT.NB0).BIB file modification and testing. Boot Loader testing (BOOT.BIB).CESH and CEPC. ARM 7 assembler programming. Application testing and modification using a customized GWES configuration.C++ application programming using OpenGL.
Windows CE 5.0 USB device driver testing and debugging, Platform Builder 4.2, Embedded Visual C++ 4.2. C++ Application design for an XML based embedded heart monitoring application.
Boeing Integrated Defense
Systems,
May 2007 - December 2007
Linux Systems Software Engineer
Embedded Linux systems engineer responsible
for Linux kernel modifications to stabilize and sustain Voice over IP traffic
flows that meet or exceed government standards for situation awareness software defined radio (SDR). Embedded
Linux kernel debugging and testing.
Device driver design enhancements for:
USB Host Controller (Cypress PSOC chip), I2C audio codec drivers, IPSEC
(Virtual) and serial driver enhancements. Graphical User Design to display and
present waveform images to user mode applications using GDK++. Extensive use of: Linux 2.4 and 2.6,
X-Windows API, X-Server, User Mode Linux (UML) programming, customization and
virtualization. X86, ARM, XSCALE and Freestone microprocessor implementations. HAIPE (IPSEC) protocol driver design and
maintenance. C and C++ programming. Linux network kernel configuration and
debugging using layer 4-protocol interfacing. Virtual devices, TUN/TAP, network
stack interfacing (frame reception, net device and softnet
data).
Under contract to: TV
Compass,
January 2007 – May
2007
Windows CE Consumer
Electronics Engineer
ARM BSP systems software development for a
custom Windows CE set top box. Boot Loader development,(EBOOT, FBOOT). ARM7
Assembler and JTAG debugging using in-line ICE and hardware probes. Abatron BDBI200.
Under contract to: Lathem Time
Corporation,
August 2006 - January, 2007
Windows Device Driver Engineer
Windows HID Biometric USB device driver design and testing for a custom fingerprint reader and scanner time recording device. C Programming. Windows KMDF programming and debugging. Control, Isochronous, Interrupt and Bulb Transfer Host. USB Descriptor design. .INF file creation. Custom Device Class development and programming. Windows Co-Installer API programming and testing.
Under contract to: Vernier,
February, 2006 - August, 2006
Windows Device Driver Engineer
Windows composite USB device driver design and testing for a custom educational enrichment device. Firmware design and debugging. Cypress EZ-USB FX Device Driver Development Kit 2.0(CY3671 chip, Anchor Chips EZ-USB). 8051 C programming, Keil uVision programming. Isochronous, Interrupt and Bulk USB Transfer testing. HID, HCD and Host USB models. USB Descriptor design. Windows WDM USB device driver design and debugging. Visual C/C++ 6.0, Windows Device Driver DDK. Kernel mode device driver debugging and testing using WinDbg.
Under contract to: Triton Corporation, Long Beach,
Mississippi(Offsite)
October, 2005 - January, 2006
Embedded Systems Software Engineer
Windows CE and Linux embedded programming tasks related to hardware validation. ARM C and Assembler programming (ARM 920T, ELF, Thumb), Boot Loader design and testing; DiskOnChip (DOC) programming, Window CE BSP development, JTAG and ICE debugging. Linux (Red Hat, Fedora), Windows CE 5.0, Platform Builder, C, Embedded Visual C++ 4.2, EBOOT and NK.BIN development.
Under contract to:PatchLink
Corporation, Scottsdale,
May, 2005 - September, 2005
Windows Systems Software Engineer
Windows .NET application programming and development for an Internet based Patch Management system. Extensive use of C#, C++, VB .NET, ActiveX, MSI,.CAB Files, XML, ISAPI, SQL Server, SOAP, VBSCRIPT, JavaScript, Inet1, Active X and .NET Assemblies. System Services, Windows FORMS, GUI design, MFC, Windows DLL's, WMI, Perl and WSH.
Under contract to:QaCafe IP Test Solutions,
October,2004 - April, 2005
Windows Software Engineer
Windows device driver and applications programming for a suite of ATM testing applications. Winsock 2 API programming, NDIS/ATM, Call Manager, TAPI, Winsock 2 SPI (Service Provider Interface), Protocol device driver design and implementation. Visual Studio .NET, .NET Framework, C/C++ programming, Active Server pages (ASP.NET), ADO.NET and SQL Server database programming. Application design and debugging using Windows debugging. Kernel mode programming and debugging using Windbag.
Under contract to: Inter-Tel Corporation,
August, 2004 - October, 2004
Linux Software Engineer
Linux device driver design and programming for an ARM based (VOIP) Voice Mail System. USB device driver programming using both the Philips HCD1161 and Cypress Host Controller chips. Extensive use USB 2.0, Host Controller programming (HCD) and USB URB programming and messaging. USB driver stack implementation under Linux (USB Core, File System, and Client drivers).Device driver programming and testing using C/C++, GNU Tools (GCC) and MAKE. Device driver debugging and testing using custom kernel images, Gab debugger, OOPs message translation and memory mapped I/O.
Under contract to: Intel Corporation,
March, 2004 - August, 2004
Wireless 802.11 Software Engineer
Lead technical engineer for wireless 802.11 device driver development. Architected, designed and tested NDIS 5.X Intermediate drivers to support back end EAP discovery and detection for use with Meetinghouse. Local Area Network (LAN) authentication software (Supplicant. NDIS 5.X, EAP, RADIUS, Windows registry/C++ programming, Visual Studio .NET, XML 4.0, Kernel Level debugging, WinDBG, Softie and Stack Traces. Extensive use of Mini-PCI, CF I/O Cards, Arm and Scale processors,PXA250, SA1100, HP Iraq H5455, Pocket PC, Toshiba E700,Fujitsu IPAD, PCMCIA,USB card and bus technologies. Working knowledge of Intersil(Prism/2),Symbol and Intel based MAC/PHY layers.Firmware modification using Matlab. Design engineering and CAD based drawing using AutoCAD 5. Lead software programmer responsible for the design and implementation of a Web based 802.11 configuration utility using Php/HTML. Database programming using SQL Server.Working knowledge of 802.11 wireless extensions for Windows platform drivers.Windows CE, Pocket PC 2003, 2004, Embedded Visual Tools,Platform Builder 3.0/4.1,Active Sync 3.7
Under contract to:Fujitsu
Transaction Solutions,Inc San Diego,CA
(Onsite)
June 2004 - September, 2004
Windows CE Embedded Systems Software Engineer
Device driver design and testing for an ARM based retail image scanning and shopping device. CE BSP and OS image file generation(NK.BIN), BootLoader development(EBOOT.NB0), ARM 9 assembler and debugging.Streams driver development for a proprietary image scanning engine using Embedded Visual C++ 4.2 and Platform Builder 4.2.Device driver and BSP platform testing using Windows CE Test Kit(Tux, Kato).Developed user defined test suites using custom Tux Test modules(ShellProc and TestProc).Application Verfier testing.Script programming using Windows Scripting Host.C, C++ and Windows CE Kernel level programming and debugging.
Under contract to:Celerity
Corporation,
October 2003- February, 2004
Embedded Systems Software Engineer
Embedded Linux device driver design and implementation for a serial RS-232 interface using state of the art real-time valve flow control,pressure and temperature sensing. Embedded Linux(TimeSys),Timestorm, GNU tools(GCC),MAKE,Kernel debugging,OOPS analysis,Remote booting, Interrupt latency,Bottom and half-Top Half design, Tasklet design,Kernel Timers,Mutex and Semaphore design, User mode signalling,POSIX timers and threads, Module design, Custom Kernel modifications.Windows CE 4.1 Board Support Package(BSP) design using PC 104,CPLD and FPGA design specifications.CPLD and FPGA programming using VHDL.Firware design and development using Matlab.Platform Builder, Embedded Visual Tools and C programming.
Under contract to:Intel
Mobile Wireless Division,
October 2002 - October 2003
Senior 802.11 Systems Hardware and Software Engineer
Part of a core hardware design and implementation team for Intel's next generation mobile wireless 802.11 platform.Extensive Windows Application level software design for 802.11 wireless products using C++, C#, VS .NET, Java, Perl and DCOM.ASIC programming using Verilog/VHDL and RTL design. Extensive use of the Texas Instrument Code Composer 2.1, TMS320 DSP's,digital filtering,clock distribution, memory controllers, Z Transforms, A/D and D/A conversion, programming algorithm's for sampling rates up to 400 kHz,PCI,Mini-PCI and CF bus interface.ASIC verification using LabView.Part of a compiler design team that developed a proprietary DSP RTL development language.Firmware design and development using Matlab.Team software lead for the design and development of next generation mobile wireless network product(Centrino).Lead software engineer for the design and implementation of Windows and Linux platform device drivers. Windows 2000/XP, CE .NET(4.1),CE 3.0(Pocket PC 2002),.NET Compact Framework,Windows Forms,Managed Code, XML, Palm OS 5, Stream and Native device drivers, Linux, NDIS 5.x. Extensive use of Mini-PCI, CF I/O Cards,Arm and XScale processors,PXA250, SA1100, HP iPaq H5455, Pocket PC, Toshiba E700,Fujitsu IPAD, PCMCIA,USB card and bus technologies.Working knowledge of Intersil(Prism/2),Symbol and Intel based MAC/PHY layers. Thorough working knowledge of 802.11 wireless extensions for Windows platform drivers.Detailed working knowlege of 802.11 implementation issues such as 802.11 a,b and g, Antenna diversity,Calibration,RF reflection, Access Point attach/detach, Antenna Polarity, Infrastructure vs Ad-Hoc mode, Ad-Hoc routing, Preamble and RTS threshold. Lead software engineer for the design and implementation of RF testing tools for production floor and OEM testing. Extensive use of C/C++, Visual Studio,Embedded Visual Tools,Platform Builder 3.0/4.1,Active Sync 3.7, Code Warrior(Codellab,XRAY,Nucleus RTOS),Visual Basic, Java Script, Active Server Pages, WSH, Perl,GNU Tools, Linux Kernel driver architecture, Network protocol stacks, wireless network debugging tools, network testing tools, Chariot, Windows DDK, WinDbg, Softice and Kernel mode dump analysis.