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 .
| 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 |
A complete version of this CV with employment history and qualifications is available upon request. References are also available.
Valid HTML5!