DeaTech Research Inc.

www.deatech.com

P.O. Box 86, Philomath, Oregon 97370

Contact: Shannon Dealy - dealy@deatech.com

Phone: (800) 467-5820 or (541) 929-4089

Quality custom software development: Specification, Design, Coding, and Maintenance to meet any desired software standard.  Services available on either a fixed price bid or an hourly rate basis.  Discounted rates for open source.

Embedded Systems

Real Time

Device Drivers

Linux / UNIX

Internet / Web Development

Software Cleanup / Refactoring

Scientific Applications

Communication Equipment

Medical Devices

Software

Languages:

Basic, C, C++, FORTRAN, Haxe, Java, LISP, Pascal, PHP, PLM, LEX, YACC

Assemblers and CPUs

68HC05/68HC08, 68HC11/68HC12/68HC16, Z80, 8080, Z8, 8086/8088, 8031/8051, 68000, 68020, 68332, ARM, Microchip PIC, many other older/obsolete assemblers.

Shell Languages:

awk, bash, csh, ksh, perl, sh, tcl

Database:

JDBC, MySQL, Paradox, PostgreSQL, SQL

Source Management:

Make, PVCS, CVS, RCS, SCCS

Kernels & Operating Systems:

AMX, Linux, MS-DOS, MS-Windows, QNX, UNIX, VRTX, and a variety of custom “in-house” kernels for various companies.

Protocols:

Mil-Std 1553, IEEE-488, RS-232, SCSI, SPI, I²C, TCP, IP, UDP

Internet:

Apache, BIND, CGI, DNS, Drupal, HTML, HTTP, Java Servlets, Java Server Pages (JSP), PHP, TCP/IP, XML, Many other related skills

Administration & Networking:

Linux, UNIX, QNX, MS-DOS, MS-Windows, Custom Firewalls, Network Backup and Recovery Systems

Specialized Skills:

National Instruments Data Acquisition (NI-DAQ), Genetic Algorithms, Battery Powered Devices, High Reliability and Fault Tolerant Embedded Devices, Barcode scanning and decoding, System Diagnostics, FedEx shipping API's, Adobe Acrobat® Plugin API, Adobe Flash®, OCR libraries: OmniPage Capture SDK and Abbyy FineReader Engine SDK

Hardware Design and Debug

Equipment:

Oscilloscopes (Analog and Storage), Logic Analyzers, Assorted processor emulators and data bus analyzers.

Processors:

Extensive experience with Motorola 68332, 68000, 68020; Zilog Z8 & Z80; Intel 8051/8031; some hardware experience with a wide range of other processors.

Well versed in digital design and trouble shooting techniques, I have often resolved "software bugs" that were in fact, hardware design or manufacturing problems, such as: timing violations, ground bounce, ringing, capacitive / inductive coupling, defective chips, and shorted traces, as well as complex interactions between hardware and software bugs.

Education

B.S. Computer Science, June 1983, Oregon State University.  Emphasis on design and implementation of assemblers, compilers, and operating systems.  Also performed extensive course work in physics and mathematics.

Recent Projects / Customers

NOTE: Due to overlapping of projects, it is impractical to put the following in chronological order, projects are grouped by customer, and customers are ordered based on the date of the most recent project completed for them.

Pajaggle, Inc. - 2009

Created an Adobe Flash® compatible version of Pajaggle's board game products to be used as a marketing tool for promoting their games online.

Trapezy Inc. - 2007-2009

Developed a plug-in for Adobe Acrobat® which uses OCR technology to identify any one of over 8,000 standard forms in a document and bookmark each page accordingly.

Gene Tools, LLC - 2004-2009

Worked as part of a small team to create, maintain and perform upgrades on a web based E-commerce and production management system using Drupal, PHP, and MySql.  I was responsible for writing most of the core classes that managed user data input, validation, and storage in the database.  Also wrote the software for managing packing and shipping of orders including interfacing to the FedEx computer systems for domestic and international shipping.

Air-Weigh - 2007

Designed and coded device drivers for a newly developed ARM-7 processor board based on an ST Microelectronics STR75x series micro-controller.  Drivers included: UARTs, SPI, I²C, EEPROM, A to D converters, timers, and digital I/O.

TixRUs - 2006

Designed and coded PHP software for a web server to enhance an online ticketing web site.

Meteor Communications Corporation - 1986-2004

Developed a web server platform which provides Internet access to an RF data acquisition system.  Features included secure command interface to the radio relay units, web based system administration and status monitoring, configuration of data acquisition parameters, security protocols to allow customers to only access data and configuration for their units, and user configurable data report generation / display.  Worked with MCC's software developers to create system and software specifications; designed and coded all of the server software; configured and installed a Linux based server platform.  Software was implemented using the Java servlet API, Java Server Pages (JSP), and a PostgreSQL database.

Made hardware design recommendations, designed and coded device drivers and hardware diagnostics for a single board computer using a MC68332 processor to control an RF data communication link.

Analyzed a network of 8051 micro controllers used to control an RF communication link for causes of performance problems and numerous bugs.  Made major software design changes and devised field installable hardware modifications to fix the bugs and increase system throughput to more than four times its best prior data rate.

Some of the many other projects performed for Meteor Communications include: development of test/diagnostic software for use in pc board manufacturing; custom QNX device driver for data acquisition; debugged several existing products, correcting numerous core hardware and software design problems; developed software to interface a GPS unit to a data communication system; ported a data acquisition and RF communication program to a new hardware platform; re-designed and coded software on a data acquisition unit to reduce memory consumption by 40%.

Ortech Industries Inc. - 2002

Modified software written in PIC assembly language (MPASM), for a pellet stove control system.  Changes included finer timing resolution and more flexible sequencing for the ignition system.

Inovise Medical, Inc. - 2000

Designed and coded scripts for testing a hospital patient monitoring unit.

BioAnalogics - 1999-2000

Analyzed existing software development/release system for causes of inconsistencies in released code and created a single uniform build process to eliminate the release problems.  Made recommendations for user interface design changes, addressing internationalization issues, and design/implementation of a next generation version of the software.

Althin Medical Inc. - 1996-1998

Performed general software cleanup/refactoring on a large embedded C program (130,000 lines of source code) to improve maintainability, reliability, and reduce memory requirements: redesigned algorithms, restructured code, modularized standard functionality, and encapsulated code that should be replaced by commercial libraries.  This work resulted in the elimination of 45% of the source code (before converting to use commercial libraries) and reduced the size of the executable by over 20%, as well as finding and fixing numerous bugs.

Wygant Scientific - 1995-1996

Designed and coded software for a computer to perform digital voice recording in a networked client/server environment using a National Instruments data acquisition card.  Devised an algorithm to allow an Intel 486/66 based computer to acquire data and perform real time ADPCM compression on 48 simultaneously recorded channels.

Egyptian Ministry of Public Works and Water Resources - 1993-1994

Designed and taught an intensive four week course in advanced C programming tailored to the needs of the Ministry's programming staff.  Gave additional introductory lectures on real time software design, multitasking, database design, and computer graphics.  Developed a C program to collect data from the Ministry's Nile river monitoring system.

Physio Control - 1993-1994

Wrote a program to analyze C source files for specific data dependencies in order to determine which sections of the software should be given priority during testing and validation of a product.  Setup a custom computer system to streamline the system build process, greatly simplified maintenance of the build scripts and reduced the time required for a complete software build from several hours to less than 10 minutes.  Worked as part of a team of engineers writing software requirements and test scripts used in validating software for a heart defibrillator unit.

Biotope, Inc. - 1990

Designed and implemented a custom file system and C language system calls for a 68000 based blood analysis system.  Designed and coded software to use the analyzer's optical data acquisition system to read bar codes.  Wrote text and graphics display driver for an LCD display.  Performed system administration for a network of Sun workstations.

Process Solutions - 1989-1990

Wrote software specifications, designed and coded a program to allow a PLC-5 industrial controller to use an IBM PC for serial communications and as a user interface to a weigher system used for packaging food products.

Coastal Climate Corporation - 1989-1990

Performed extensive redesign and maintenance work on a PC based meteorological data acquisition, display, and analysis system, greatly reducing the size of the source code, improving performance, and eliminating many bugs in the system.  Also added a number of new features to the software including improved system configuration capabilities.

Sage Electronics - 1989

Developed a Windows based user interface program for configuration and real time monitoring of a building energy management system.  Also wrote a program to parse the software specification document for this project and generate ready to compile source files defining all dialog boxes and screen displays (involving thousands of data fields) for this program.  Use of this parsing program saved at least a month of development time.

International Biomedics Incorporated - 1988-1989

Head of software development.  Worked with the Quality Assurance department to create specification, design, and coding standards so that all new commercial software releases would meet FDA requirements.  Wrote software specifications for a fetal tissue pH monitoring unit.  Wrote a driver to allow a PC printer to be used as a medical strip chart.  Began development of a software core to allow replacement of much of the custom software in the fetal monitoring equipment with standard display, printing and networking drivers available from commercial vendors.

Texas Instruments - 1983-1986

Worked as part of a test group for a new computer under development.  Wrote programs for testing the new hardware, performed general trouble shooting (hardware and software) of problems with both the test-bed system and the system under test.  Performed hardware and software validation of an IEEE-488 interface card.  Designed, coded, wrote test procedures, and maintained a series of programs used to enhance the capabilities of a CAD system.  Wrote requirements, design, and maintenance documents, as well as user manuals for various programs.

Presentations and Other Projects - 1982-Present

Presentations to local computer groups: implementation of custom firewalls; virtual computing environments including User Mode Linux and VMWare; creating reliable data backups; advertising techniques for computer consultants; managing a software business and developing software while traveling the world.

Developed nutritional and agricultural analysis software for selecting foods to plant for a balanced diet.

Wrote a cross assembler for the Zilog Z8 micro controller.