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

Summary

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.

Work

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.

Education

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.

Experience

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.

Non-work projects

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.

Awards and competitions

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

Other interests

Many outdoor activities including cycling, hiking, caving and rock climbing.

Referees

Referees available upon request.