I began working the very next day after my final exams. The company was in rapid expansion mode and they really couldn’t wait for me to start. I received training on my first assignment on day one, an automated lift gate control for an automotive customer. On day two, I was onsite to troubleshoot code and or hardware issues.
Automotive was only a small part of the business and I worked for other product areas eventually. I wrote software for several off-highway vehicle control systems. These are things like forklifts, scissor and boom lifts etc. That code was all written on the bare metal in C. All the real time constraints were met by our own code.
A few years later, I moved to Delta Elevator to write software for elevator control systems. That was unique experience because of the stringent safety requirements for elevators. Once again, that software was all written in C, although we were using an RTOS to do the real time scheduling this time. That’s possibly one of the most fun jobs I’ve had. Riding around on the top of an elevator never lost it’s novelty for me. Although I climbed more stairs than I cared for. Normally, when the programmer has to come on site for a service call, it’s because the elevator is down.
I got my first taste of C# and .NET programming by way of a project that was written in .NET 2.0 Compact Framework. The product was a CNC router table and it used a Windows CE operating system. The project itself was interesting and took me to some far off places, I can’t complain about that. But what was the best part was the exposure I got to .NET, C# and Microsoft tools in general.
I worked as part of a large team of implementers, designers, architects, testers, support staff, product managers etc. on AGFA’s flagship radiology imaging product called IMPAX. I soaked up huge information on the technical side about C#, .NET, Visual Studio and so on. But what really struck me about this experience was the coordination of efforts of all these groups and individuals to create the software. Where I had worked previously, we were small teams in one office and coordination was relatively straight forward. Here, we had hundreds of developers alone across multiple time zones. The processes and tools became essential.
This was my first taste of a more senior role. As Development Manager, my task was to bring some of the processes and tooling that I had learned into the company. Really, to replace the ad-hoc system that was being practiced in place to a more structured and predictable process. Firstly, that was to improve overall efficiency of software development, but also because the company was going for UL1998 certification on a product that was being developed there. To implement a structured and predictable process was not so difficult. I drew on my experience at AGFA and had to make some decisions and trade offs due to the relative sizes of the departments. The new challenge for me in this environment was the people management.
There have been numerous projects over the past years of independent contracting and consulting. I’ve been lucky to have some large contracts that were very stable and renewed without too much trouble. I’ve also been able to find interesting work in new technical fields and finally been able to branch into mobile development using Ionic and also Xamarin.