I’m a software engineer: a DevOps specialist. For the past seven years I’ve been continuously employed by what is now part of NXP. I’ve been configuring and managing Jenkins systems; importing legacy codebases into Git; dealing with code licensing and copyright issues; and automating:
- Jenkins itself with Groovy (using JobDSL)
- multi-platform software testing systems with Python
- Eclipse-based product builds with Maven (and Tycho)
- multi-platform packaging/installer scripts with bash, Windows cmd files, and whatever else was necessary
Here’s a video of me explaining what I do, at the Jenkins User Conference.
I’m flexible. Seven years ago my employer was a very informal six-person software tools startup. A year later it was acquired by NXP. Our product (an Eclipse-based IDE) survived that upheaval and the subsequent merger with Freescale, and continues to thrive; the group expanded and was assimilated into a geographically diverse software development team, now organized along Agile lines; my role changed utterly and yet remains recognizably the same job, and I continue to make a valued contribution in it.
After graduating from Cambridge University in 1981, I built a career in software engineering over 20 years. First I worked for a couple of very small companies run by friends. I then spent four years at Topexpress, mainly on implementation of software tools (code generator, debugger), followed by seven years at Harlequin, where I gradually became a DevOps specialist, automating software build and integration, and administering version control systems. I joined ARM’s software tools team in 1996, where I designed and wrote a home-grown build automation system in Perl (this was before Jenkins existed!), and was the team’s CVS expert.
Between 2000 and 2012 I took a break to pursue other interests: writing, editing and typesetting books, working as a political organizer and an MP’s agent, and running my own small boat-hire company on the River Cam.
In 2012 I made a smooth transition back into the software industry—fortunately my decision to do it coincided with the moment when my former boss at ARM, who had set up a software tools startup, realized that he needed to do something serious about automating his product build and test, and I was the obvious candidate for the job.
You might be interested in a little piece I wrote some time ago about finding and preventing errors, and why this matters. It explains the connection (in my mind) between editorial work and software engineering.