Terry Lane
Westminster, CO **0021
*****.****@*******.*** 720-***-**** (cell) 303-***-**** (home)
Objective: Real Time Embedded Software Engineer
Experience:
2012–Present Principal Software Engineer, Oracle/Sun/StorageTek (Automated Tape Libraries),
Broomfield, CO
Primary software developer on Robotic Controls card using TI ARM/DSP (OMAP-L138). ARM
side running under TI Linux for general non-hard real time operations. DSP side for real time
Servo Closed Loop Controller (single threaded ISR timed service). Inter-process Communications
via shared memory. Architecture, Design and implementation of Robotic Controls, Vision
Operations, Library Controller Interface (Ethernet), Robot positioning, Diagnostics/Error reporting,
code load and implementation of build. Development and debug using Code Composer Studio,
GDB and internal tracing facilities.
2009–2012 Principal Software Engineer, Oracle/Sun/StorageTek (Automated Tape Libraries),
Broomfield, CO
Developed Architecture, OS and API for a set of multifunctional real-time interrupt driven Micro-
controllers (primarily using the PIC 24F). Functionality included Stepper Motor controls, Tape
Drive Interfaces, Vision data collection (bar code and targeting), Sensor state change
management and all other low level HW support for the library. Developed the USB-CDC to the
PIC as well as the low level interfaces to components (I2C, SPI). Code development in C using
Microchip’s MPLAB IDE. Also implemented the build system for the Pic’s on Linux as well as
Boot-loader support.
Ported, re-factored and implemented applications on x86 card running Linux for Robotic
operations and Vision Label decode and targeting (position calibration). Additionally, added
initialization and diagnostics for mechanical and electrical fault isolation.
1997–2008 Advisory Software Engineer, Sun/StorageTek (Automated Tape Libraries), Broomfield,
CO
Development of real-time embedded software for robotic tape storage libraries. Developed code
for servo control, robot positioning, vision systems, drive communications, user interfaces and
various other operations. Projects used ppc403 running on Linux (2.4 and 2.6) with earlier projects
using VxWorks. OO design with code developed in C/C++. Developed extensive unit testing using
CPP_UNIT. Code revision control using ClearCase. Debug with DDD/GDB. Development
primarily on Sun Workstations running Solaris with some development on PC’s.
1994-1997 Sr. Software Engineer, StorageTek (Tape Division)
1990-1994 Staff Software Engineer, StorageTek (Tape Division), Louisville, CO
Development of real-time embedded software for tape storage products including initialization,
code load, servo control, and diagnostics running under VRTX OS on a SPARC and an interrupt
driven system on a TI DSP processor. Debug tools include C source level Logic analyzer and
Software debugger as well as various Emulators. Code developed primarily in C with some
assembly. Development was on Sun Workstations under UNIX.
1984–1990 Software Engineer, McDATA Corp., Broomfield, CO
Development of embedded software for networking products. Developed embedded diagnostic
code for various projects including host channel extenders and network bridge products. Code
developed for 8031, 8052, 80186/286/386 and Bit-Slice processors in C and assembly.
1982-1984 Test Engineer, Storage Technology Corp. (Optical Disc Division), Longmont, CO
Development of Software and Hardware for Servo Control and Analog cards for automated test
systems.
1978-1982 Engineering Technician, Electronic Processors, Inc., Englewood, CO
Development, test and debug of industrial control tape loaders and medical monitoring equipment.
1976-1978 Engineering Technician, Electronic Processors, Inc., Englewood, CO
Developed, built and supported test equipment and firmware for various products.
Embedded Software/Hardware Development Skills:
• C/C++ and assembly
• Software Design and Implementation on both OS based and non-OS systems with layered
approach and object methodologies.
• Extensive code development and debugging experience on embedded systems, with debug at
source, assembly & machine code levels
• Real time performance benchmarking and optimization.
Development on embedded systems using TI ARM & DSP, PIC Microcontrollers, Power PC, X86,
SPARC, 805X, Bit Slice based products and various other microcontrollers and processors.
• Experience with multi-tasking embedded RTOS and single threaded interrupt driven systems.
Embedded OS's include “Real Time” LINUX (2.6), Vxworks and VRTX.
• Development platforms include Linux, UNIX, Solaris and Windows.
• Software and Hardware Debugging with various Tools and Equipment: Emulators (processor
and JTAG), Logic Analyzers, Oscilloscopes and Source Level debuggers.
• Debuggers include Code Composer Studio, MPLAB and GDB.
• Build systems, Unit Testing and Simulation
• XML, SAX Parser (developed a description language within XML to define locations in the Tape
Library for robotic positioning.)
Controls and Vision Systems Background:
• Servo Control design and analysis using Matlab with controller design using Matlab’s Rltool.
Mechanical system identification using Control System Analyzers and internal code driven bode
measurements. Designed servo control software, implementing a code base used for all products.
Developed multi-profile moves and generic methods to derive move paths and positioning.
Obtained various patents for unique methods used in the product. Closed loop control developed
for brushless and brushed motors. Contributor to over ten successful products.
• Servo Controls, Robotic Operations and Recovery, Inter-process Communication and Vision
Systems. Control experience with brushless, brushed and stepper motors. Use of solenoids and
other actuators. Closed Loop Servo Control using feed-forward based Position and Velocity
control. State Space and PID compensators.
• MathWorks, including general Matlab, Simulink and RLTool.
• Control and Digital System Analyzers.
• Various work on mechanical plant identification/modeling using mechanical specifications and
developing methods to measure plants as well as well as plant and compensator. Measurement
of friction and other mechanical characteristics.
• Experience with Analog and Digital Hardware.
Personal Skills:
• Work well in a team environment as well as on projects as a sole contributor. I have been on
many projects as part of a large team and projects with single mechanical, electrical and software
engineers.
• Use to a fast paced development environment requiring multiple responsibilities in the
development of the product.
• Software development team member of over thirty successful products.
Education:
B. S. Electronic Engineering – Dual Emphasis in Controls and Computer Design
Metropolitan State College, Denver, CO
Associate of Electronic Technology
Arapahoe Community College, Littleton, CO