<Resume xmlns="http://www.thuban.org/Resume.xsd">
	<Subject>
		<Name>Keith J. Farmer</Name>
		<Email>kfarmer@thuban.org</Email>
		
	</Subject>
	<Objective>To develop novel and useful solutions to interesting problems using cutting-edge tools.</Objective>
	<Recognition>
		<DateFrom>2006-01</DateFrom>
		<DateTo>2006-01</DateTo>
		<Award>Microsoft MVP: Visual Developer/Visual C#</Award>
		<Note>Awarded in recognition of my support of fellow users learning about the then recently-announced LINQ project.  Resigned from rolls upon my start-date at Microsoft to work on LINQ itself.</Note>
	</Recognition>
	<Skills>
		<Skill>C# (up to C#3 and Visual Studio 2008)</Skill>
		<Skill>LINQ (Language Integrated Query)</Skill>
		<Skill>LINQ Providers</Skill>
		<Skill>Silverlight 2</Skill>
		<Skill>ASP.NET</Skill>
		<Skill>IIS (up to IIS7)</Skill>
		<Skill>HTML</Skill>
		<Skill>SQL Server</Skill>
	</Skills>
	<Experience>
		<DateFrom>2008-06</DateFrom>
		<Employer>Idea Entity</Employer>
		<Role>Senior Software Development Engineer</Role>
		<Note>Prototyping, R&amp;D.</Note>
	</Experience>
	<Experience>
		<DateFrom>2006-01</DateFrom>
		<DateTo>2008-05</DateTo>
		<Employer>Microsoft Corporation</Employer>
		<Role>Software Development Engineer</Role>
		<Note>Hired as an MVP into the LINQ to SQL v1 team.  Participated in design and development of LINQ to SQL features, as well as provided feedback on proposed features for in-progress and future .NET Framework versions.  After RTM of LINQ to SQL and .NET 3.5, transferred to work on DataGrid control for Silverlight 2.</Note>
	</Experience>
	<Experience>
		<DateFrom>2007-08</DateFrom>
		<DateTo>2007-12</DateTo>
		<Employer>Manning Publications</Employer>
		<Role>Technical Editor, "LINQ in Action"</Role>
		<Note>Provided technical guidance and supplemental editting for a ~600 page book on LINQ.  Amazon.com sales rank (May 2008): #2993 in Books.</Note>
	</Experience>
	<Experience>
		<DateFrom>2004-04</DateFrom>
		<DateTo>2005-12</DateTo>
		<Employer>CoreMobility</Employer>
		<Role>Software Development Engineer</Role>
		<Note>Debugged and maintained internal contact-management and build-system websites. Developed prototypes and demos for Mobile Podcasting product, both broadcast and management. Developed a remote-testing platform, allowing a team of out-sourced script developers to write tests against a web service interface connected to live hardware maintained locally, with conditional waits and a live, interpreted view of the telemetry stream from the serial port.</Note>
	</Experience>
	<Experience>
		<DateFrom>2003-06</DateFrom>
		<DateTo>2004-04</DateTo>
		<Employer>TeraRecon</Employer>
		<Role>Software Development Engineer</Role>
		<Note>
			Maintain and extend the reporting systems of a medical imaging system.
			Includes responding to issues brought forward by sales and customer support as
			well as issues found in-house. Extend back-end patient database system in a
			backward-compatible method as needed. Implement new functionality in existing
			analysis modules. Programming skills utilized include C++, MFC, VBA,
			XML, XSLT, source control and the versioning of multiple, customer-specific
			branches.
		</Note>
	</Experience>
	<Experience>
		<DateFrom>2002-03</DateFrom>
		<DateTo>2003-06</DateTo>
		<Employer>Perlegen Sciences</Employer>
		<Role>Software Development Engineer</Role>
		<Note>
			As a contractor March 2002 to June 2002, performed analysis of
			Affymetrix chip scan data. Developed software to script reporting of data using C# and the .NET Framework with an Oracle 8i back end. With regular
			employment starting July 2002, moved on to other in-house application
			development, including visual analytical tools, LIMS development, and database
			schema conversion. Performed significant development on an in-house
			phenotypic data management website in ASP.NET, including development of custom
			validator controls with both server-side and client-side validation routines,
			drop-in replacements for base types to perform translation to and from
			database representations. Reorganized the phenotype schema to support
			arbitrary epidemiology needs and provided drop-in interfaces for the pre-
			existing software. Developed schema and user interface for a mechanism to
			report deviations in laboratory procedure. In all these projects, developed
			style and technique for software architecture and design patterns.
		</Note>
	</Experience>
	<Experience>
		<DateFrom>2000-08</DateFrom>
		<DateTo>2001-09</DateTo>
		<Employer>Clairvergent (formerly Revbox)</Employer>
		<Role>Software Development Engineer</Role>
		<Note>
			Participated most recently in the conversion of company technology
			from Tcl to Java. In the past, as part of a team of developers working under
			Solaris and Oracle 8i, created, debugged, and maintained a database and
			associated website containing approximately 6 gigabytes of data regarding
			products, customers, businesses, and the brokering of extended service plans
			among them and/or Revbox. Various projects included the debugging and
			enhancing of Java-based data loading programs, the creation of a SQL*plus-
			based API in support of a set of JSP project, the creation of administrative
			pages, tools for QA staff, as well as ongoing campaign execution. To ease the
			burden of QA reporting on development staff, created a Tcl procedure to allow
			non-developers to define their own reports in a simple and efficient way by
			encapsulating the database and table layout calls used to create a Tcl script
			on demand. Demonstrated abilities by learning the 6 languages used in the
			company within the first 4 weeks of employment.
		</Note>
	</Experience>
	<Experience>
		<DateFrom>1999-04</DateFrom>
		<DateTo>2000-06</DateTo>
		<Employer>Indoor Environmental Engineering</Employer>
		<Role>DBA/Data Analyst/IT/Office Manager</Role>
		<Note>
			As DBA, create and enhance a FileMaker Pro database to handle incoming
			data retrieval, storage, and analysis to ease workload and increase reporting
			accuracy, including QA/QC duties. As Data Analyst, utilize skills in math to
			perform statistical analysis of sample data, conferring with external
			laboratories as needed to resolve potential errors or omissions in both
			received data and internal calculations. As IT, develop and maintain a
			Macintosh/PC LAN, create and maintain web page, provide support for desktop
			users, and manage email, router and backup systems, acquiring hardware and
			software as needed.
		</Note>
	</Experience>
	<Education>
		<DateFrom>1991-08</DateFrom>
		<DateTo>1996-05</DateTo>
		<Institution>Washington State University</Institution>
		<Location>Pullman, WA</Location>
		<Note>BS Physics and Astronomy</Note>
	</Education>
</Resume>