American Auto-Matrix – Pittsburgh, PA 2000–2002
Senior Software Developer
Worked with HVAC controller products and supervisory control software.
- Updated PC-based driver software and created installers for multiple MS operating systems.
- Managed software releases and version control.
- Ran technical support web forum for direct customers.
American Auto-Matrix was interesting because it made all of its own control products in-house, so I got to see the small manufacturing shop they ran there. The hardware can be a bit more expensive because it's made in Pennsylvania but their controllers have a reputation for being nearly bulletproof and the company goes out of its way to maintain backward compatibility with just about everything it's ever made. They've struggled with their high-level front ends for various reasons. Their products are competitive with those from larger and more well-known competitors.
Most of the developers wrote control firmware for devices in the appropriate assembly language, though two or three of us worked on the high-level PC software meant to interface with and configure the individual components. I'd seen HVAC technicians measure airflows through ceiling vents as they were trying to balance and tune HVAC systems but I'd never thought about what they were doing until this time. The components were very low-level but systems of them could be extensive and carry out very complex behaviors.
I learned that the systems included scheduling by time of day, day of week, and holidays. They would manage smoke and safety devices during fires and other emergency situations. While I was there they started incorporating entry control systems. Each local hardware device included a minimum of capability and networks of the things communicated using a variety of protocols. The company published two of its own serial protocols, each of which included about twenty configurable message types. Some of the simpler controllers could be slaved to other controllers and all controllers could be slaved to and configured by slightly more complex area controllers or the aforementioned PC software.
I spent a lot of time on the PC software, using InstallShield to create installers for each new release and updating the driver layer that performed communication and some of the logical functions. We struggled to work around the fact that the front end of the PC product was created by an outside company. We could neither modify nor even see its code so we had to fix everything via the driver layer. I had a few very late nights grinding my way through fixes to it, and we generated a lot of new versions. We archived all of the software versions by hand and released them to customers and tech support. Phone support technicians duplicated and tested customer configurations and procedures on hardware devices they had at their desks. If they encountered a problem they couldn't figure out they referred it to software as a bug or at least something that needed deeper support.
The PC software had to run on the major Microsoft operating systems so we tested on 95, 98, NT 4, 2000, and Me (Millennium Edition). We ultimately dropped support for Me, which didn't work with a lot of software. I bought extra hard drives and swap hardware (we called them plug-and-chucks) for testing. I have almost always used my own computers and peripherals over the years, sometimes in conjunction with company hardware and sometimes in place of it. I also have considered myself fortunate to have been allowed to use whatever hardware and software I wanted in most cases.
The company my brother worked for at the time supported an online discussion forum based on a product called WebBoard (which seems to have disappeared around 2005). My awareness of the product led me to suggest that we employ it to help support our customers, so I got it set up on a Windows SQL Server station and I was able to maintain the product and contact with our customer base thereafter. I later learned how to use phpBB and hosted a small discussion community for several years on my own until I chose to discontinue it, so I have some varied experience hosting and managing online communities.
This was the front end of the third-party tool AAM licensed but couldn't modify. Designers could use components from the left shot to build control screens like that on the right.
The product line scaled with just a few basic components that could be connected and communicated with in many different ways. The phone support technicians and software engineers did most of their work using just a handful of components connected directly to a PC running Auto-Pilot software.