NOTE: The most recent version of this document is available here.
Location: Seattle, WA (willing to relocate)
Statement of Intention
I desire to work in a relaxed environment, on relatively interesting projects, where I can utilize
my skills to the fullest, learn new things, and work with fun and intelligent people. Although I
have significant web development experience, I'm not interested in jobs where frontend web
development is the primary focus. I prefer backend and non-web development, especially developing
tools and APIs for other developers to use.
Primary Skills (details below)
- 20 years of general programming experience
- Knowledge of many programming languages, including:
- C#, MSIL, Managed C++, JScript.NET
- Perl and Python
- Assembly (for x86, 6502, z80, and Atmel chips)
- Lisp and Scheme
- Experience with many technologies and platforms:
- XML (XML, XSD, XSLT)
- Win32 (raw Win32 API, MFC, and COM/ActiveX [using both raw C/C++ and the ATL])
- .NET (overall framework, Windows Forms, ASP.NET, MSIL, etc.)
- SQL databases (ANSI SQL and TSQL with MySQL and MS SQL Server)
- Embedded programming (in particular, development for Atmel chips in custom electronics)
- Microsoft SharePoint (I worked directly on SharePoint technologies and SharePoint itself
when I was employed in the Microsoft Office Server team.)
- Strong attention to detail and a focus on code quality
- Quick learning
- Understand object-oriented programming and design, computer architecture, and code optimization
- Experience building, repairing, and networking computers in basic applications
- 1 year's experience baking healthy artisanal breads. Yum!
See my baking page.
- Experience using and configuring MS-DOS, Windows 9x/2000/XP/2003/Server 2008/7, and GNU/Linux
- Basic configuration and administration of servers and desktop workstations
- Basic Microsoft Office skills (Word, Excel, Outlook, Visio)
- IIS, MS SQL Server, Apache, PHP, MySQL
- Microsoft Visual Studio, TFS
- CVS, Subversion, mercurial, Emacs, vi, bash (shell scripting), general GNU (unix) utilities
- January 2014 to present - Moved to Seattle, WA. Working on
my own projects and
doing related contract work.
- November 2011 to January 2014 - Contract work for Webmedia Estonia, designing and developing
a high-level database engine to augment or replace SharePoint. I also designed and implemented
a high-quality, standards-compliant, extensible WebDAV server.
- August 2011 to November 2011 - Taking time off, studying, and planning a move back to the
- November 2008 to August 2011 - Senior developer for Webmedia Estonia. I worked primarily
on developing a large SharePoint document management system for the Estonian government (the
Ministry of Science and Education), integrating it with other Estonian government services (e.g.
for document exchange and archival), and implementing Estonian standards (e.g. for digital
signing). The system was modular enough that additional document management systems tailored
for other organizations could be developed with minimal effort. I also developed a few
SharePoint intranet sites with bidirectional integration with Microsoft CRM and other in-house
and third-party systems (e.g. calendars, employee databases, etc). These were also modular
systems such that 70-90% of the effort could be reused for future sites after the first site was
built. Finally, I developed a fairly substantial Silverlight garden planner application,
including a simple software 3D renderer. In addition to these large projects, which I
implemented single-handedly for the most part (though of course as part of a larger team that
included analysts, testers, etc.), I was involved in various smaller projects,
including a number of e-commerce websites and an experimental number-plate-reading system for
the police department.
- January 2008 to November 2008 - Sabbatical. I spent time studying baking, artificial
intelligence, Estonian, and math; playing with friends; and relaxing. I also moved to the
country of Estonia.
January 2006 to January 2008 - Software developer for Microsoft Corporation,
on the Microsoft Office Server team, building components on top of SharePoint, the Business Data
Catalog (BDC), and the People profile store. I also did some work on SharePoint itself, and
built tools to help streamline the development process for the various Office Server teams.
January 2003 to January 2006 - Project lead and lead software developer for RosArt
Multimedia, designing and implementing a distributed client management system for the SDSU Social
Policy Institute in C# with a SQL database backend, called OTGMS. I also briefly worked on the
open source .NET
MySQL driver used in OTGMS. In addition to OTGMS, I maintained and developed web sites and
applications written using Perl, ASP, MySQL, and/or PHP, and designed and created a large set of
perl modules for use in a web server environment. Later, I created (in C#) a server-side system
that allowed rapid development of e-commerce and other dynamic web sites by non-programmers,
with the ability to maintain, reconfigure, and upgrade all sites from a centralized control
panel. The system also scanned websites proactively to detect broken links and pages, and
misconfigurations, and sent detailed reports to those responsible.
2002 to January 2003 - Software engineer for Datamar Inc. and SLCC (Student Loan
Consolidation Center), writing COM components to support various ASP applications, doing
database design and optimization, writing components and stand-alone tools in .NET to support
ASP.NET applications. Developed a full-featured issue tracking system.
October 2000 to 2002 - Software engineer for Trustium Corporation, creating COM
components and .NET assemblies in C++ and C# for use in multi-tier web environments, SQL database
design, web sites using XHTML, CSS2, ASP (JScript), and XML, and stand-alone utilities and testing
applications (in C#, C/C++, VB, and Perl). Heavily involved in the creation of several highly
successful real estate websites.
August 2000 to October 2000 - Web developer for Equinta Corporation, creating web
applications using HTML/AJAX/ASP (JScript and VBScript) [company folded]
- Previous - Various programming projects and computer repair for individuals.
Potentially Interesting Publications
- 14 years' experience working with the .NET platform on Windows and GNU/Linux (via mono), including
Managed C++, C#, JScript.NET, ASP.NET, and MSIL
- 8 years' experience working with web and XML technologies (HTML, AJAX, ASP, PHP, CGI, CSS,
- 7 years' experience working with C/C++
- 5 years' experience working with Microsoft SharePoint
- 4 years' experience working with SQL (MySQL and MSSQL)
- 3 years' experience working with BASIC/Visual Basic
- 3 years' experience with the Win32 API, and some MFC experience
- 2.5 years' experience working with COM/ActiveX in raw C/C++ and using the ATL
- 2 years' experience working with Perl
- 1 year's experience with x86 assembly (and also 6502, Z80, and Atmel assembly)
- 8 months' experience working with Python (enough to write a Python compiler)
- 4+ months' experience working with Lisp (both Common Lisp and Emacs Lisp, enough to write a LISP
compiler or two)
- 4 months' experience working with Scheme