*Nick Gravgaard, senior software developer
// senior software developer
Summary

I'm a senior software developer with over 13 years of commercial experience and a track record of creatively solving interesting problems for my employers and my own projects (inventing an algorithm now used by Google and a feature in Vim - see softography below). I've worked on a wide range of different kinds of project, including web sites, back-end systems, application software, games and information security. These days my main language is Python but I also know JavaScript, C#, C++, C, Java and Go.

I am a firm believer in using Test Driven Development (TDD), especially when developing with dynamically typed languages like Python. The assurance one gets when code is refactored and every unit test still passes is invaluable.

If you have an interesting software problem you should consider employing the services of my company, Beautiful Code.

My personal website's at http://nickgravgaard.com, and you can email me at .

Technical skills
Category Skill Experience
Operating systems Linux (SUSE, Red Hat, Slackware, Ubuntu, Debian, CentOS) 1998 - Present
Windows 1991 - Present
Mac OS X 2006 - 2007
Programming languages Python 2006 - Present
JavaScript (and JSON) 1999 - 2006, 2009 - Present
C# 2010 - Present
C++ 2002 - 2004, 2009, 2011
C 2000 - 2008
Go 2012
Java 2006, 2009
Lua 2010
Perl 2004
SQL 1999 - 2000, 2004 - 2006, 2009 - Present
Libraries, APIs, frameworks Django 2009 - Present
Tastypie (Django RESTful API) 2009 - 2010
Flask, Jinja2 2012
Mako 2012
Celery 2013 - Present
AJAX 2009 - Present
jQuery 2009 - Present
Python Imaging Library (PIL) 2006 - 2010
FFmpeg, pyffmpeg 2009 - 2010
Qt, PyQt 2009 - 2011
GTK+, PyGTK 2008 - 2009
Microsoft .NET 2010 - Present
Visual Studio Extensibility (VSX) 2010 - Present
Windows Presentation Framework (WPF) 2010 - Present
LINQ 2010 - Present
Windows Forms (WinForms) 2011 - Present
C++ STL 2002 - 2004, 2009, 2011
MFC, Win32 2000 - 2004
OpenTV 2006 - 2008
Java Swing 2006, 2009
Xlib (X Window System) 2000 - 2006
Component Object Model (COM) 2000 - 2002
Compilers GNU C / C++ Compilers (gcc, g++) 2000 - 2008, 2011
Visual C++ 2000 - 2004, 2009
Editors, IDEs Visual Studio 2000 - 2004, 2009 - Present
Eclipse 2006, 2009
vi / Vim 2006 - 2008
Testing unittest ('PyUnit') 2009 - Present
Mox 2010 - 2011
Hudson / Jenkins 2010 - 2011
Selenium 2009 - 2010
Version control and SCM Git 2009 - Present
Subversion (SVN) 2004 - 2006, 2009
CVS 2003 - 2004, 2006 - 2008
Visual SourceSafe 2000 - 2002
ClearQuest 2000 - 2002
Build systems Makefiles 2006 - 2008
CMake 2009
Ant 2009
Object-oriented analysis and design UML 2000 - 2004
Design Patterns 2002 - 2004
Together 2003 - 2004
Rational Rose 2000 - 2002
Software development methodologies Agile 2006 - Present
Scrum 2006 - 2008
Test Driven Development (TDD) 2009 - 2011
Databases PostgreSQL 2012 - Present
MySQL 2009 - Present
MongoDB 2012 - Present
CouchDB 2009 - 2010
SQLite 2009, 2012 - Present
Oracle 2004 - 2006
SQL Server 1999 - 2000
Markup languages HTML / XHTML 1999 - 2000, 2004 - 2006, 2009 - Present
CSS 2004 - 2006, 2009, 2012 - Present
XML 2000 - 2002, 2009, 2013
XSLT 2000 - 2002, 2009
XAML 2010 - Present
Softography

A complete version of this CV with employment history and qualifications is available upon request. References are also available.
Valid HTML5!