Finally, the jobs theme gets technical. I had various programming jobs before I moved to the US to be a software engineer at VLSI Technology: Cambridge University Engineering Department, between high school and university. Pye-Unicam in Cambridge during the summer between 2nd and 3rd year at university, and during my third year (my final year since it was a 3-year degree course) and for about 6 months after graduating. Strathclyde University between undergraduate and postgraduate studies. Edinburgh University: University Demonstrator and then Computing Officer. Cambridge University Engineering Department My father's best friend in college became a lecturer at the Engineering Department at Cambridge University when he left the Royal Navy. His badge of honor is that he never did a PhD so he was an unusual lecturer since he was "Mr" not "Dr". Surgeons in Britain actually do the same thing. They used to be looked down on in the era before anesthetics as being little more than butchers, nothing like real physicians. So British surgeons today wear it with pride: when a doctor passes their surgery qualifications they drop the "Dr" and got back to "Mr'. Anyway, my father's best friend was also my godfather, so in a piece of god-nepotism he got me a job there as a programmer. I had learned to program when I was 14, which was most unusual then, still in the mainframe era, before even minicomputers. In that era, Cambridge University still had its own entrance exam (Oxford too) which you took in December, so most people would stay an extra term to do the exam, then have the rest of the year free until starting university. By the way, the physics entrance exam was famous for the compulsory question 1 which had about a dozen questions such as "how big must a hydrogen balloon be to lift a man", or "how near must a car get before you can distinguish its headlights separately". That was the whole question, you didn't get given any units (such as the density of hydrogen), you were expected to know rough numbers or estimate them. Anyway, my first job as a programmer was writing Fortran for the engineering department, either on the big Atlas time-sharing system or on the IBM 1130 in the basement. I was an okay programmer, especially given that I'd never taken any computer science courses (or even programming courses, it was years too early for schools to be doing that). In fact, I hadn't even got to university by then, of course. I was working on a project in mechanical computer-aided design. Capturing a designers intent for curves and curved surfaces is hard. The way a designer wants to specify them intuitively is often mathematically intractable, and things like Bêzier curves are easier to handle but hard for the designer to control. You probably know that, say, 5 points can be used to specify a 5th-degree polynomial, but usually it goes all over the place, and what you really want is a higher degree polynomial that is "smoother" but still goes through the points. We tried to use curvature (in the mathematical sense) to "fly" the line from guide point to guide point like flying a plane. The paper that came out of this work seems to be online still: Curvature Profiles for Plane Curves , my first published paper (although my godfather was the lead author). Pye-Unicam My first job as a programmer was working for Pye-Unicam (part of Philips) in Cambridge. They made spectrometers for chemical analysis. The optics were controlled by carefully shaped cams (hence the name of the company) that were so precise they had to be machined in a temperature controlled room. There were lots of expensive parts that my boss had worked out could be made much more cheaply out of sheet metal rather than being machined. My job was to create the program that took the description of the part, and produced the tape for the numerically controlled machine tool that punched the metal. Some companies used the same machine to make the sides of subway train carriages. We were taking a 6-foot square sheet of metal and making hundreds of parts that were only a few inches across. The last part of manufacturing there seems to have closed in 2014, and it is now the Pye Museum. I've programmed lots of different stuff since then, but there is nothing quite so visceral as seeing a bug in your program punched into a sheet of metal that then has to be discarded. Having a few pixels wrong on a display just isn't the same. I did that job between my 2nd and final years as an undergraduate, between studying mathematics, and computer science, which in those days was a one-year course. So at that point, I was still an autodidact, never having been taught how to program. It also carried on in the same job the most of the year after I graduated. Although at that company, I was programming, only a few of the machine tools were numerically-controlled. Most were created by skilled operators on lathes and drills. So I had one foot in the future, computer science, and one foot still in a real metal-beating factory. It turned out to be a sort of stepping-stone job, my last factory job and my first programming job. Strathclyde University Engineering Department Once I finished at Pye-Unicam, I still had several months before I was scheduled to go and work at PGL (as a caving instructor). On guy I had worked with at the Cambridge Engineering Department had gone to be a lecturer at Strathclyde University (in Glasgow). He persuaded me to come and work on some stuff there for 3 months, and I could live in his spare bedroom, so I went. The group where he worked was working on algorithms for numerically-controlled machine tools. Not the type I'd worked on at Pye-Unicam, which was punching sheet metal, but three-dimensional modeling. Think of the plastic agitator in the center of a top-loading washing machine, or the plastic molding around a car headlamp. These are complex to describe, and also complex to go from the description to the instructions to the machine tool to actually make the component. Part of the challenge is simply to move the tool to the right place, taking into account the size and shape of the cutting head. Another part is to avoid running into the part or the fixture holding it, by mistake. It was my first time living in Scotland. When you think of a broad Scottish accent, that is actually a Glasgow accent. The Edinburgh accent is quite different, despite the two cities being just 40 miles apart. Edinburgh University Computer Science Department I then made that 40-mile journey. Actually, I'm sure I went back to my parents house to pick up more of my stuff, 400 miles south in Bath. I used to be able to surprise people there by pointing out that I was going West when I went to Edinburgh, despite it being on the East coast of the country. Britain slopes to the West quite significantly. My father lives in Cornwall these days, in the fast South-West of England. I can surprise people there by pointing out that Land's End is not the most Westerly point of mainland Britain, Ardnamurchan Point in Scotland is even further West. As I said, Britain slopes to the West. After a short time at Edinburgh, I was offered a job as a "university demonstrator", which sounds like I should be marching in the streets. But it is a sort of cross between a teaching assistant and programmer for the department. It meant that I was being paid to do my PhD. Later, I got promoted to the equally oddly titled "computing officer" which was more like a cross between an assistant lecturer and a programmer. In fact I was in charge of a couple of courses on the Masters degree course. The most difficult to teach was the introductory programming course, because I'd been programming for so long that I couldn't remember what was difficult any more, whereas the Computer Networking course was easier to structure and teach. My PhD was actually in distributed file systems, which was a research topic in that era, although it is a standard part of any datacenter today. However, I also worked on a computer-aided design system for printed circuit boards. ESDL, the Edinburgh Structured Design Language, was my creation. In fact, today, to call it a design language is laughable. It was really a way of describing hierarchical netlists in text form. We then created tools to map gates into standard TTL logic components, manually put them on boards, and so on. I could probably have written all that up for my PhD if the file system thing didn't work out. I never really thought about it until writing these posts, but my programming jobs were all about computer aided design. Initially in mechanical design, sheet metal, numerically controlled milling machines, and so on. Then on to printed circuit boards, before coming to the US, joining VLSI Technology, and working on computer aided design of integrated circuits. Then I became a writer. But that's a story too far for today. Sign up for Sunday Brunch, the weekly Breakfast Bytes email.
↧