Fred Bulback
Software and Hardware Developer

   Location: Near Austin, TX
   email: sg_employment@geekhideout.com
   URL: http://geekhideout.com

Summary Of Qualifications

     * Expertly skilled with C/C++, SQL, CGI,
       assembler, Delphi, Visual Basic, embedded
       design, and device driver development for
       Linux, OpenBSD, Windows
       (3.x/95/98/ME/NT/2000/XP).
     * Highly knowledgeable with many operating
       systems, including Unix (AIX, Solaris, HP-UX,
       FreeBSD, OpenBSD, QNX, Linux), Windows
       (3.1,95/98/Me, NT/2000, XP), DOS, OS/2, MacOS.
     * Extensive experience in hardware and software
       development.
     * Adept at writing high-performance, easily
       maintainable code.
     * Strong problem-solving and troubleshooting
       skills.
     * Project management skills, including client
       procurement, proposal and contract writing,
       client communications, and development team
       management.
     * Technical writing and documentation

Employment History

Freelance consultant/contract developer/writer (1998 -
present)

     * Migration of a massive Oracle database to
       MySQL running under RedHat Linux.
     * Development of Palm Pilot based software for
       the purpose of calibrating pressure sensors
     * Software development of a PIC 16F877 data
       logger. Written in C.
     * Fuzzy logic software for Linux to regulate an
       industrial pressure calibrator. Written in C.
     * Development of a Windows based application
       that will install software updates onto an
       industrial pressure calibrator. Written in
       Visual C++.
     * Migration of 3 million lines of Solaris source
       code (mostly C++ (VisualAge) and Imake and
       make, with some Perl, shell scripts and Cobol)
       to AIX for a telecommunications billing
       package.
     * Migration of some 3DFX video drivers from
       Windows 2000 to Linux.
     * Development of a tool to administer databases.
     * Development of software and hardware for a USB
       based data acquisition system. (Visual C++,
       Delphi, PIC assembler).
     * Development of a Windows 2000 driver for a
       high-performance teleconferencing system.
       (Visual C++, Assembler)
     * Linux and FreeBSD based software for an
       "online community." Included many CGI scripts
       that generated pages on the fly. (Perl, GCC)
     * Data conversion tools for a major time and
       attendance company. (Delphi, Paradox, SQL
       Server, Oracle, Interbase, Sybase)
     * Technical articles on a variety of subjects,
       mostly related to low-level drivers.
     * Development of Plug and Play ISA/PCI/PCMCIA
       cards and a USB device for interfacing with
       JTAG compatible circuitry.(C/C++, Assembler)
     * High speed device drivers (95/98/NT) for JTAG
       interfacing. (C/C++, Assembler, Delphi)
     * Upgrade of database software for a local
       trucking company. (Delphi, Paradox, Interbase)
     * Printed circuit board design for a previous
       employer.

Sphere Research Corporation (1995 - 1998)

Vice President of Software Development.

Responsibilities:

     * Project acquisition and feasibility.
     * Writing contracts.
     * Assignment of specific tasks to co-workers.
     * Software and hardware development.
     * Placement of orders for software and
       electronic components required for a project.

Projects:

     * Water quality device. Measures water turbidity
       (murkiness), suspended particle size, pH,
       conductivity and temperature. Consists of two
       parts; a hand-held operator interface and a
       submersible sensing head. The primary use of
       this device is in the field where the operator
       merely has to dip it into a river or lake and
       get a pass/fail reading. Each reading is also
       logged into internal memory, allowing more
       advanced analysis upon return to the lab. This
       unit was designed to be very low in power
       consumption, employing advanced power
       management techniques to achieve this.
       (Delphi, C, PIC assembler)
     * Security device for credit cards. This is a
       wallet-sized device in which up to two credit
       cards can be placed. Once inserted, the cards
       become secure and the only way to remove them
       is to enter the correct code into a keypad.
       Should the incorrect code be entered too many
       times, the device goes to sleep for an hour,
       and should it be physically tampered with, the
       magnetic stripe is destroyed with a high
       energy burst of heat and the card itself is
       stained with a permanent bright ink. (PIC
       assembler)
     * Voice alert module. This was an add-on option
       for an aircraft audio system. Using an
       on-board solid-state recording device, it
       monitors up to six incoming signals and should
       one of them not be in the proper state, a
       voice warning is routed to the pilots headset.
       This product was designed under rigourous
       guidelines to place it above the existing
       standards expected of military and commercial
       avionics. (Delphi, C, PIC assembler)
     * Radio beacon. Transmits a voice message to
       nearby aircraft, warning of a potential
       hazard. Upon hearing the message, the pilot
       has the option of "keying" his or her own
       transmitter three times in a row to activate a
       conventional strobe beacon. The usefulness of
       this product exists in populated areas where a
       continuously flashing beacon is bothersome to
       the inhabitants. (C, PIC assembler)
     * RFID reader for auto security. This small unit
       mounts inside a vehicles dashboard and is
       responsible for arming/disarming the ignition
       when a unique smart card "key" is brought in
       proximity of it. (Delphi, Visual Basic, PIC
       Assembler, C)

Frank Controls Ltd. (1994 - 1995)

Software and Hardware Developer.

Responsibilities:

     * Research and development of new products
       (software and hardware).
     * Ordering.
     * Hiring of employees for in-house product
       assembly.
     * Coordination of software projects.

Projects

     * Windows-based control software. This was
       developed to replace the existing DOS-based
       software for controlling the operation of a
       wood drying kiln. (Delphi, Visual C++)
     * Designed a replacement for existing embedded
       controller used for the drying of lumber. This
       was to be the companion of the above-mentioned
       software and utilized fuzzy logic for improved
       efficiency and a potentially considerable cash
       savings to the customer. (C, Assembler)
     * Design of a cutting table for in-house
       assembly. This employed three computer
       controlled stepper motors to "rough-cut" sheet
       metal. (Delphi, Visual C++, Symantec C++,
       embedded C, Assembler)
     * Dew point meter. Determined the temperature at
       which dew would form. This product was
       designed for the harsh, high-temperature
       environment of a wood drying kiln. (Delphi, C,
       Assembler)
     * Industrial controller. Used PLCs and ladder
       logic to act as a safety net between the
       computer and the industrial hardware.

Selkirk Scientific (1990 - 1994)

Hardware Manager (included software development)

Responsibilities:

     * Research and development of new products
       (software and hardware).
     * Ordering.
     * Hiring of employees for in-house product
       assembly.
     * Coordination of software projects.

Projects

     * Windows-based continuous flow and atomic
       absorption software for the analysis of
       chemicals. This software package replaced an
       existing DOS package. It includes advanced
       drivers for performing real-time I/O and
       RS-232 operations. This was a huge project,
       consisting of approximately 100,000 lines of
       Borland Pascal code and has sophisticated
       graphing and reporting features. (Borland
       Pascal, Visual Basic, Borland C++, Visual C++)
     * Stand alone data-acquisition unit. This is an
       RS-232 controlled device that has eight analog
       inputs and converts the signals to 24 bit
       value for upload to a host computer. It also
       features the autonomous control of eight
       auto-samplers.
     * Development of a embedded controller based
       upon the NEC V25 (8088 compatible)
       microcontroller. OS development was done
       in-house and features a real-time,
       multitasking kernel with advanced memory
       management techniques. This product eventually
       evolved into the stand alone unit mentioned
       above. (Assembler)
     * 4 channel, 24 bit A/D ISA card with 24 bit
       digital I/O.
     * 8 channel, 12 bit A/D ISA card with 24 bit
       digital I/O.
     * 8 channel, 12 bit A/D microchannel card with
       24 bit digital I/O.
     * Custom continuous flow software for a company
       that had special requirements. This was a DOS
       based package that employed a background TSR
       for data collection. (QuickBasic, Assembler)

Education

East Kootenay Community College (1988 - 1990)

     * Completed two years of electronic engineering.

Skills

Known Programming Languages

     * Assembler (80x86, 8051, 6502, Z80, PIC, 68xxx)
     * C/C++ (Visual C++, Borland C++, C++ Builder,
       GNU C/C++, VisualAge C++, LCC, ThinkC and
       ObjectiveC (for Macs))
     * BASIC (Visual Basic, QuickBasic, QBasic,
       REALbasic, VBA, Turbo Basic)
     * Pascal (Turbo, Borland, Delphi)
     * Tcl/Tk
     * Forth
     * Fortran
     * HTML
     * Java (including JavaScript)
     * Perl
     * PHP
     * SQL
     * Makefiles (including imake)
     * Shell Scripts

Software Development Knowledge

     * Extensive knowledge of the Windows API.
     * Windows device drivers (including NT kernel
       mode and WDM drivers)
     * Linux device drivers (including loadable
       modules)
     * QNX device drivers
     * Real-time, high-performance device drivers.
     * CGI programming.
     * Creation of diagnostic tools.
     * Unix-based development.
     * Pth and Pthreads.
     * Neural networks and fuzzy logic.
     * Construction of compilers and interpreters.
     * Some PalmOS experience.
     * RCS, SourceSafe and other revision control
       systems.

Electronic Development

     * Microcontrollers (8051, PIC, Scenix, 68HC11,
       V25/35)
     * Embedded systems
     * A/D, D/A (particularly low-rate, high
       resolution)
     * Linear
     * Digital
     * PLDs, including FPGAs
     * Discrete
     * Printed Circuit Boards (including multi-layer
       and emission sensitive hand-routed boards)
     * Interface cards for PCs (ISA and PCI)

Operating Systems

     * Windows (3.1, 95, 98, ME, 2000, NT)
     * Unix (many varieties, including Solaris, AIX,
       HP-UX, QNX, Linux(Red Hat, Debian, Slackware),
       FreeBSD, OpenBSD, NetBSD, SCO, Minux)
     * DOS
     * OS/2
     * MacOS (including system 9 and OS X)

Protocols

     * TCP/IP
     * I2C
     * USB
     * Firewire
     * Microwire
     * RS232
     * RS485/RS422
     * JTAG
     * Smart card
     * Many more. I have interfaced to many obscure
       devices.

Notable Software Experience (i.e., non commonplace)

     * Apache Webserver (Unix and Windows)
     * Sambar Webserver
     * Samba
     * QMail
     * WinRoute, WinGate
     * MathCAD
     * AutoCAD
     * Corel Draw
     * Paint Shop Pro
     * Macromedia Flash
     * Photoshop
     * GIMP
     * Adobe Distiller
     * Dreamweaver
     * Assorted Schematic Capture/PCB packages (PADS
       PCB, Protel, Orcad, Eagle, HiWire)

Notable Development Tool/Library Experience

     * SoftICE
     * glib
     * gtk
     * RogueWave
     * Oracle
     * BEA Tuxedo
     * Persistence
     * Code1
     * CScope

Other Skills

     * Network administration
     * System configuration
     * Metal working
     * Technical writing
     * Industrial control (inluding PLCs and ladder
       logic)

Achievements

     * Wrote two books, "Programming Delphi Custom
       Components," and "Parallel Universe,
       Programming the Parallel Port under Windows."

Personal

     * Avid reader, bicycler, runner, and geocacher.
     * I have a small network at home which connects
       different machines running a variety of
       operating systems: Windows 2000, Slackware
       Linux, FreeBSD, OpenBSD, QNX, Solaris, and
       HP-UX.
     * I have written a handful of freeware and
       shareware, the most current of which is:
          + Parallel port monitor.
          + Servo motor controller.
          + Stepper motor controller.
          + An application that accepts a string of
            text, a start color, a stop color, and
            generates HTML code that transverses the
            range specified colors.
          + Windows and Linux libraries that allow
            easy port I/O.
          + A widely popular commodity trading game.

References

     * Available upon request.