Résumé of David Lattimore
Last updated: July 22, 2010
Phone AH: +612 6257 6798 (6257 6798)
Phone Mobile: +61404 127297 (0404 127297)
Email: david-resume AT dmprice.com
Web: http://dmprice.com/
Previous name: David Price
I enjoy working with technology and solving problems both as a hobby
and as a job. I find I work best when I have others to discuss ideas
with.
I am an advocate of development practices such as test driven
development, writing code that tells a story, YAGNI (You Aren't Going
to Need It), the DRY (Don't Repeat Yourself) principal. I find that
these practices, if followed stringently, allow changes to be more
localised making maintenance easier.
I learn new languages and technologies quickly, work well individually
or as part of a team and am happy to document work as I go.
- 2010 March - 2010 June: Contracted to the Australian
Competition and Consumer Commission (ACCC) to build a web site
using the Drupal content management system. In the process, wrote
a number of Drupal modules to meet the requirements of the ACCC.
- 2009 August - 2010 May: Casual work for the SmartCars
project at NICTA (National ICT Australia). Work involved
implementing various computer vision algorithms (C++). Also
created scripts to aid in the creation of classifiers to identify
street signs. Technologies used include C++, Bash, Ruby, GIMP
Script-Fu (Scheme).
- 2008 - present: As a volunteer, built and maintained the
web site http://anumc.anu.edu.au/ on top of the Drupal
content management system. Wrote numerous custom modules in PHP
in order to provide some of the more unique features required for
this site.
- 2009 August - 2009 December: Contracted to a bank to help
port their in house application from ObjectStudio 7 to the newer
ObjectStudio 8, which has numerous differences on account of being
a compatibility layer built on top of VisualWorks Smalltalk. Much
of the work involved writing automated transformations of their
code in order to clean things up and make it easier to maintain.
- 2008-2009: 1 year contract building a web application
using the Seaside web framework on VisualWorks Smalltalk. The
application replaced an existing mainframe business system and
went into operation on time and under budget. Work involved
reading legacy Cobol code and reverse engineering data files in
order to establish requirements. The developed system had an
extensive automated test suite.
- 2008 May - June: Contract doing maintenance and porting
of a point of sale server application written in Gemstone
Smalltalk.
- 2005-2008: Wizard Information Services, software
developer. Working with the Scrum and XP agile methodologies, we
developed a range of software using Smalltalk and Javascript.
From April 2007, I have took on the role of lead developer. This
work involved the creation of an AJAX web framework and an RDF/OWL
based triples database system using Berkeley DB. Prior to this
work, I helped build a web application for managing events run by
community groups.
- 2004-2005 part time: National ICT Australia, systems
administration. In this role, I identified issues with some
existing desktop infrastructure, then designed and implemented a
diskless Linux setup, which was then rolled out to over 100
desktop computers. I wrote concise but comprehensive
documentation for this system so that the full time system
administrators could take over the running of this system.
- 2001-2003 part time: Australian National University.
Tutored 9 classes and over 180 students in subjects ranging from
first year introductory programming to third year algorithms and
networks.
- 2003-2004: Started PhD at the Australian National
University in the Automated Reasoning Group of the Research School
of Information Sciences and Engineering. After taking a year off
to work for Wizard Information Services, I decided not to return
to finish my PhD.
- 1999-2002: Bachelor of Software Engineering with honours
(first class) at the Australian National University.
- Languages: Smalltalk (VisualWorks, ObjectStudio and
Visual Age), Javascript, C, C++, Ruby, PHP, various assembly languages,
Java. In addition I have done small amounts of programming in
many other languages and am able to pick up new languages quickly.
- Technologies: UNIX, Linux, various version control
systems, RDF, Berkeley DB, autoconf/automake, GTK+/GNOME API,
lex/yacc, GDB, gprof, network programming, MPI, pthreads, XML, GNU
Make, LATEX, Drupal.
- Skills: Design, technical writing, requirements
solicitation, requirements analysis, teamwork, communication,
problem solving, reviews, process measurement, testing, formal
methods, tutoring.
- 2002: 4th year software engineering project:
Implementation and comparison of a number of different DTP
(Decision Theoretic Planning) approaches for solving NMRDPs
(Non-Markovian Reward Decision Processes).
- 2001: 3rd year software engineering project: A data
logging and graphing system for use with Lake Tuggeranong
College's solar car. http://rdls.sourceforge.net/
- Occasional spare time from 1999 to 2002: Desktop
system monitor http://root-portal.sf.net/
- 1996 - 1998: Attempted (with a friend) to write an
operating system (kernel, compiler, assembler etc).
- 1987 to 1996: Small programming projects since age of 7,
starting with VIC20, then Commodore 64 before moving on to x86.
- 2003: Competed in the ACM South Pacific regional
programming contest with our team solving 6 problems and coming
4th out of 96 teams
- 2002: Awarded an ANU Honours Scholarship
Many outdoor activities including cycling, hiking, caving and rock
climbing.
Referees available upon request.