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.