Consulting
Home

 

Software Development

Standard software development for Windows based applications is the primary service offered.  This includes development of custom designed and built software for any particular need.  I can also take on either minor or significant enhancements to existing software.  My experience includes both type of software development.  My current preference for projects is using the .NET platform and either C# or VB.NET, but of course, will accept most anything.

Other Services

bulletCustom Evolutionary Solutions : Consulting services involving the development of custom Evolutionary solutions, for example, the application of evolutionary techniques to complex scheduling problems.  I have developed a sophisticated Genetic Programming development software package and have other experience with evolutionary computing.
bulletSoftware Optimization : One of my great interests is in taking an existing software implementation, profiling it to find areas where performance can be improved and then modifying the code to improve its performance.  If you have need to improve the performance of an existing software application, I have the ability to analyze and improve its performance.
bulletCode Refactoring : Another great area of professional satisfaction is in taking an existing implementation, understanding what it is supposed to do and improving the implementation.  Improving the implementation may mean finding ways to do the same task with far less, and more understandable, code.  It may mean enhancing the documentation associated with the code.  It may mean reorganizing the code into a different structure so it can be reused by other parts of a larger software application.  This is a task I am constantly doing for my clients, taking an existing implementation, adding new features and improving the existing implementation to ensure long term viability of the software.
bulletAlgorithm & Data Structure Implementation : I have the ability to read and understand research papers from academic and industry sources, including conference proceedings.  If your company has need to incorporate an algorithm or data structure described in such a source, I have the interest and ability to provide such an implementation.  Key Advantage: If I don't have the time or get stuck, remember that I work with 17 Computer Science PhDs on a regular basis and have the ability to have them do the work for you or provide support to help me.
bulletTraining : I work as an instructor at Utah State University, therefore, it is natural for me to provide in-house training to an organization.  I have special expertise in the C++ and C# languages, including the .NET platform.
bulletComputer Graphics : I teach both undergraduate and graduate Computer Graphics as part of my University Job.  I have experience with both OpenGL and DirectX, including XNA, along with a wide range of data structures and algorithms related to the implementation of Computer Graphics.  My background also includes understanding how to take full advantage of modern video cards, including shading languages.  Also have experience with Image Processing, including converting MatLab code into a high-performance C++ implementation

Consulting Rate

Contact me for my rate.  You'll find it better than most, both in terms of the rate and in how the hours are charged.  The reason my rate is this low is that I work from my home, don't have additional office staff to support, live in a smaller town, and etc.  In particular, I don't have to support staff when there aren't projects to work on...you only pay for the work done on your project.

Before any work is done, we both come to an agreement on what work is to be done and within what timeframe.  This agreement can be as formal and detailed, or as informal as needed.  My best recommendation is to break any project into two phases:  The first phase is a small task where the project requirements and an estimated cost and timeline is prepared; The second phase is the implementation of the work as described in the first phase.

An alternative approach is to simply buy my time, tell me what work you want me to do and I work on it and charge for any time I spend.  When working with me, this is a safe technique, my reputation is of utmost importance.  I don't waste my client's time/money.  If I do good work, I get more work, if I do crappy work, I go hungry.

For new clients, I request 25% of the estimated fee to be paid in advance and then payment is expected on a monthly basis, after the first 25% of the work is done.  Other arrangements can be made if needed.