Theron W. Genaux: My Career

I began my career as a Digital Systems Technician (DST) at Kodak, then transitioned into software engineering. A few years later, I returned to college to earn my Bachelor's degree in Computer Science.

My first job was at Kodak's instant print manufacturing in Kodak Park. The entire building was an embedded system, with minimal human interaction with the raw materials or products. There were approximately 75 DEC PDP-11 computers throughout the building, with many of them performing real-time control of the large Continuous Motion Assembly Machines (COMAMs).

The COMAMs assembled the individual, unexposed picture units (PU) from a continuously moving layer of webs delivered from the 3rd floor. Some additional components were added by the COMAMs. The PUs were then stacked into a pack, and a cover was sealed on top. The packs were then fed on an air conveyor to an accumulator for quality inspection. When released, they were sent on another air conveyor, where they were packaged for sale and boxed for shipping.

Additionally, there were many microcontrollers and digital systems. One of many systems I was impressed with was the COMAM hardware simulator. With no computer, it was instead driven by a variable oscillator that fed a counter that produced an address to a bank of PROMs, whose output simulated the inputs and interrupts to the PDP11 software under test.

Working at Kodak's instant print manufacturing was an invaluable learning experience, as it provided a great introduction to real-time event-driven software. I learned to write assembly and Intel’s PL/M programming while investigating issues and updating various small, real-time event-driven microcontrollers.

One of my responsibilities was to work with computer engineers, developing code for testing new microcontroller boards. I often suggested improvements to make the boards fully testable and ways speed up the performance of their target applications. I investigated numerous issues that required understanding the systems and software, which enabled me to identify necessary changes.

My first unofficial work as a software engineer was on a Kodak venture project, where I wrote all the low-level device drivers for what was at the time a general-purpose tablet computer with a CD drive, targeting field service engineers. This project ended when, at one meeting, someone walked in with one of the first laptop computers.

Because of my work on the venture project, I was hired as a software engineer by an internal group that outsourced engineers as needed for new projects.

The next 15+ years at Kodak were spent developing small and medium-sized C/C++ real-time event-driven embedded systems, often writing low-level and application code. My last project at Kodak was on a team developing a C++ desktop application used by customers to configure print jobs targeting digital high-volume production printers.

I then went to work at Ortho-Clinical Diagnostics for the next 15+ years, where I initially worked on legacy C++ Immunohematology (IH) middleware and instruments. These had code bases around 500k LOC. The middleware solution a multithreaded knowledge based system driving an IH workflow through an Oracle database. The IH instrument was another 500k LOC multithreaded C++ system that controlled instrumentation. I was able to quickly gain a working knowledge of both and developed tools to test and validate them.

After learning C# on my own time, I was given the opportunity to work on a new multithread, C# based automated donor screening pipettor.

My last few years at Ortho-Clinical Diagnostics, I supported the rollout of the Vision IH family of instruments. Initially providing support to customers, field service engineers (FSE), and vendors. I worked closely with FSEs to resolve issues and document how the instruments work. I also worked closely with the Vision software engineers, documenting issues and proposing solutions. During this time I maintained and resolved issues with some of Vision's C# based subsystems. In the same time period, I worked as a staff engineer supporting all IH systems and the developers of new IH middleware and low-volume instruments.