Projects
Lead programmer in a large project for Dow Chemical
Employees' Credit Union.
The program handles teller transactions, several types of loan
disbursements, and various accounting functions.
The users specified that the program would be controlled by a
horizontal line of pushbuttons across the center of the screen.
Each pushbutton corresponded to a function key. The programs can
be run by either using the mouse to press the pushbutton, or pressing
the appropriate function key. This required that the software
act the same for a button activation as for a function key. Also,
the pushbuttons have different functions based on the user type
(teller, loan manager, etc.). This required some specialized programming
that funneled the functions into a single case structure, which
called the appropriate programs based on the button or f-key pressed,
and the user type.
Since it was a large project, reusable code was set up for screens,
the logic behind the screens, and some back-end logic and "framework".
Because of the critical nature of the application, transaction
tracking was used. This required some research on the use of transaction
tracking in Novell, and some specialized programming to avoid
locking the system up.
A common data-driven program was designed to perform all of the
transactions. This improved reliability and reduced testing requirements.
I wrote the reusable procedures, "look and feel" standards,
programming standards, and several small instruction manuals.
Before the project was completed, I was acting as the lead programmer,
project manager, and client contact. When the credit union switched
from their original mainframe to the Foxpro application, the transfer
went without a hitch. At the end of the day, everything balanced.
|
Designed and built a Digitized Voice Light Beam Communicator.
The audio is converted to digital with delta modulation. This
method was chosen because it is self-synchronizing, requires no
frame synchronization (each bit carries the same weight as any
other), it works well for voice, and the part count (and cost/complexity)
is low. (The delta modulation circuitry was fed with a signal
to which automatic gain control was applied.)
The digital data then received some processing that caused the
a bit to be dependent on the previous bits. That way, if the signal
is lost, the correct data will be received as soon as two or three
pulses have been received. This method also serves to keep the
duty cycle at 50% no matter what is being transmitted.
This signal is then converted to pulses. This reduces the duty
cycle to 5%, allowing the LED or laser to be driven well above
its steady state power dissipation specifications.
Plans were made to reduce noise at the receiver by only looking
for the signal during the small window of time that there might
be a pulse. This was never implemented.
The receiver uses a shift register to store the last three pulses.
Those three logical states are fed into some specialized logic
that decodes the three bits and extracts the original signal.
The clean digital signal is then fed into a delta modulation
d/a converter, then amplified.
|
Created the installation manual for a Webasto Sunroof
Webasto needed an installation manual for its latest model Sunroof.
To accomplish this, two experienced installation technicians installed
a sunroof while explaining the procedure to me. I took notes while
a photographer recorded the procedure on film.
Once the proofs were back, I divided the procedure into steps.
One photograph was used for each step. I wrote the text to match
the photographs.
|
Handled network administration and technician duties.
Built several computers. Loaded operating systems (W98, Win NT
Server) and applications as needed. Organized and ran backup.
Created a program that uses a command line version of PKzip to
back up the development directories and store them on a 10 GB
hard drive that was purchased for that purpose. The program was
designed to remove the oldest backup before storing the latest
if necessary. Archived client programs and data to CD as necessary.
|
Modified the dSalon salon management software that was originally
written in Foxbase.
Created several reusable programs. Upgraded the program to run
under FoxPro. Added functionality. Worked with clients to determine
system requirements. Worked with technical writer to document
the software.
|
Heavily modified SBT Series six program to fit the business
procedures.
This program was written to run under Foxbase, Clipper, and Quicksilver.
We modified it to run under FoxPro. The program has been in use
since 1990, and has been modified as necessary. As of October
2001, it is still being used, and is very reliable.
|
Modified SBT Vision Point and Pro Series programs to fit the
business procedures of several clients.
Changes to functionality include:
- Split shipping/invoicing function into two programs so that
items can be pre-shipped (items and quantities determined, packing
slip printed), then shipped (shipping weight and charges entered,
invoice created).
- Created a set of utilities that allow unknown and off-lease
items to be received at the dock, audited, and tested, sent
to repair, or sent to scrap. Finally, they are applied to a
purchase order.
- Created a program that explodes bills of material on-the-fly.
This data is used when marking the work orders as completed.
It is also used to create purchase orders that are timed so
that the components will be available when needed.
- Created a program that explodes the bill of materials and
the labor cost data. The data is used to calculate the cost
of each end item, and update the standard cost field.
- Modified the purchase order receipting program to allow unknown
parts (cellular phones) to be received under a generic item
number, then assigned to inventory after they have been repaired.
During repair, the type is determined and the electronic serial
number is printed on a bar code label in decimal and hexadecimal
form. Several functions had to be created and merged so that
they can be performed at one work station. At that work station,
the items may be shipped on a sales order or entered into stock.
- Created programs that synchronize some of the data between
two sites. The program automatically runs at night, and uses
PC Anywhere to transfer files.
- Added EDI capability to SBT for several customers. This includes
invoicing, purchase orders, advanced shipping notices (ASNs),
and other forms.
|
Created an application that is used to manage a used car lot.
When a vehicle is received, all necessary information is collected.
This information is used to print the buyer disclosure, RD108,
financing, and other forms. As expenses are accrued, they are
recorded in the expenses screen. Several reports (inventory aging,
inventory value, etc.) are available. A special "everything
about the vehicle" report is available in two forms - one
that is used internally, and one that is available to prospective
customers.
The program was written in 1988, and was mostly Y2K compliant.
In 1999, it was modified to be fully Y2K compliant, and some of
the forms, screens, and reports were modified.
|
Retrofitted 1989 Jeep Grand Wagoneer with a digital fuel injection
system.
Removed the mechanical fuel pump and replaced it with a high-pressure
electrical pump. Mounted an ECU to the passenger side kick panel
and routed the wiring through the firewall. Added a MAP sensor
and connected it to the intake manifold. Installed an oxygen sensor.
Replaced the carburetor with a throttle body and fuel injector
assembly. Installed all necessary wiring. Used a laptop computer
to modify the fuel map and other tables in the ECU. Wrote a database
program that analyzes the results of the data logging program.
That analysis is used to adjust the tables in the ECU.
|
Researched and wrote documentation on hydraulically actuated
painting robots.
Unlike most other robots, painting robots move smoothly over
a specified path, rather than from point to point.
Most robots use a "teaching pendant", which is used
to move the arm to a specified location and store that point.
This results in a jerky motion.
Because a jerky motion would result in a poor paint job, a painting
robot is taught with a load cell.
To teach the robot, a technician enters the robot's active area
and holds the load cell. The load cell senses the force applied
by the technician, and the arm follows.
Several paths are entered for each type of vehicle because of
the inevitable thin and thick spots. Using several paths ensures
that the paint is more evenly applied. Once the paths are entered,
the speed for each section of the path is determined.
|
Created a program that is used by a marketing company.
The company was contracted by Michigan Bell (telephone) to handle
calls from people requesting Life Line, which is a reduced-rate
telephone service offered to people who can't afford a standard
phone line. The system searches a 3.2 million record table for
the phone number of the caller. All of the caller's data is recorded,
and used to make a decision about the eligibility of the caller
for the life line service. Security features were added
to prevent the unauthorized use of the telephone database (which
contains unlisted numbers).
|
Wrote sections of the manual an automotive assembly system.
A large collection of robots and other equipment was used to
manufacture automotive body panels. Several processes are used
to spot weld several stamped sheet metal component items into
a finished body panel.
A set of locators, clamps, and spot welders was used to hold
several components into position while they are tack-welded together
with spot welders. Jumpless cables were used because of the high
current needed.
The spot welding was done using special Powerpackage (tm) cylinders.
The cylinders retract quickly. They also extend rapidly - until
resistance is met. Then, a valve is activated and the hydraulic
portion of the cylinder multiplies the pressure exerted. This
allows the clamp to act rapidly, yet still exert sufficient pressure.
A turntable, four systems of clamps, and two articulate robots
with spot welders was used to tack weld another group of component
items.
The final assembly is performed by three parallel lanes of Kuka
gantry robots. The tack-welded assemblies are placed into the
structures, and are welded with single-point spot welders. The
assemblies are lifted and moved from one station to the next using
rails that are moved with a Cymonic (TM) (cyclodial-harmonic)
drive system.
Throughout the manual, safety issues are discussed. This includes
kill switches, palm buttons that require two hands to operate,
light curtains that deactivate the machinery when broken, and
similar measures.
|
Other projects
-
Wrote a software package that is used by
an executive search firm.
-
Wrote a software package for an attorney
in Alaska. This package keeps track of data from several thousand
violations of the fishery and game laws, and was used in a class
action suit. Supported the users of this program by telephone.
-
Customized Video Quick, which is a video
store management software system. Readied it for Y2K. Added
features and modified reports.
-
Wrote some sections of the manual for test
equipment that is used to test Delco and Teves ABS master cylinders.
-
Wrote some sections of a long proposal. A
manufacturer of safety equipment (seat belts, airbags, etc.)
proposed their services to a major automobile manufacturer.
The proposal was designed to answer several questions. JIT (Just
In Time) delivery, quality assurance, and other issues were
discussed.
|
Accomplishments
-
Inducted into Tau Beta Pi, the Engineering
Honor Society, during my junior year.
-
Inducted into Eta Kappa Nu, the Electrical
Engineering Honor Society. Was invited during my junior year.
- Received "Outstand Student" award for my participation
in the Lawrence Technological University Amateur Radio Club.
- Received certificate of appreciation from the LTU Student Government
for my participation in the LTU Amateur Radio Club.
- Received certificate of appreciation for outstanding service
and dedication from Chaplain (CPT) Carroll P. Hutcheson through
the Commander of the 22nd Signal Brigade.
|
|