EMBEDDED SOFTWARE / DEVICE DRIVERS / NETWORK PROTOCOLS
BS Electrical Engineering/Computer Option - Louisiana Tech University
Hacking and Penetration Testing - Collin College - Oct 2016
Electrical Engineer with 24 years of experience primarily in the computer, avionics, and data communications industries.
Real Time Embedded Applications: Have several years experience designing, coding, and testing real time embedded applications. Well versed in all aspects of hardware/software interfacing. Have used many different vendors’ In-Circuit-Emulators (ICE) and logic analyzers. Extensive experience in integration and debugging of hardware and software designs. Primarily work in developing and porting protocols such as TCP/IP, VLAN Bridging, Frame Relay, and ATM (RFC1483). Have written Ethernet drivers for embedded Linux, vxWorks, and proprietary operating systems. Have implemented Firewalls on embedded Linux systems for military Information Assurance (IA) and Cybersecurity requirements.
UNIX / Networking / Internet: Extensive work as a UNIX and Network system administrator. Have set up Internet DNS servers, Mail Servers, TCP/IP routers, and Web servers. Am very familiar with the TCP/IP protocol suite. Designed, installed, set-up, and programmed UNIX systems for small business office automation and database tasks. Worked as system administrator on UNIX computer systems in small business and engineering environments. Installed and administered UNIX workstations over TCP/IP networks on Ethernet and token ring LANs for software development and testing purposes. File sharing over the TCP/IP network was with NFS, IBM's HA-NFS, and AFS. Connected UNIX workstations, PC's, and LAN's to IBM mainframes using SNA protocols (LU2 and LU6.2).
INTERNET PROTOCOLS: TCP/IP, DNS, HTTP (Apache, NCSA, CERN), SMTP, POP
LANGUAGES: Shell, C, PL/M, FORTH, FORTRAN, BASIC, ASSEMBLER (8086, 8085, Z80, Z8000, 6502, 6800, 68000, 80960, PDP-9, PDP-11, PowerPC, and SEL810B)
OPERATING SYSTEMS: UNIX (AIX 1.2, AIX 2.2, AIX 3.2, SYSTEM V, HP-UX, BSD, ULTRIX), Linux(Monta Vista, Red Hat, Debian, from Scatch), uClinux, VxWorks MS/DOS, INTEL ISIS-II, RSX-11M
DEVICE DRIVERS: Ethernet, Serial(Async and Sync), i2c, SPI, SD card via SPI, AD/DA, Discrete, Resolvers, and lots of custom hardware.
HARDWARE: Arm, PowerPC, X86, Coldfire, IBM RISC 6000, IBM RT, IBM PC, IBM PS/2, HP9000, SUN
COMMUNICATIONS PROTOCOLS: TCP/IP, SNA, ARINC 429, Frame Relay, LAPB, and MIL STD 1553
DRS Signal Solutions, Germantown, MD Dec 2016 – Present
Software maintenance on existing radio tuners. The software was written in C and ran on either an embedded Linux system on an ARM processor or on bare metal with no OS on a PowerPC processor. Used JTAG and logic analyzers for debugging issues.
DRS Power Systems, Milwaukee, WI Jan 2015 – Sept 2016
Responsible for Information Assurance (IA) and Cybersecurity implementation of the embedded Linux based power control systems used on US Navy ships. The Power control system consisted of a large rack containing multiple embedded Linux custom boards, PLCs, a NAS, and other network attached devices. This rack was considered a secure enclave. Communications with with the rest of the ship was through the Linux boards were I implemented network firewalls. Used Nessus to conduct vulnerability scans and Kali Linux for penetration testing.
UMA Technology Partners, Dallas, TX Feb 2009 – Dec 2014
Rearchitected the Landing Signal Office Display System (LSDOS) for the Naval Air Warfare Center in Lakehurst New Jersey. The LSODS is a redundant system that provides data to the Landing Signal Officer to enhance safety of aircraft landing on aircraft carriers. The current system uses vxWorks and nonstandard hardware which obsoletes quickly. The new design provided more open hardware and software to minimize life cost of the system. Ported C code from vxWorks to Linux. Had to add Information Assurance (IA) functionality to the port. Debugged a Linux touchscreen driver for the Beagle Board (TI OMAP 3530).
Commscope, Richardson, TX July 2010 – January 2012
Did the Board Support Package (BSP) for the ipatch Network Manager product. The board uses a TI OMAP (AM1808) processor. Worked with the hardware engineer during board bring up. I modified and debugged the User Bootloader (UBL), u-boot, and Linux kernel to operate on the custom board. Built the custom Root File System and rc startup scripts. Developed a packaging system for updating software on customer sites.
SCI Sanmina, Huntsville, AL Sept 2007 – March 2009
Worked on a 2 line LCD display using a KS0066U driver chip for a dot matrix LCD display. Developed a menuing system to control the VIS-Net Intercom hardware. Debug TCP issues on a Xilinx MicroBlaze processor running uClinux.
Andrew Corp, Richardson, TX Oct 2003 – Sept 2007
Worked on several embedded Linux products using x86, PPC, and Coldfire processors. The Coldfire ran uClinux. Primarily built custom kernels and wrote device drivers for custom hardware. An SPI interface to an SD card to add local file system and an SPI to an AD converter. Worked with the hardware engineers in debugging their new designs. Wrote application program for the Antenna Display Unit that uses a socket interface to communicate with an outside antenna controller. Assisted application programmers with their Linux questions. Setup and maintained the Linux development environment for the group.
McKesson Automated Prescription Systems, Alexandria, LA Mar 2002 – Oct 2003
Worked on automated prescription equipment for pharmacy automation. This is an embedded Linux project on an ARM processor. My job was to build the Linux operating system for the application program to run on. This included downloading the Linux kernel and patches, and building a base kernel. I modified the device drivers as needed, and built the patch for the hardware. I was responsible for building the root file system that ran out of a ramdisk. Wrote all of the startup and shutdown scripts. Wrote a shared library in C++ that allowed the application program to access features on the hardware, such as erasing and writing to on board flash.
Xyterra Computing, Scottsdale, AZ Nov 2001 - Jan 2002
Worked on router using PowerPC hardware and Linux 2.4. Downloaded kernel and patches and built customized kernels. Set up server load balancing and firewalling using Linux Virtual Server and Netfiltering / Nat functionality. Wrote administrator programs in C to parse setup Config files and to allow easier administration of the load balancing features without having to use iptables command. Debugged ROM startup code to bring up Linux kernel.
Samsung, Richardson, TX June 2001 – Oct 2001
Wrote Linux device drivers for an embedded application on an MPC8240 processor. Used MontaVista 2.0 (Linux kernel 2.4) Linux distribution. The driver provided layer 2 networking between MPC8240 and Intel IXP1200 processors using a PCI bus to connect them. Used an Abatron BDI2000 and VisionICE for debugging.
Andrew Corporation, Richardson, TX May 2000 – June 2001
Wrote software for embedded satellite antenna controller using embedded LINUX (MontaVista and LRP) and embedded DOS. Designed and wrote socket communications between the two computers. Did Linux administration on the host and target systems.
Fujitsu, Richardson, TX Feb 2000 – May 2000
Software maintenance on C code on a pSOS environment.
SpectraPoint a Motorola/Cisco Company, Richardson, TX April 1999 – Feb 2000
Programmed layer 2 bridging and VLAN Ethernet support for an LMDS product. VLAN trucking was supported using 802.1Q tagged frames. WAN connectivity was supported using RFC1483 encapsulated ATM. Connectivity was tested with Cisco equipment. The target was an MPC860 running VxWorks operating system with code written in C.
Andrew Corporation, Richardson, TX March 1998 – March 1999
Worked on a Satellite Network Control (SNC) System for ABC Television. This is an SNMP software package written to run on an NT network. The systems function is to control and monitor video transmissions to the affiliate sites. I did the network design using TCP/IP and NetBEUI, set up the NT Domain and RAS controllers. Installed and configured OctopusHA+ for disk mirroring and application fallover. I set up protocol analyzers to capture satellite telemetry data to analyze proprietary protocol that had to be incorporated into the SNC. Went to customer’s site for installation.
Wrote embedded software for a Token Ring to Wireless LAN Bridge. Primarily concentrated on the TCP/IP stack and an ethernet driver.
Alcatel Network Systems, Richardson, TX December 1997 – June 1998
Wrote low level device drivers for a Wireless protect switch. Work was done using a Microtec C compiler on Sun workstations. Target was a Motorola 68040/68360 running a PSOS operating system.
Nortel, Richardson, TX July 1997 - December 1997
Worked in WorldCom support for the Supernode Data Management (SDM) system. SDM is a UNIX (AIX 4.2) based Fault Tolerant front end into Nortel's DMS family of switches. Applications are client/server using DCE for security. I did System administration on the AIX servers and HP clients. Installed and configured a DCE cell to allow secure communications between machines on the network.
SMU School of Engineering, Richardson, TX August 1995- July 1997
Work as a part time instructor at Southern Methodist University’s School of Engineering. Taught courses in their UNIX System Administration program and taught an Internet class in their networking program.
Andrew Corporation, Richardson, TX January 1994- July 1997
Setup a departmental intranet for maintaining departmental project documentation. Setup and administered an Internet firewall to allow departmental personnel to have access to the Internet.
Ported a proprietary operating system to a PowerPC (MPC860) processor, code was written in assembly and in C. Designed and coded the interrupt and system call mechanism. Wrote ethernet driver and ported Epilogue’s TCP/IP product to the OS. Wrote tools to set up tcp/ip routing tables and debug networking problems.
Designed and coded a store a forward fax system for the SWAN (Satellite Wide Area Network) system. The hardware consisted of a Motorola 68302 processor and a Rockwell Fax/Modem chip. The code was written in C. Wrote an HDLC driver for the 68302. Developed asynchronous and synchronous protocols and worked with customers in integrating the SWAN system into their data networks.
AIL Systems, Lancaster, CA April 1993 - January 1994
Designed and coded a real time embedded instrumentation system for B1B flight test. The application code was written in ADA and ran on a VxWorks real-time operating system. Ported VxWorks to a new VME based board using C. Development was done on a DECstation running Ultrix. The target platform consisted of 16 680x0 CPU's distributed between three VME based systems tied together with Ethernet. Communications between the distributed application was via Berkeley Sockets.
Boeing, Seattle, Washington July 1992 - April 1993
Designed and coded embedded FORTH kernels to run on Boeing 777 avionics systems. The FORTH kernels are used for verification of engineering design, verification of manufacturing, and debugging of failed hardware units. The kernel was written in assembly language for the 68030, 68332, and 80960 microprocessors. I taught introductory FORTH programming classes to the hardware design engineers, and assisted with problems in their FORTH code. Development was done on a VAX computer using CMS (Code Management System) to track source code development. Debug and integration of the kernel was done using In-Circuit-Emulators.
HaL Computer Systems, Austin, Texas February 1992 - July 1992
Ported EHLLAPI and LU6.2 programs and wrote test scripts for SNA.
Alcatel Network Systems, Richardson, Texas January 1992 - February 1992
Modified the software for the LMX-24 Loop Multiplexer, developed when the company was Rockwell International.
IBM, Austin, Texas November 1990 - October 1991
Product Verification Testing of AIX 3.2 Communications Products. Primarily responsible for setting up and administering the testing lab. This consisted of multiple Ethernet and Token Ring local area networks tied together using RS6000's as gateways. The network consisted of several IBM RISC 6000's, IBM RT's, IBM PS/2's (AIX, OS/2, PC/DOS), a Sun, and a Dell (UNIX System V Release 4). The networks ran TCP/IP and SNA protocols. Setup NFS servers and clients, and AFS clients. The network was managed with NIS and DNS. Wrote and ran test cases in shell scripts for the NFS product.
Texas Instruments, Dallas, Texas July 1990 - September 1990
Designed and coded an LU6.2 application program to run on an Apollo workstation under the system 5.3 environment. The software was implemented in C.
Computalog, Ft Worth, Texas March 1990 - June 1990
Software maintenance on a device to control oil well wireline tools. This was an embedded 8088 microprocessor and the software was written in PLM-86. Translated the console control program from basic to Microsoft C. This was under an MS DOS environment.
Rockwell International, Richardson, Texas January 1989 - March 1990
Programmed the LMX-24 Loop Multiplexer, a device to convert between 24 phone lines into a DS1 signal. The software was written in C using an HP 9000 development environment. The target hardware was a Motorola 68HC11. Software checkout and hardware/software integration were aided by using an in-circuit-emulator (ICE).
Electrocom Automation Inc., Arlington, Texas June 1988 - December 1988
Used C language on an AT&T 3B2 computer with UNIX System V to program a message switch. Installed the software at customer sites. The message switch is a software product that ties Electrocom's Mobile Data Terminals to other computer systems. These other computer systems can be Computer Aided Dispatch computers or IBM main frames for accessing large databases. The interfaces to the other computers are via RS-232 or SNA 3270 emulation on an SDLC line.
IBM, Austin, Texas August 1987 - June 1988
Set up stations to test connectivity software between PC's running PC DOS and OS/2 operating systems to host computers. The software included 3270 terminal emulation (SNA LU2 and LU3) and APPC (SNA LU6.2). Connections were via Token Ring and SDLC lines between the PC's and hosts. Also a bridge was established between a Token Ring and PC Net LAN.
Unique Solutions, Arlington, Texas December 1986 - August 1987
Computer Consultant: Evaluation, recommendation, and integration of computer systems (hardware, software, and communications) for customer companies. Installed MSDOS and UNIX based computers. Studied and evaluated database systems (Oracle, Informix, Ingres, and Unify) for client use. Custom programming in "C" and Unify database management system. Designed and taught introductory UNIX courses.
General Dynamics, Fort Worth, Texas September 1981 - December 1986
Supported software test station used for software development of the F-16 Stores Management System (SMS). This consisted of keeping a network of Kontron computers running for the software developers and writing software to interface between test equipment and the computer network. There were four workstations tied into a UNIX based host computer via an Ethernet local area network. Designed, wrote, and tested software to control a dual protocol serial bus tester. The two protocols involved were Mil-Std 1553 and a proprietary GD protocol. Bubble memory was used for on-line storage. The job consisted of writing the device drivers and FORTH kernel in Z8000 assembler. The application software was in FORTH. Programmed, integrated, and tested for the AFTI/F-16 SMS using an Intel MDS with Multi-ICE.
General Electric, Binghamton, New York February 1981 - September 1981
Real time programming of the F-18 flight control computer.
Sperry/Univac, Defense Systems Division Salt Lake City, Utah June 1980 - February 1981
Electrical Engineer on 8080 based control unit used in antenna control for a LAMPS data link.
Rockwell-Collins, Cedar Rapids, Iowa June 1978 - June 1980
Software Engineer for the L1011-500 Digital Mode Control Panel.
United States Air Force, Minot AFB, North Dakota June 1974 - June 1978
Electronic Engineer. Chief Technical Engineering Division of the 91st Strategic Missile Wing.