What is your job?
I write control and user-interface software for Audix Broadcast, a company that manufactures digital audio components such as audio mixers for the broadcast radio industry. In 1995 I was asked to program a microcontroller for a new digital mixer, to look after all the user interactivity that surrounds the operation of such an item.
How did you get into it?
Originally via an introduction by a colleague I worked with at BT Research in the 1970s and 1980s, who knew Audix and believed my skills would be of value to Audix. Since I learned my programming skills in the 1970s, before computers were commonplace, I was well used to squeezing capability out of a lowly eight-bit processor.
How long have you been doing it?
For about five years in the early 1980s and from 1995 to the present.
What did you do before?
I worked for BT assessing the quality of telephone handsets and connections. In the early 1990s I worked on multimedia CD-Roms and learned a lot about hiding detail inside high-level scripting languages.
Who is your employer?
I work for my own limited company, but most of my time is spent developing software for Audix.
How many people are on your team?
Audix is a small company that - unusually for the market - does all its own product engineering, from designing circuit boards to fabricating the metalwork. Because this requires everyone in the company to have a wide range of skills, Audix does not employ any specialist full-time software engineers. I act as a general consultant on control software and user interfaces.
What do you enjoy about your work?
The variety. The programming can cover everything from optimising the assembler code on a button scanning loop to managing a peer-to-peer IP structure or manipulating sets of graphic images - sometimes all in one day.
I also like the fact that I get to meet customers in the broadcast industry and attend exhibitions. In most environments engineers deal only with other engineers, and it has to be admitted we can be a dull crowd. Real-life users from non-engineering backgrounds make life much more interesting because it forces us to think in a more intuitive (if less logical) manner in order to see problems from their viewpoint.
How do you spend the day?
Mostly in front of the computer; programming, documenting and testing. There is a strong element of "make it up as we go along" because it is often very difficult to know up front what will work as a user interface and what won't. I work from home, so my time is flexible - I can go for a walk in the local woods at mid-morning and make up the time later.
What sort of person is suited to this type of work?
It is best not to have too many preconceived ideas about how best to tackle a job, and to be ready with alternatives for when things don't turn out as expected.
The problem is often how to fit a quart into a pint pot. Simply putting in a PC and throwing resources at it is not usually an option.
It helps to have an interest in a range of technical matters and to be able to see a system from the point of view of its user.
A strong degree of self-motivation is essential and a willingness to try different approaches until the right one is found. Flexibility is essential as problems never come round in the same way twice.
What skills do you need?
The ability to program, of course, but that can include self-trained teenagers. Experience - the wider the better - enables one to recognise problems as belonging to a class previously encountered, for which a solution can often be picked from those used before.
Novice programmers tend to be quick but, although they are excellent in a straight line, they often don't see a dead end until they hit it. Experience comes with age, earlier for some than for others.