Post Job Free
Sign in

Software Engineer

Location:
United States
Posted:
January 01, 2014

Contact this candidate

Resume:

Dan Knight

661-***-****

*******@**********.***

EDUCATION

B.S. Computer Engineering - University of the Pacific - Stockton, CA

SUMMARY

* Excels at writing high-quality software that exceeds expectations

* Extensive experience writing robust software from device drivers to

the GUI

* Quickly productive in new software development environments

* Debugs complex system problems with proficiency

* Handles multiple projects simultaneously

* Self motivated problem solver

* Works with integrity

TECHNICAL EXPERIENCE

Languages C++, C, Visual C++, LabVIEW, C#, Cocoa Objective-C, JavaScript,

Visual Basic, Ada, Pascal, FORTRAN

Systems Windows (2000, NT, XP, Vista, 7, XP Embedded), Linux, Mac OS X,

iOS, VxWorks, pSOS, RTOS, DOS, OS-9, OS-9000, LynxOS, UNIX,

Solaris, VAX/VMS, Micro/RSX

Other Skills Visual Studio, Qt, Eclipse, software engineering, real-

time systems, embedded systems, data acquisition (DAQ), closed

loop control systems, PID control, image processing, drivers,

GUI, multithreading, multiprocessing, client/server, TCP/IP

sockets, XML, GCC, wxWidgets, .NET, MFC, USB, I2C, SCSI,

Modbus, DeviceNet, RS-232, RS-485, DLL, X Windows, iPad, digital

I/O, analog I/O, National Instruments DAQ, GPS, Matrox Imaging

Library, Standard Template Library (STL), image acquisition,

network camera, ARM, PowerPC, 8051, 68000, PC/104, DSP, VME, PCI

WORK EXPERIENCE

Embedded Software Engineer

SequoiaTek Corporation - Bakersfield, CA

(July 1999 - Present)

Designed and developed software for many different complex systems. See the

individual SequoiaTek project listings below for detailed information.

SequoiaTek Project with Sandia National Laboratory

Developed a cross-platform data acquisition and control software

application. The multithreaded software was highly configurable which

allowed the same software to control completely different systems.

JavaScript was used to allow the control logic to be modified without

modifying the C++ source code. The software used a client/server

architecture to allow for remote control from a PC and/or iPad. The

software controlled and monitored stepper motors, valves, analog I/O,

digital I/O, thermocouples, pressure transducers, syringe pumps, high

voltage power supplies, and various instruments. The remote GUI client

displayed system status and allowed the operator to control the system. The

software included real-time data logging and graphing. The software was

deployed on different digital microfluidics systems and a high pressure

hydrogen test system. Developed an application to decimate extremely large

data files into smaller data files.

Programming Languages: C++, JavaScript, and C#

Operating Systems: Windows XP, Windows 7, Mac OS X, Linux, and iOS

SequoiaTek Project with Setaram Instrumentation

Maintained existing LabVIEW software for a high performance gas sorption

instrument. Added PID control for new heater hardware. Fixed many pre-

existing software bugs. The software controlled and monitored valves,

regulators, analog I/O, and digital I/O.

Programming Language: LabVIEW

Operating System: Windows XP

SequoiaTek Project with ProSoft Technology

Developed software for inter-process communication (IPC) based on TCP/IP.

Developed software for event logging for a multiprocess system. Ported

software for an Allen-Bradley ControlLogix general serial communications

module from a DOS platform to a Linux platform. Ported software for an

Allen-Bradley ControlLogix DF1 communication module from a DOS platform to

a Linux platform.

Programming Languages: C and C++

Operating System: Linux

SequoiaTek Project with General Motors and Sandia National Laboratory

Developed a multithreaded software application to control multiple hydrogen

fuel cells. The software interfaced with valves, flow controllers, flow

meters, regulators, pressure sensors, thermocouples, RTDs, analog input

devices, pumps, heaters, Modbus devices, DeviceNet devices, a PLC, and a

Kepware OPC Server. The GUI displayed system status and allowed the

operator to perform manual and automated control of the system. The

software performed automated hydrogen absorptions and desorptions using

automated control loops. The software included real-time data logging and

graphing.

Programming Languages: C++ and LabVIEW

Operating System: Windows XP

SequoiaTek Project with Lawrence Livermore National Laboratory

Developed software for an airborne high resolution image acquisition and

display system. The multithreaded software interfaced with GigE network

cameras and Camera Link cameras. The cross-platform image display GUI

software was written using wxWidgets to allow for easy porting to different

operating systems. The software generated a real-time camera trigger signal

to multiple cameras simultaneously. The software gathered GPS/INS data from

an external system via a serial port and then transmitted the information

via TCP/IP to multiple camera servers that embedded the GPS/INS data into

camera image data. The software stored image tracking data in XML files.

The software also had a TCP/IP socket server that allowed multiple GUI

client connections. The GUI client application used TCP/IP sockets to

connect to the camera trigger system. The client software allowed for

remote control of the system using Mac OS X and Windows systems. I also

ported a large application written for Mac OS X to run on the Linux

platform.

Programming Languages: C++ and C

Operating Systems: Windows XP, Mac OS X, and Linux

SequoiaTek Project with Sandia National Laboratory

Developed software for local and remote control of an embedded bio-

briefcase device. The multithreaded software was very flexible and could be

configured to match the hardware setup. The software was able to read and

run script files that allowed the control algorithm to change dynamically.

The embedded software interfaced with analog I/O, digital I/O, and stepper

motor hardware. The embedded software had a TCP/IP socket server that

allowed multiple GUI client connections. The client application used TCP/IP

sockets to connect to the system. The client software allowed for remote

control and display of various system parameters and dynamic loading of new

script routines.

Programming Languages: C++ and C

Operating Systems: Windows XP and Windows XP Embedded

SequoiaTek Project with Sandia National Laboratory

Developed software to calculate the position of a reticle for a

semiconductor equipment system. The system consisted of a VME based image

processing board and a PC. The PC communicated with the VME board using a

PCI bus to VME bus converter. The embedded software running on the VME

board performed image processing on video camera images and calculated the

position of the reticle using a complex algorithm. The PC allowed the

operator to control the system and communicated with the VME system using

shared memory.

Programming Languages: C++, C, and Visual Basic

Operating Systems: Windows 2000, Windows NT, and pSOS

SequoiaTek Project with Intel Corporation and Extreme Ultraviolet

Lithography LLC

Developed software to run on an embedded USB sensor device. The sensor

performed analog I/O and communicated with a PC using USB. The sensor

streamed real-time analog input data to the PC. Designed and developed a

system to capture and display multiple video images on one PC monitor. This

image display system also received data from several other server systems

using reflective shared memory. Designed and developed image processing

software to find blobs of laser light in an image and then calculate the

centroid of the blobs that were found. Designed and developed software for

an embedded DSP processor to gather and process real-time analog input

data. Designed and developed LabVIEW drivers to allow control of several

different motorized devices. Designed and developed DLLs to control a CCIR

integration camera. Designed and developed DLLs to communicate with Windows

NT drivers to control an RS-170 integration camera. Designed and developed

LabVIEW drivers to interface to DLLs to allow control of cameras through

LabVIEW. Designed and developed LabVIEW drivers to communicate with a laser

energy meter.

Programming Languages: C++, C, LabVIEW, and Visual Basic

Operating Systems: Windows 2000, Windows NT, pSOS, and VxWorks

Software Engineer

Lawrence Livermore National Laboratory - Livermore, CA

(June 1996 - June 1999)

Developed a laser control system using video frame grabbers, stepper motor

controllers, and a PC. A client/server architecture was used to allow

remote access to the control system using a GUI client. A multithreaded

application performed image processing at frame rates on two video inputs

and then applied control to mirrors using stepper motors. Team leader for a

group of 7 engineers and technicians during the deployment of adaptive

optics real-time laser control systems in a plant environment. A

multiprocessor architecture was used with Power PC and 68K processors on a

VME bus. The systems included image analysis, analog I/O, digital I/O, and

stepper motor control. Designed and developed a stepper motor software

driver. Designed and developed prototype systems for future plant systems.

Designed and developed benchmark algorithms to compare different CPU and

operating system platforms.

Programming Languages: C++, Visual Basic, and C

Operating Systems: Windows NT, OS-9, OS-9000, VxWorks, UNIX, Solaris, and

Windows 95

Embedded Software Engineer

NASA / HyperSpectral Sciences Inc. - Livermore, CA

(January 1997 - June 1998)

Developed software to interface an embedded PC/104 system to a high

resolution digital camera. The camera and embedded system were part of the

payload of an unmanned-solar-powered aircraft. Designed and developed a

ground station GUI to allow control of the airborne embedded system from a

remote ground station using TCP/IP sockets.

Programming Languages: C++ and Visual Basic

Operating Systems: Windows 95 and Windows NT

Software Engineer

Lightspeed Software - Bakersfield, CA

(September 1993 - May 1996)

Developed a software driver for a SCSI board to allow high speed

communication over a SCSI bus between a PC and a Wang computer. Designed

and developed e-mail gateway software products to connect various e-mail

systems (Microsoft Mail, Microsoft Exchange, cc:Mail, GroupWise, Banyan

VINES, and Wang Office). The gateways provided automatic directory

synchronization and transparent e-mail exchange. Wrote documentation for

each e-mail gateway product. Worked with customers to troubleshoot network

and system problems. Taught internet classes.

Programming Languages: C++ and C

Operating Systems: DOS, Windows 95, and Windows NT

Computer Consultant

Bakersfield, CA

(October 1992 - September 1993)

Designed and developed a database application to keep track of test results

for medical patients. Provided hardware and software support for PC and

UNIX systems. Designed and developed a database application to track

donations for a non-profit organization.

Programming Languages: Paradox and Microsoft Access

Operating Systems: DOS, UNIX, and Windows

Programmer Analyst

Chevron - Bakersfield, CA

(April 1991 - September 1993)

Developed an application for CAD file management. Designed and developed an

automatic network backup system. Designed and developed several custom

applications. Maintained VAX/VMS and UNIX systems. Solved system hardware

and software problems. Maintained TCP/IP and DECnet networks.

Programming Languages: C, FORTRAN, UNIX Shell Scripts, and Digital Command

Language

Operating Systems: UNIX, VAX/VMS, and DOS

Computer Consultant

Shell Oil - Bakersfield, CA

(September 1990 - April 1991)

Maintained VAX/VMS and UNIX Systems. Developed several custom software

applications. Solved system hardware and software problems. Maintained

computer networks.

Programming Languages: FORTRAN and Digital Command Language

Operating Systems: VAX/VMS and UNIX

Software Engineer

Lawrence Livermore National Laboratory - Livermore, CA

(August 1988 - August 1990)

Developed software for a laser control and data acquisition system. Control

and data acquisition was accomplished using stepper motors, digital I/O,

analog I/O, and custom I/O devices. Assisted in hardware debugging during

software and electronic hardware integration. Designed and developed an X

Windows user interface. Wrote software drivers for analog I/O, digital I/O,

stepper motors, and custom devices. Wrote network communication software

for remote control of systems from a supervisory control system.

Programming Languages: Ada and C

Operating Systems: VAX/VMS, VAXELN, and DOS

Software Engineer

Varian Associates - Palo Alto, CA

(June 1987 - August 1988)

Developed software for control of automated semiconductor manufacturing

equipment. The equipment was controlled via serial and digital I/O.

Involved with software and hardware integration. A touch-screen terminal

was used for the user interface. Wrote distributed system communication

software following the Semiconductor Equipment Communications Standard

(SECS).

Programming Language: C

Operating Systems: Micro/RSX, VAX/VMS, and DOS



Contact this candidate