<< To David's Personal Webpage | Hourly Rate Estimation Tool >>

David L. Dewey

Software Development Contractor

Email: My first initial + my last name AT my first initial + my last name DOT net


Worldwide freelance software development contracting and consulting

I have a broad range of software development skills and experience. I may be willing to travel to your location if needed for a project; however I prefer to work from my home office in the Seattle, WA area most of the time. Besides computer science, I have also studied several years of Mandarin Chinese, and enjoy visiting China; thus I would also readily accept opportunities to work in China.


The following are the development languages and tools with which I have the most experience. However, even if your required technology is not listed here, there is a good chance I can study it and learn to use it quickly.

Programming Languages:

C++, C, Java, Matlab, Assembly Language, Python, Ruby, Lisp/Scheme

Web Languages:

HTML, CSS, XML, PHP, SQL, JavaScript


gcc, g++, Lex/Flex, Yacc/Bison, Microsoft Visual Studio .Net, UML


Apache, IIS, MySQL, Samba, AutoCAD

Operating Systems:

Windows, Linux, Unix, Cygwin

Hardware Design Tools:

Cadence Custom IC Design Tools, OrCAD PSpice analog circuit simulator


  • BS in Computer Science, University of Washington, 2003
  • GPA: 3.93 (on scale of 0.0 to 4.0)

Some advanced Computer Science Electives:

Computer Graphics4.0
Computer Vision4.0
Artificial Intelligence3.8
*Very Large Scale Integration (custom IC design and layout)

Past Development Projects

University of Washington Computer Science and Engineering

January 2003-June 2003
Computer Vision teaching and research under professor Steve Seitz:
  • Generation of push-broom panoramic images of street scenes recorded by placing a digital video camera on top of my car. I developed complex mathematical algorithms for motion analysis and image stabilization.
  • Design and development of final project for computer vision course, Eigenface Facial Recognition. Over six thousand lines of C++ code, completed in less than two weeks.
  • Photographic image mosaics for reconstruction of works of art from photographs. Uses Matlab code for the intensive matrix algebra involved in finding the least-error solution for the mosaic.

NASA Jet Propulsion Laboratory, Pasadena, CA

June 2002-December 2002 and June 2001-December 2001
  • Voice-recognition system for Deep Space Network security. Uses K-means clustering of “cepstral” coefficient vectors to determine voice authenticity and admit user.
  • File-parsing system for processing Deep Space Network data files. Implemented a language that allows users to easily specify a grammar and processing instructions for each file format. In use as part of the Deep Space Network's new Service Preparation Subsystem (SPS).

Townsend Software, Port Townsend, WA

June 1999-June 2001
  • Development of software regression testing utilities
  • Development of a software configuration management API
  • CGI and SQL development for e-commerce sites
  • Management of a web-based credit card processing system

Foresight Science & Technology, New Bedford, MA

June 1998-May 1999
  • Development of knowledge domain database utilities
  • CGI and SQL development for e-commerce portal

Falcon Marine, Port Townsend, WA

June 1997-February 1998
  • 3D design of ship components in AutoCAD
  • Plan drawings in two and three dimensions
  • Extracting part shapes from designs and exporting them for plasma cutting
  • Creating 3D as-built drawings for Coast Guard approval
  • Ray-tracing 3D modeled designs for visualization


Steve Seitz

University of Washington Computer Vision and Graphics professor

Chris Diorio

University of Washington VLSI professor

Martin Dickey

University of Washington Introductory Programming professor

Chunman Gissing

University of Washington third-year Chinese professor

Alex Quinn

Personal Friend and UW Computer Science alumni

Linn Crosetto

Personal Friend and UW Computer Science alumni


The following will give you an idea of some of the software development services I can provide you. However, I have a wide range of knowledge and experience, so don't hesitate to contact me if your requirements don't fall into one of these categories.


Need to get your business online? I have experience developing E-Commerce sites such as web-portals and online stores. I can set up databases to track customers and inventory, and provide for secure, encrypted transactions. I can write applets to provide special, custom functionality to your customers. To protect and serve you and your customers, I pay great attention to the security as well as interoperability of my software and webpages.

Web Development

I provide quality web development services. All my web development is done at the source level, not coded by an editor. This results in pages that are interoperable on various platforms and browsers, are easier to maintain and update, and can be better indexed by search engines. I validate all of my HTML and CSS code to prove that it conforms to W3C specifications.


Need a complex relational database to keep track of customers, sales, transactions, etc? I can set up and maintain such databases and interface them securely with your website and other applications.


I can create user-level GUI applications such as editors, browsers, visual modeling software, and much more. If Java is used as the source language for such applications, the software can be used across a wide variety of platforms.

Software Security

Security is becoming an increasingly large issue in today's computing world. I pay careful attention to security when doing any software or web development. I can also help you improve security by inspecting your existing code for flaws that could allow attackers to compromise your system.


I can help you by coding software that performs a specific, useful task, performs it fast, and performs it well. Some examples: file converters, report generators, traffic analyzers, configuration managers, regression testers, and much more.

Scientific and Mathematical Software

I have experience writing code for solving problems involving cutting-edge algorithms or advanced mathematical techniques. For example, I've coded facial recognition software that uses techniques of eigen-decomposition to parameterize faces, voice recognition software that uses K-means clustering of cepstral coefficient vectors to match voices, and image combination software that uses Matlab code to solve systems of millions of linear equations. I've created ray tracers, graphical modeling tools, and various fractal graphics software. I also have experience in computer vision and have researched new techniques for panoramic image generation.


I am the author of Laser Kombat, a popular graphical puzzle game. Because of my experience in computer graphics and vision, I can code complex graphical games and other similar recreational or educational software.

Pricing and Payment

I normally do software development on a fixed-price basis. Large projects will be broken into milestones, with a working deliverable at each milestone. Half of the price of a deliverable is due upon starting work on it; the other half is due upon delivery.

Hourly rates vary depending on the type of development being done as well as other factors such as the amount of travel required and the size of the contract. If you are already quite experienced in software development and need to know my typical prices, you can use my rate estimation tool to approximate an hourly rate and then send a request for a rate commitment. Otherwise, you can contact me with some basic information about your needs, and I will work with you to sketch out the details and determine how I can help you.