Employment Mementos

goAUPAIR

Job title: Lead Programmer. Finally. ;-)

Starting out, the company had been purchased recently. Their old programmer quit shortly after. The new owner wanted a big set of changes, and rather than doing the incremental small changes that the developer was used to, the owner insisted on using his background -- as a mainframe developer 30 years ago. He wanted a monolithic update, changing hundreds of things at once, with little to no testing.

The old developer quit after the first three rounds of failing on that. Then I was hired.

It took about a month to verify that the original set of requested changes was made. Then it took four months to find all the places that referenced the changes and make sure they worked. Then it took a few more months to test it and find other little bugs -- almost none of them in the original problem area.

Devon and Kim were brought on, and we are systematically scrapping chunks of the system in favor of something that is:

Wavetronix

I spent quite a bit of time working on the 3D graphics system. I implemented:

Much of the work we did was (unfortunately) not used much. We had developed accurate models of several complex interchanges, highly detailed city maps generated from GIS models, and animated vehicles driving down the road based on estimations from live traffic data. Each time we presented one of these, the corporate types preferred the low-detail models, and our work was discarded.

Here are some movies of the 3D graphics system. All movies were converted to Window Media Player format, the original MPEG files are about 3X the size, and would use all my web server space.

Since the company's main product is a vehicle detection sensor, one of the main tasks is to install the sensors and verify that they work correctly. The installation time for most sensors is very short (a matter of minutes), so spending the time and effort of dealing with a laptop computer in the field is difficult. I ported the installation tools to PalmOS, which took about 1 month to prototype, 3 months to get the minimum features in by reverse engineering the never-documented original program, and an additional 6 months to get the entire feature set reverse engineered, documented, and implemented.

Some Palm screen shots of the project

Suzuki Association of Utah

Sorry, there's not much I can display for a database system. Maybe I should post an E-R diagram or something.

With the SAU, I have been working with the organization to discover the work habits (they were using a really big spreadsheet with almost 6000 individuals in a few thousand families, and a few hundred teachers.) After studying the table and working with the membership secretary to see how they were used in practice, I have developed an Access database that contains the same information in a more uniform container. The database reduces the time for generating reports from hours or days by hand, to a few mouse clicks, saving hundreds of hours in work.

Advanced 3D Graphics Lab @ BYU

At BYU, most of my work involved making the terrain server more portable. It was written to run on the HP-UX machines, and we wanted to move it to the DEC Alphas. The Alpha machines were much faster at slicing-and-dicing the images by an order of magnitude over the other machines; probably because they were 64-bit architectures and the compilers were automagically vectorizing all of our 8-bit processing. So most of what I did wasn't really directly viewable.

My major tasks included:

Here are some movies, anyway, so you can see something. The terrain texture was USGS DOQ data (gray scale images at about 1 meter per pixel) and the geometry was USGS DEM data, at various resolutions down to 30 meters per pixel. After generating quadtrees and reducing the data size through compression, the final data store was about 15 gigabytes. The data was kept on one of the machines and sent through the 100Mb switched Ethernet using some priority algorithms. It was even functional over a 56K modem, although extremely slow.

Option Technologies

At OTI, I did a lot of testing. I wrote documentation for tests, including regression tests, and I tested the apps, then I wrote up results of my tests to show how things changed. Later, I got to field calls from everybody when there were problems in the beta builds, then write test scripts, and log them, and test them, and report back to the user when it was fixed. I also maintained the defect tracking database (MS Access) and printed out little reports of the bugs, their priority if any, who they were assigned to, and did everything else that lots of defect management programs now do.

A little later at the company, I moved strings over to the string table, which wasn't all that exciting. Then I re-wrote the corporate web site, which was fun. This including learning about controlling web access with Roxen (using .htaccess), writing lots of CGI scripts that pieced together web pages based on the password that was entered, and interfaced with our GoldMine database to check if the software key had it's associated account paid up, determine what versions of the software to give that key, etc.

Of course, since I moved on from there in 1999, I doubt any of it is in existance any more.

That's It

Well, not really, I worked as a custodian (broomologist) and did a few fun volunteer and paid programming jobs while in high school. One job was for a local hospital working for their head nurse to keep track of nursing licenses for RNs and LPNs, another was for a presentation software that converted formatted text files into nice colored screens using Borland's BGI tools. And I helped TA in Compuer Science classes in school, and I wrote a whole bunch of games for the TI 99/4 console, and the TI-95 calculator, and the Atari.... But that's going back too far into my history. :-)

Valid XHTML 1.0! Best with any browser campaign