Updated November 27, 2018
Hardware Tools, PCB Tools, Devices, Databases, Compilers, etc.
IAR Embedded Workbench, Microchip MPLAB XC32, Atmel Studio, ARM DS-5, e2 Studio, QT5, Eclipse, Processor Expert (Freescale), Mono (Cross-platform .NET), Xilinx Vivado/SDSoC ISE Foundation/EDK/Platform Studio/ChipScope Pro, Altera Quartus II/Nios II/Megacores, Lattice Diamond, Active-HDL, Mentor Graphics ModelSim, GNU C/C++ (native and cross-compile), GDB, Arduino, National Instruments, Hewlett-Packard AI (HPAI), Quick Test Pro (QTP), IXIA, Spirent SmartBits, ExtJS Application Framework, Catalyst web application framework, Eclipse IDE, Mellanox Voltaire InfiniBand switches, Makefiles, , GNU Emacs (for use with GDB), RealView Development Suite and debug adapters, UNIX System V Native C Compiler, Oracle, Sybase, Veritas File System (vxfs) and Veritas Volume Manager, Subversion (SVN), Collabnet, HP Softbench, SunOS C compiler, nroff/troff/ditroff/groff, regular expressions (regexp), Brocade FibreChannel switches, OASYS (Green Hills) 68000/10/20/30/881/851 C Cross Compiler, OASYS (Green Hills) Cross Compilers and Assemblers, UniFLEX Native C Compiler and Assembler, Microsoft C, Microsoft Macro Assembler, Xilinx Spartan FPGA Families, Altera Stratix FPGA Family, Mentor Graphics Expedition PCB, Cadence OrCAD, Eagle PCB, Agilent 16700A/B Logic Analysis System and Digital Storage Oscilloscopes, Hewlett-Packard 1650B Logic Analyzer, Tektronix Storage Oscilloscopes, Synplicity Tools, CUPL Logic Compiler/Simulator, SPICE, AutoCad, Microsoft Office, PXEboot/bootp/DHCPd config, Bugzilla, ISO 9001 Process Quality Control, Release Management, Memory Management (with and without MMUs), etc.
Computer Languages, Operating Systems, Distributions, Routers, etc.
Microprocessor, Embedded Processor, and FPGA Expertise
ARM Cortex-A5, Cortex-M4, iMX6, (Freescale/NXP Vybrid VF65/i.MX6/ Kinetis K60, Renesas RZ), Boundary Devices and various other vendors’ ARM modules, Xilinx Zynq-7000/Vertex/Spartan, ARM 926EJS, Atmel (AT32UC3, mega, xmega, tiny, AT90CAN), Microchip dsPIC33F, Arduino, MC9S12XDP512 (Freescale S12/S12X), 8051 (and variants), Silicon Labs C8051Fxxx, Xilinx Microblaze/PicoBlaze, Altera Nios II, Altera Stratix/Cyclone, Cypress PSoC, Maxim/Dallas DS80C400, PowerPC, XPORT, Rabbit RCM2200, SPI, I2C, CANbus, SPARC, UltraSparc, IPL (Itanium), MIPS R3000, 68030/68000 family, 6809, 8085, 6502, Z-80, ATCA, VMEbus, PC-ATbus, SBus, VXI, x86 (32- and 64-bit), IA-64 (Itanium/IPF)
Gyan Technologies, Cheyenne, Wyoming – Firmware/Hardware/Software/Electrical Engineer for various clients (various times 1995 - Present; some of these clients are also listed elsewhere in this resume):
o Numerous Clients in Automotive (e.g. Takata, automotive-industry DADDS program), Oil and Gas (Welldog), Scientific, Defense, BioMedical (Bio-Rad, Coviden), Law Enforcement, Security, and Consumer industries. Developed in-house embedded OS.
o Developed control adapter (hardware and firmware) for stepper motors for major biomedical firm. Implemented quadrature decoders, etc.
o Led firmware development of Raman Spectrometers using embedded CPUs, CPLDs.
o Involved in development for 21CFR certification of devices.
o Principal/Lead Linux Embedded Engineer for clients: Used Embedded Linux and MQX concurrently on the same platform in ARM multi-core environment. Used QT5 GUI development environment. Utilized galvanometers and stepper motors to precisely position mirrors to direct lasers for remote sensing of contaminated surfaces. Developed systems for BLDC motors.
o Wrote embedded OS, software, and configuration for same. Control CCD and laser devices using SOC (System-On-Chip) controller, high-speed UARTS, SPI, analog to digital converters, digital to analog converters, etc. Use PID control techniques to control CCD Peltier Coolers, current draw, temperature, etc. Develop and debug firmware for MCU to communicate with off-board ADCs and other devices via SPI and I2C/I2S (e.g. ADCs, DACs, flash/FerroElectric RAM). Embedded OS did all its own memory management without MMUs. Utilize knowledge of Verilog and Xilinx Spartan CPLD family to develop and debug real-time system. Work closely with other engineers to develop, debug, and test the entire system. Extensive use of logic analyzers, oscilloscopes, and other test equipment.
o Wrote firmware and assisted designing hardware for Human-tissue non-invasive Alcohol Detection system. Implemented SDCards, I2S, CANbus, etc.
o Developed hardware for the Automotive Environment (CANbus, etc).
o Inspect assembly output of C compiler for correctness to ensure proper operation and optimization of code.
o Schematic Capture and PCB layout using Mentor Graphics Expedition PCB and Cadence OrCAD.
o Incorporate LCD/touchscreen LCD panels, mobile phone camera (YUV / YCbCr 4:2:2, 4:0:0 sub-sampling and JPEG video), and LCD/Camera controller into instrument for DoD. Utilized knowledge of digital color spaces to transfer images and video from camera to LCD controller to the LCD panel (RGB 5:6:5, etc) and to a host embedded processor. Designed and routed PCB hardware interface to LCD/touchscreen panels. Utilized mobile-phone components (e.g. 2.2 inch and 1.8 inch LCD panels and touchscreens) in microBGA packages. Incorporated LED backlight controllers and wrote software to control the LCD/touchscreen backlight.
o OpenStack Folsom/Essex and OpenNebula setup, admin, debugging, etc (Quantum, Nova, etc). Became familiar with Cisco’s version of OpenStack Folsom (using Puppet, Cobbler, Quantum, etc).
o Develop FPGA configurations using Verilog/VHDL for Xilinx / Altera / Lattice FPGAs and CPLDs (e.g. Zynq, Spartan, Virtex, MachXO/MachXO2 and Stratix).
DADDS, Riverside, CA and Marlborough, MA and Cheyenne, WY – Senior Firmware and Hardware Engineer. 2013 – Present, (Gyan Technologies):
o Principal/Lead Embedded Engineer: Developed Bare Metal system for real-time acquisition, analysis, and data transfer of an Alcohol-Detection system for automobiles. Involved hardware and software for SPI and I2C devices, CAN communications, flash devices, I2S, ADCs, DACs, PWMs, solenoids, temp control, etc.
Metrohm / Snowy Range Instruments, Laramie, WY – Senior Firmware and Hardware Engineer. 2013 – 2016, (Gyan Technologies):
o Principal/Lead Linux Embedded Engineer: Used Embedded Linux and MQX concurrently on the same platform in ARM multi-core (A5 + M4) environment. Used QT5 GUI development environment. Utilized galvanometers and stepper motors to precisely position mirrors to direct lasers for remote sensing of contaminated surfaces. Developed systems for BLDC motors. Used Schematic Capture and PCB Layout tools.
Hewlett-Packard, Fort Collins, Colorado – HP Storage (“StorageWorks”) Division. Systems/Software Engineer V / SW Engr QA III (2007 – 2012)
o Architect and developer of HP Cloud Automation Infrastructure (“AI”) built around VMware ESX / Labman and HP MSA and EVA storage arrays - HP Storage iBRIX product family. Wrote extensive infrastructure framework to automatically provision, deploy and manage VM clusters and physical machines in the cloud, established communications between the cloud and users, provided Network control, and automatically undeploy and unprovision resources. Automatic clusters suspend / poweroff in case of error and save state for manual analysis. Set up and managed cloud datastore on top of HP’s MSA and EVA storage products. Created distributed resource pools of components (VMs, physical servers, iSCSI storage, networks, test suites) for automatic provisioning. Infrastructure in the cloud was built dynamically from these components based on high-level abstraction description. Users could choose which components to use based on datastore (if user didn’t care, it was chosen automatically), etc.:
o The AI sets up and manages clusters (or just single machines) via scripts supplied by users. AI supports user scripts written in Perl, Python, C/C++, and Java. Used SWIG locally or on remote machines (physical and virtual). Used STAF (Software Testing Automation Framework – OpenSource) extensively. Adaptable to any test harness. The AI also used many other OpenSource projects. Generate extensive reports. Wrote facilities to automatically write results to MySQL, email reports, schedule resources and deployments, etc. Designed high level description file formats for provisioning abstraction, testing, and other purposes.
o Developed major sections of the AI including the scheduler, VM interfaces, Cron, Resource Scheduler/Manager, Network Control, user command line interfaces, user configuration files’ format, checkpointing, logging/debugging, etc. Works with both clouds and physical machine clusters. Developed VMware Labman interface for automating suites on VM Clusters (Linux and Windows). Designed and wrote facilities to automatically generate and email reports. Used with many third-party testing harnesses (such as QA run, fsSmoke, Mantis) and facilitates working with other test harnesses. Designed to be able to test pretty much any kind of product, software or hardware.
o Saved hundreds of man-hours per month by creating automated Windows parallel build environment to work in the cloud. This allowed product builds to be completely automated for multiple users simultaneously. Used Cygwin and OpenSSH and leveraged work done by others. Shared this configuration so other engineers could use it as a template for their own cloud build servers.
o Collaborated with QA developers to deploy File System Smoke Test Harness (“fsSmoke”) in a virtual environment using the AI Framework. Collaborated with QA Developers to migrate their test harnesses to the AI Cloud.
o Developed automated Fault Injection utilities and tasks for the team’s Automated Infrastructure (AI). In addition to allowing all developers and managers to more easily perform and track regression testing, these allowed control of Ethernet and Fiber ChannelNetwork switch ports and controlling power to individual blades and servers using HP’s OA (Onboard Administrator), iLO (Integrated Lights Out) via SNMP, XML scripts, TCL, Expect and Perl.
o Release Management and Linux RPM packaging. Installed and administered Bugzilla. Automated QTP (Quick Test Pro) in HP’s AI.
o Convert legacy test harnesses to local requirements for HP Storage Division’s needs
o Wrote extensive documentation for both users and developers. Collaborated with others to review manuals.
o Led Wipro contractor team.
o Mentored junior engineers.
o Constant collaboration with other teams in the US and internationally. Gave technology presentations.
o Became very familiar with HP Storage Cluster products. Set up and tested SAN/NAS arrays. Config iSCSI disks to Linux systems. Collaborated with other developers to review test scripts and suites.
o Develop SNMP tools for controlling Ethernet Switches, power, and other devices.
o Set up and tested performance of InfiniBand network for iBRIX cluster using InfiniBand switches. Setup and administer team development and testing servers.
o Developed Kickstart (PXE Boot scripts/configurations for bare metal installation automation) configs for Linux and Windows OSes for various customers. Helped other teams with same.
o Mentored new/incoming members of the team.
o Took numerous internal classes to broaden my horizons
Broadcom / Precision Tech, Fort Collins, Colorado – Firmware/Hardware/Software/Electrical Engineer. 2006 – 2007 (Gyan Technologies):
o Ported Linux kernel and system to ARM-based chip (ARM926EJ-S MCU) and Broadcom board that booted from flash, executes in place (XIP) and uses a small amount of RAM. Board Bringup from bare metal to operational Linux command line via BusyBox, etc. Project Leader.
o Created x86 Linux embedded systems with optical drive boot (no hard drive). Developed builds and scripts to assist embedded system bring up. Incorporated graphics, etc onto read-only filesystem.
Covidien, Longmont, Colorado – Senior Hardware/Firmware/Software Engineer. 2008-2009 (Gyan Technologies): Code Reviews for Embedded Systems written in “C”. Reviewed embedded software for a multi-cpu system according to Covidien’s internal coding standards for Tumor Ablation Products.
Hewlett-Packard, Fort Collins, Colorado. Advanced Telephony Compute Architecture (ATCA) Embedded Systems – Test Engineer (2005 - 2006): Embedded systems programming (Linux), qualification, and testing on x86/x64, ARM CPU systems, and CPU blades. Develop C programs and Perl/Expect scripts for short- and long-term testing. Setup/Provide necessary internal Linux infrastructure internal and external to ATCA chassis for PXEbooting, DHCP, etc for development, debugging, and testing. Develop user interface to PXEboot various operating systems in specific slots. Qualify/verify that vendors’ ATCA components (Shelf Managers, Ethernet Switches, PEMs, Chassis, CPU blades, etc) conform to PCMIG specifications and interoperate with each other. Found numerous defects in vendors’ ATCA components and reported these in HP’s internal ABE Defect Tracking System.
Welldog, Laramie, WY – Senior Firmware and Hardware Engineer. Various periods between 2005 – 2016 (Gyan Technologies):
o Developed 100% of the firmware for down-hole spectrometer for Oil and Gas industry. Debugged hardware for in-house developed equipment that was sent 3,000 – 5,000 feet down a well hole (harsh environments).
o Led development of Raman Spectrometers using embedded CPUs, CPLDs
o Please see entry for “Gyan Techologies” for work done, skills used, etc.
Other Clients / Older Work History. For further details on these, please contact me.
Syndrome Corporation, Cheyenne, Wyoming – Senior Hardware/Firmware/Software Engineer/Design (2001 – 2006): Develop FPGA configurations using Verilog for prototyping products using Xilinx and Altera FPGAs and CPLDs (Spartan, Virtex, and Stratix Families). Develop hardware from design to PCB layout and fabrication to RTL.
Shuffle Master, Inc., Fort Collins, Colorado –Project Lead/Systems Engineer - Embedded Linux (December 2002 – December 2003), Embedded Hardware/Firmware/Applications Development (November 2003 – March 2005)
AT&T Bell Labs / Lucent / Avaya Communication / Gyan Technologies, Westminster, Colorado. Senior Systems Development Engineer / Senior Systems Analyst (August 1995 - May 2001):
o Develop code in C, Perl, shell, awk, etc. Developed extensive web interface for administrative functions using Perl cgi-bin. Assist in discovering and fixing Unix kernel, driver, and library bugs; apply enhancements to same.
o First contact for "triage" team - emergency response to field support escalations for North America and the Pacific Rim.
Senware, Broomfield, Colorado. - Senior Software Developer (March 2001 – December 2001):
Develop Perl code for Automatic Oracle Database Tuning Tool. Develop Unix packages for Perl scripts and SQL code. Install Oracle Database software.
The Wyoming Operation, Inc. (TWO Corp), Cheyenne, Wyoming - Director of Network Operations. Chairman Of The Board. Principal (various periods between 1996 – 2006): Develop admin tools and Perl cgi-bin scripts. Wrote Linux web-based automated user administrative and billing system. Configured Cisco Routers for ISP operations.
Government of the State of Wyoming, Laramie County, City of Cheyenne, Cheyenne, Wyoming. - (Approved Vendor) – Linux/Unix Consultant: Develop code, etc.
J.D. Edwards / ADIA Information Systems, Denver, Colorado. Senior Analyst: Write shell, awk, and other scripts. Develop porting plan and schedules. Work closely with Windows programming staff.
US West / AT&T-GIS / ADIA Information Systems, Denver, Colorado. Senior Analyst: Sybase development and server porting to UNIX: Implement/rewrite UNIX system calls and SQL using C++. Ported company-wide sales database system to Sybase/C++/SQL. Design/implement server architecture. Wrote shell scripts to automate field package installation.
Tandem Computers / ADIA Information Systems, Denver, Colorado. Senior Programmer Analyst: Distributed Applications Services (DAS) port from UNIX. Also wrote various tools using shell scripts, awk, sed, and Perl.
Resource Solutions International / SHL Systemhouse / Interactive Systems / Kodak , Boulder, Colorado. Systems Engineer:
Chemagnetics / Otsuka Electronics, Fort Collins, Colorado. Product Engineer for Magnetic Resonance Imaging (MRI) and Analytical Spectrometers
Compu Systems Corporation, Laramie, Wyoming. Engineering Manager, Director of Engineering
Education: M.S. Electrical Engineering, University of Wyoming. B.S. Electrical and Computer Engineering (Chemical Engineering Minor – undeclared), University of Wyoming. Passed the E.I.T. (F.E.).
Certifications: ASTQB / ISTQB Certified Tester, Foundation Level (CTFL); Agile Certified ScrumMaster (CSM)
Other: Cheyenne Engineers’ Club:
President, Vice President, Treasurer/Secretary
Wing Leader, Wyoming Wing, Angel Flight West, National Medical Charity
President and Founding Member, Cheyenne Flying Club
Board and Founding Member, Wyoming Pilots’ Association, a Non-Profit Org