I am a software developer based in Helsinki, Finland. I work for Mozilla (but opinions expressed on this site are my own, etc., etc.). I mainly work on stuff above networking and below layout, notably the HTML parser and character encoding converters. Previouly, I developed an HTML5 validator and represented Mozilla on the HTML Working Group of the W3C.
In 2007, I graduated as Master of Science (Technology) from Helsinki University of Technology, Department of Computer Science and Engineering. I wrote my master’s thesis about HTML5 validation.
My primary email address is firstname.lastname@example.org. Previously, I have used the email address email@example.com, which remains forwarded to firstname.lastname@example.org.
However, I’m constantly near email bankruptcy, so other ways of communication are likely to work better. For questions about Firefox or Gecko, please consider using the dev-platform mailing list. For questions about HTML5 validation or the validator, please consider using the WHATWG help list instead of emailing me directly. For short things, tweeting to @hsivonen on Twitter or finding hsivonen on the #whatwg IRC channel on Freenode works better than email.
Please don’t email me about link exhange proposals or about translations whose main purpose is to get me to link to a particular site. I don’t participate in SEO schemes.
|I am not on Facebook|
|I am not on LinkedIn|
Starting from the beginning of July 2013, I intend to use the following key for code signing. (The master key is only for key signing. There is a signing subkey for other signatures—particularly code signing.) This key is available (insecurely; you need to check the fingerprint) via DNS PKA (
gpg --auto-key-locate pka).
pub 4096R/A429300434296AC0 2013-07-03 [expires: 2018-07-02] Key fingerprint = 3E95 6FC6 CE0B CAA8 F509 D291 A429 3004 3429 6AC0 uid Henri Sivonen <email@example.com> sub 4096R/99D20DC0A5E8F4F5 2017-01-08 [expires: 2018-01-08] sub 4096R/8E186E6744D62396 2017-01-08 [expires: 2018-01-08]
Prior to July 2013, I used the following key (the master key itself) for code signing.
pub 1024D/CEE122264BF78053 2008-02-26 Key fingerprint = F48B 82DF CB8E C84C 5418 01FC CEE1 2226 4BF7 8053 uid Henri Sivonen <firstname.lastname@example.org> sub 2048g/213FF2881E6BCBC3 2008-02-26
For completeness, I have signed transition statement.
For work stuff, I have yet another key:
pub 2048R/59F7DEA15595F98A 2013-05-13 [expires: 2018-07-07] Key fingerprint = 7D46 8A17 0D58 BDF1 4AF4 14D0 59F7 DEA1 5595 F98A uid Henri Sivonen <email@example.com> sub 4096R/EF8D7FEF66B95C38 2017-01-08 [expires: 2018-01-08] sub 4096R/A49D6C8EDC5E130C 2017-01-08 [expires: 2018-01-08]
Note: Someone other than me uploaded keys with colliding short key IDs with mine (with my name and email address on them; possibly created as part of the Evil32 research, but I did not bother to check) to public key servers. Do not use short key IDs!
For authorizing me for SSH access: SSH public key (GPG signature)