Curriculum Vitae

Nicholas Nethercote

Email: n.nethercote at gmail com
Nationality: Australian


Education and Employment

2011-present: Adjunct Senior Research Fellow
Clayton School of Information Technology, Monash University.

2009-present: Software Engineer
Mozilla Corporation.

2006-2008: Research Fellow
G12 Constraint Programming Platform Project
Network Information Processing Research Program, National ICT Australia, Australia.

2006-2008: Honorary Research Fellow
Department of Engineering
University of Melbourne, Australia.

2005: Postdoctoral Fellow
The TRIPS Project
Department of Computer Sciences, University of Texas at Austin, USA.

2001-2004: PhD
Dynamic Binary Analysis and Instrumentation
Computer Laboratory, University of Cambridge, UK.
Supervisor: Prof Alan Mycroft

2001: Master of Computer Science
The Analysis Framework of HAL.
Department of Computer Science and Software Engineering, University of Melbourne, Australia.
Supervisors: Prof Peter Stuckey, Assoc Prof María García de la Banda.
Thesis grade: 91%.

1996-2000: Bachelor of Engineering (Software), with Honours
Department of Computer Science and Software Engineering, University of Melbourne, Australia.
Final Honours mark: 93%.

1990-1995: Victorian Certificate of Education
Ballarat Grammar School, Australia.
Tertiary Entrance Rank: 99.90.


Scholarships and Selected Awards


Professional

Primary Area of Interest

Improving software quality, particularly correctness, performance and usability.

Areas of Expertise and Experience

Refereed Conference, Workshop and Journal papers, and Invited Presentations

Please see my publications and presentations page.

Professional Service

Software Development Experience: Projects

2009-present: Firefox, a fast, widely-used, standards-compliant, extensible web browser.
Working remotely on the JavaScript engine and other parts of the browser as a member of a distributed team. C++ and JavaScript programming on Linux, Mac, Windows. Done for Mozilla job.

2006-2008: The G12 system, a platform for solving large scale industrial combinatorial optimisation problems.
Writing the compiler for the Zinc modelling language as a member of a research team, and co-designing the language. Mercury programming on Linux. Done for NICTA job.

2005: The compiler for TRIPS a next-generation computer architecture.
Contributed various compiler phases and infrastructure work as a member of a research team. Java programming on Linux. Done for postdoctoral job.

2002-present: Valgrind, a GPL'd system for debugging and profiling x86-Linux programs.
Contributed major design and development input as a primary developer in a loose-knit open source team. C and x86 assembly programming on Linux. Done for PhD, in spare time, and for Mozilla job.

1999-2001: HAL, an experimental compiler for a contraint logic programming language.
Implemented a generic, abstract interpretation-based static analysis framework and several specific analyses, as member of a research team. HAL and Mercury programming on Linux. Done for Master's, and a summer internship under Prof Peter Stuckey.

2000: Aura VSS, a surgery simulator for the Royal Victorian Eye and Ear Hospital, Melbourne.
Project Leader of 17 person team, and implemented part of graphics sub-system. Java programming on Windows 98. Done for a year-long student project that featured rigorous software engineering processes and documentation.

1999: MEV, a brain scan visualiser, for the Austin Hospital, Melbourne.
Implemented various sub-systems as member of a 5 person team Java programming on Windows 98. Done for a year-long student project that featured substantial software engineering processes and documentation.

1998: Educational games for children.
Implemented several games as the lone programmer for an education research project. Visual Basic programming on Windows NT. For a summer internship at the Department of Science and Maths Education, University of Melbourne, under Prof Kaye Stacey.

Software Development Experience: Kinds

Teaching Experience

2002: Supervisions - University of Cambridge

1999-2000: Tutorials - University of Melbourne

1998-2000: Lab Demonstrations - University of Melbourne

Professional Skills