Ian Hickson, BSc

ian@hixie.ch

Objective

I am seeking a technical position on a software project that will improve users' experience of the Internet, on the cutting edge of the development and deployment of new Web technologies.

Skills

Summary: I am an experienced technical specification editor with a strong background in programming and quality assurance.

I have experience with the following technologies:

Programming languages
Significant experience with: Perl, Pascal, ObjectPascal; Some experience with: JavaScript, C++, C, C#, Lisp, Sawzall. Some sample programs are provided at the end of this resumé.
Web technologies
Significant experience with: HTML, XHTML, XML, XML Namespaces, CSS, DOM, HTTP, XBL, and Web APIs; Some experience with: SVG, RDF, XUL, MathML, XForms, XML Events.
Operating systems
Significant experience with: Mac OS X, Debian and other Unix distributions, Windows.
Personal skills
I read fast and learn quickly from reference materials.
I don't wait for instructions when faced with a problem; I just go out and fix it myself.
I have significant experience with writing clear specifications that encourage interoperability.

Employment History

Google Standards Development 2005-present

My work at Google consists of research and standards development.

  • As part of my R&D involvement, I am heavily involved in Google's work with the W3C, representing Google on the CSS working group and reviewing specifications of other working groups (SVG, CDF, etc).

  • I have been acting as the specification editor of the WHATWG, taking input from the public and continually updating the group's two major proposed specifications in the open. The WHATWG is a group I organised to act as the central discussion point for browser vendors interested in deploying HTML extensions in an open and interoperable fashion.

    The main specification work is on HTML5, effectively a complete revision of HTML4 and the related DOM specifications, to bring HTML up to date with requirements for Web-based application development.

  • In addition I also carry out the usual array of R&D duties: developing technologies and writing specifications for internal products, investigating new ideas, responding to questions from developers regarding how to implement standards, contributing to discussions regarding future product development, etc...

Opera Software Research and Development 2003-2005

My work at Opera was divided over two areas, quality assurance and research and development.

  • As part of my QA involvement, I decided to write and run an automated visual regression testing system, which I subsequently pushed to have extended to cover multiple platforms and multiple development branches. This revolutionised the quality assurance process at Opera, since before this time no regular automated testing was performed.

  • I also pushed hard to have strict test case authoring guidelines put in place. Combined with my involvement in the creation of more efficient processes for handling bugs, this dramatically increased the quality of standards testing at Opera.

  • In addition I also carried out the usual array of QA duties: daily product testing, ad-hoc testing, comprehensive focussed testing, test suite development, test suite review, bug reporting, bug triage, etc.

  • As part of my R&D involvement, I was heavily involved in Opera's work with the W3C, representing Opera on various working groups (CSS, CDF, XBL). In response to growing concern with the direction of the W3C, I managed to get Apple, Mozilla and Opera co-operating and coordinated the announcement of the WHATWG group. I have been acting as the group's specification editor and spokesman, taking input from the public and continually updating the group's two major proposed specifications in the open.

  • The first WHATWG proposal was Web Forms 2, a major update to HTML4's forms features, intended as a backwards-compatible alternative to W3C's XForms. This draft is mostly stable.

  • The second WHATWG proposal, still in heavy development, is Web Applications 1.0 (now HTML5), effectively a complete revision of HTML4 and the related DOM specifications, to bring HTML up to date with requirements for Web-based application development.

  • In addition I also carried out the usual array of R&D duties: developing technologies and writing specifications for internal products, investigating new ideas, responding to questions from developers regarding how to implement standards, work on patents, contributing to discussions regarding future product development, etc...

W3C CSS Working Group Invited Expert 2000-2006, and intermittently since

As a member of the working group, I am directly responsible for the content and editing of the CSS3 Lists and CSS3 Generated and Replaced Content modules, and am a co-editor of the CSS2.1 and W3C Selectors specifications. I am also directly responsible for two test suites, the CSS3 Selectors test suite, and the CSS2.1 test suite. In addition, I take a very active part in the working group's other work.

My experience with the CSS working group has helped me develop practical teamwork and communication skills. Discussions are spread between e-mail, IRC, weekly phone teleconferences, and quarterly face-to-face meetings.

Netscape Communications (AOL) Standards Compliance Quality Assurance (Intern) 2000-2001

At Netscape I worked in Netscape's standards compliance quality assurance team for Mozilla's layout engine.

During the year of my internship at Netscape my responsibilities quickly grew to cover the entire Mozilla style system, including the CSS document object model. I was responsible for the development of new test suites, checking for regressions on a daily basis, and writing compliance reports prior to milestone releases.

I was also responsible for advising engineers on implementation strategies for new features and prioritizing bugs.

mozilla.org Layout QA Contact; Mozbot Project Lead; Technical advisor 1998-2006, and intermittently since

Over the seven years since I became involved in the Mozilla project my responsibilities have included bug reporting, bug triage, bug verification, and prioritizing. I have been the QA Contact for (the person primarily responsible for the quality assurance of) more than fifteen separate Mozilla components, and monitor activity in the bugs of all these components.

I am also the module owner for the Mozbot project, an automated IRC client with a modular architecture written in Perl.

My work with the Mozilla project has given me the opportunity to develop the skills required to work well in a large community, as well as increased my attention to detail.

Bath University Undergraduate Student in Physics: 2i with Honors 1998-2002

I studied a broad range of Physics subjects, including Astrophysics, Quantum Mechanics, and Thermodynamics. The course also included practical mathematics skills such as approximating solutions to non-linear wave equations.

Physics has primarily exercised my analytical skills, although the course, in particular my final year, forced me to acquire time management skills to deal with narrow deadlines.

Sample Programs

C++: An Internet Monopoly game server
http://monopoly.damowmow.com/game/server/
C#: A graphical client to connect to that Internet Monopoly server
http://monopoly.damowmow.com/game/clients/dot-net/
Pascal: A small program to implement Langton's Ant
http://software.hixie.ch/utilities/pascal/langton/
Lisp: A shell script interpreter that implements Lambda calculus
http://software.hixie.ch/utilities/eulisp/lambda-calculus/
Perl: The preprocessor Mozilla uses
http://software.hixie.ch/utilities/unix/preprocessor/