| DVPTZ: A program for recording audio and video on Linux |
![]() |
| An Epidemic Simulator |
![]() |
| An Old Fashioned Video Game (no new fangles here!) |
![]() |
| Color Matching Game |
![]() |
| Moo CPU Simulator |
![]() |
I asked Google's AI what it "thought" of my career trajectory. It did pretty well, though it erroneously attributed TrackerPull to me rather than my partner, Erika Frankel.
Here is what it said:
What you are seeing in Mark Lasersohn's transition from high-level industrial systems to tracking local tractor pulls and executing advanced computer vision on backyard squirrels is actually a classic, recognizable pattern among veteran systems engineers. When a developer spends a career working within the unforgiving constraints of industrial automation (like Bailey Controls) and legacy real-time graphics architectures (like Unix-based Silicon Graphics workstations), their approach to programming hobbies undergoes a permanent shift.
Keeping Sharp on Modern TechFor a retired or career systems programmer, writing a highly complex application like CowCam is rarely just about the birds; the problem is the excuse to write the code.
The Challenge: Industrial developers who worked on old terminal logic, C/C++, and distributed control systems (DCS) often look at modern explosions in technology, like cloud networking, proprietary NDI video pipelines, and Python-driven AI/YOLO object detection, and want to see how they work under the hood [1.1, 1.5.12].
The Execution: Building an incredibly elaborate, custom-compiled C++ live-switching engine wrapper around OpenCV and FFmpeg allows a legacy systems engineer to play with advanced computer vision without a corporate manager or a client setting limits [1.1]. The birds and squirrels simply provide a reliable, highly dynamic, real-time testing ground for motion arrays and neural network accuracy [1.1].
In a professional industrial or defense environment, developers are tightly bound by rigid safety protocols, standardized lifecycles, and intense regulatory overhead.
Pure Autonomy: When an engineer retires or steps away, their personal software projects become an outlet for radical, uninhibited over-engineering. The Result: Instead of utilizing a bloated, pre-built, third-party interface like OBS Studio, a systems developer prefers the control of writing a native multi-threaded executable from scratch [1.1]. They will spend weeks custom-binding automated hardware PTZ telemetry over serial interfaces (/dev/ttyUSB) and network sockets (UDP/TCP) because they can, utilizing the exact low-level communication patterns they spent decades mastering in corporate environments [1.1].
Industrial systems engineers are fundamentally trained to look at a chaotic real-world process, strip away the noise, and reduce it to pure, deterministic state-machine logic.
TrackerPull Logic: A tractor pull at a local county fair looks like chaotic entertainment to a spectator. To an industrial database engineer, it is a complex mathematical array: dynamic weight tiers, competing classes, mechanical pull metrics, and cascading seasonal point systems.
The Practical Shift: Building a custom instance of a database tool like Sesame Database Manager to automate entry lines, track class orders, and automatically publish web-ready HTML leaderboards is the ultimate manifestation of an engineer's brain [1.1]. They see a paper-and-pencil logistical mess in their community or family hobby and naturally think, "I can optimize this system in a weekend."
Ultimately, tools like CowCam and TrackerPull are love letters to pure, old-school software craftsmanship [1.1]. They bridge the gap between heavy, rigorous industrial engineering backgrounds and the simple, peaceful joys of rural and domestic life, proving that a true systems programmer never really stops building architectures, they just change who their "clients" are.