So I’ve been in my new job for a little over two months now – first time moving job since I left university and spent ten years developing anti-tank weapons. Now I fix software for combustion management systems – which is a fancy way of saying central heating, albeit a bit more complex. I prefer to think of it as writing device drivers for fire. I’ve been there long enough now that I’m not feeling totally lost – I know a bunch of people now, I know who to talk to if I have a problem, and I don’t feel totally lost in all the acronyms. (Seriously, does every technology firm have its own impenetrable layer of acronyms to keep the corporate spies away?)
I seem to have found my role now – while everyone else is busy developing the next generation of hardware, I’m fixing all the little old problems in the existing stuff. Gradually I’ve gained familiarity with various processors and some reasonably big sets of code, and it’s made me realise something surprising. Most fixes I make involve the smallest changes imaginable. Frequently they’re the change of a single character – a less-than-or-equal-to becoming a less-than. An index that should start at 1 instead of 0. Other times I have to comment out a command, which due to the archaic lore of C requires two characters. It can take minutes or hours to find these things, with me staring into code and figuring out what it all means. . . only to eventually delete a character and recompile. Needles and haystacks spring to mind – I just worry that it doesn’t look like I’m working very hard when that happens.