My philosophies can be divided into managerial and development philosophies.

For software management, I employ Agile methodologies.  Agile allows greater flexibility and higher software quality.  At a previous company, I established Agile methodologies.  Before I started managing the team, it had significant trouble getting new software into the customers’ hands.  There was a critical feature that a programmer implemented.  The customers were clamoring for the feature, but it was not released until 6 months after he finished it.  After implementing Agile, I reduced the turn around time from 6 months to 2-4 weeks.  The team’s morale improved greatly as fixes and features were readily available instead of laden in bureaucracy.

Agile also stresses direct developer involvement with the end customer.  I increased the development team’s interaction with the customers.  Before I started managing the team, there were several features that did not match the customers’ expectation because there was a barrier to getting feedback between the developers and end customers.  After implementing Agile, I increased customer involvement during the development cycle.  Customers saw that their feedback was integrated into the product and were shown that the company could address their concerns.

For development, I use Booch Methodology.  I think of it as a precursor to a lot of the Agile concepts except on a macro level.  Booch Methodology can be simply summarized as: design a little, code a little, test a little and repeat.  You are always coding on what you know already works.  When an issue arises during development, it is much easier to find where it is because only a few changes were made to the code since the last test.

I make use of design patterns in development.  Especially in GUI development, I use MVC (Model View Controller).  An improper use of design patterns can make the code worse off than without using a design pattern.  I use design patterns pragmatically to make sure they improve the code quality.

My development philosophy is heavily influenced by The Pragmatic Programmer.  I highly recommend reading it and have always had my team members read it.


My main focus in coding projects has been developing distributed systems and user experience/user interface development.  Though my focus is in certain areas, my projects have been quite varied.

I do both professional and personal projects. Personal projects like the Million Monkeys project went viral and gained international notoriety.

I worked on the web services, Android implementation and website for Dibbs International.  I rewrote the web services using Axis2 and Tomcat.  Later, I stepped in and finished the Android implementation of the client program.  Recently, I led the team adding the client services into a Joomla web site using JQuery.

I designed and implemented a system called BrightClip.  BrightClip is a high performance and low latency disk format and client API aimed at the media industry.  It is quite successful and is being used at large, well-known companies in the media industry.  My role in the project was a manager, developer and liaison to companies who implemented the BrightClip API.

For a longer list of projects, please visit my online resume.