Edward Welbourne's Career History

My primary responsibilities have usually been development and maintenance of the primary product code-base, in each job – which means bug-fixing, refactoring and writing new features. I've also had incidental responsibilities ranging from training colleagues, user support and product documentation to UNIX system maintenance, language design and in-house tool development. I've helped lawyers understand Free Software licenses and brought sanity to build systems. I do what needs done, alongside what my job description mentions.

2015 onwards
Senior software engineer for The Qt Company in the Core & Network development team. Many contributors seek out my review of their changes, in which I catch everything from petty typos and bugs to design flaws before they can reach end-users; I fix assorted unglamorous components that folk only ever notice when they don't behave as expected; and I wrote the scripts that make our API change review process run smoothly. I've become de facto maintainer of time-related code and localisation, including the handling of time-zones and date-time serialisation, in each of which I've done extensive refactoring, reviewed and encouraged by the de jure maintainer.

Senior Software Engineer at CFEngine with architectural oversight on a product that helps system administrators manage large networks of computers. An investor's change of focus forced the company to abandon the growth plans for which it had head-hunted me, but not before the team had learned to value my code reviews, catching their bugs (and those from external committers) before they could reach users. I fixed my share of bugs and refactored report collection to avoid some performance bottlenecks. I performed advanced git magic when needed – particularly to accommodate contributions from outside the development team.


Senior Development Engineer at Tandberg Data in Oslo. Took ownership of the code-base for the QuikStation, comprising a Linux kernel module, several dæmons and administrative programs for these. Got it organised, got head-hunted, handed it all over in good order to a colleague.


Software Engineer for Opera Software ASA – working in several teams on varied projects, identifying and resolving obstacles to development as I went, and helping keep core developers (implementing and refining support for open standards) and delivery teams (ensuring users get the best internet experience on any device) working in harmony. Along the way, I

I became much sought-after as a reviewer for changes to code and helped many colleagues with advice.


Software engineer for Zeus technology, developing the world's fastest and most webmaster-friendly web server. Working within a young and vibrant team, I


Software engineer at Laser-Scan (whose relevant parts later became 1Spatial) in Cambridge, working on their object-oriented GIS kernel, Gothic. Aside from large amounts of time hunting down and fixing obscure bugs, I

and my colleagues learned to consult me on a wide variety of technical issues.

Web site setup and management for Metro Internet Ltd. and system administration for User Interface Technologies, in Cambridge.
Development and evaluation, in conjunction with Oxford and Cambridge Compilers and the Fysisk Institutt, Universitet i Bergen, of The Shepherd, an evolutionary algorithm library. I was then the volunteer who managed a café for a few months while looking for more suitable employment. Concurrent with …
Consultancy follow-up contract, part time: enabled the Encyclopædia of Drosophila project to make use of my work for FlyBase, which it assimilated.
Coercion of data from a relational database (FlyBase) to an object-oriented database/display package (ACeDB) customised to the needs of geneticists. I designed and implemented a domain-specific language which packaged SQL queries with formatting directives in a general and robust manner; colleagues later found further uses for it. The project involved extensive collaboration with colleagues on either side of the Atlantic, in which the new medium of the web was a great help – running our server fell under my system management duties, which also embraced modest amounts of user support.
Mathematical and software research for NA Software. My work was directed towards the development of high-speed software to process images corrupted with a severe class of noise called coherent speckle. I had primary control of the research project to develop a program to segment such images (cut them into regions, each of which has constant visual texture – a concept whose formalisation lay at the heart of the entire project). I had overall editorial responsibility for regular progress reports for our customers on my work and that of four colleagues; this stretched from getting reports written, via typesetting (in LaTeX) to detailed proof-reading.
Solid modelling for Shape Data of Cambridge. Work spanned all phases, from design through coding and testing to user documentation, of modifications to Parasolid, the mathematical modelling core of a fully three-dimensional CAD (Computer Aided Design) system. My work extended to the training of recruits and trouble-shooting work on a suite of in-house software tools customised to the needs of the development and maintenance teams.
Prototyping work on a user interface language (of a style we would now call object-oriented) for FEGS Ltd of Cambridge, under the sagacious guidance of Malcolm Sabin.
Computer programming and mathematical support for a team of engineers working for Britain's National Nuclear Corporation, testing the design of safety systems for nuclear power plant (Sizewell B). This mostly revolved around the modelling of mixed-phase flows in boiling water.

For a discussion of what prompted me to take and leave each job (sometimes asked by interviewers), see my separate page on transitions.

Valid CSSValid HTML 4.01 Written by Eddy.
This page is part of my curriculum vitae.