Kevin Fairchild 11541 Murcott Way Land O' Lakes, FL 34638 kevin@developmentgeek.com 727.738.8467 EXPERIENCE Sten-Barr Medical, Inc. 2000 - 2007 * Designed and developed custom application and server code. I created whatever software was needed that either didn't exist or whose purchase cost couldn't be justified. This included utilities for the network administrator and help-desk support, other developers, and some of the more advanced internal users. I also worked on a lot of projects for integration and communication between various third-party applications and systems. * Created imaging system to address specific business needs. The company originally was looking towards an OCR-based imaging database for storing all business documents relating to customer orders. I created an alternative system, which required minimal human interaction but allowed for a greater degree of flexibility. For any scanned/faxed image, users could associate it with one or more orders in the database. From there, the database could be used to provide all of the meta-data searches they needed to do. I also added quite a few validations and safe-guards to minimize potential data-entry errors. * Streamlined administrative tasks. I automated processes like sending out customer reports via fax, downloading and updating state/federal tax information, etc. This saved a lot of wasted time. I also created a few custom utilities to streamline some of our system monitoring needs, allowing someone with only a basic understanding the ability to look at a dashboard and quickly see trends and current status of many areas of the server and network. This was done utilizing WMI, custom SQL Server 2000 jobs, and parsing of information from third-party system. * Wrote maintainable and consistent code. At one point, there were six developers all working on the same code-base. I introduced a review process and came up with basic coding standards. This helped ensure that whoever needed to work on the code wouldn't have to spend extra time trying to work through someone's individual programming style, naming standards, etc. * Addressed security/performance issues. I was brought in for all major deployments to give advice on the pros/cons of various implementations. This included such things as bringing our web server in-house, limiting access to third-party vendor support personnel, ensuring HIPAA-compliance, etc. * Addressed documentation needs by setting up a wiki. SharePoint wasn't an option for our department at the time, so MediaWiki was used. I added large amounts of documentation to it for various projects I was working on, had finished, or knew were planned for later in the year. The more I used it, the more I was able to show its value to my co-workers. * Focused on business competitiveness. I love working with new technologies, but I'm also cognizant of business needs and the hidden costs of constant changes to designs and technologies. By keeping things balanced, we were able to have the greatest impact on the customers as soon as possible. AnazaoHealth Corporation 2007 - Current * Refactored, redesigned, and eliminated problem-areas. A lot of the time, this came from attacking areas of the code with the most "code smell", targeting weak-spots in previous business practices (heavy reliance on cursors, functions, etc. in SQL, for instance), and applying new design standards to older areas of the application. * Used mockups and paper-prototyping to come up with UI design. Nothing is more frustrating than building an application only to be told that the user needs some "just like that, only completely different." To avoid situations like that on new interface designs, I used paper-prototyping as well as tools like Balsamiq Mockups. This way, I could show the user a rough-draft of the proposed layout. Not only did this allow quick changes with minimal effort, but it set the expectations with the user better than if they had seen an interface that looked good but had no code behind it. * Engaged the development team in programming challenges. These helped to strengthen our teamwork, gave us different ways to look at the problem-sets, and helped us identify areas needing improvement. We did Project Euler challenges, some Top Coder problems, and even made Twitter clients for fun. This lets me compete against my peers to see whose code runs the fastest and uses the least amount of resources. When one person's code beat another, we'd look into why it failed and come up with ways to make it better. A lot of what I learned in these projects helped me with work I did later on. * Created robust exception logging. Rather than relying on the users to tell us when there was an issue in the code that slipped past our Testing/QA processes, I added custom exception to streamline the process. All exceptions are logged into a SQL table. As part of the logging process, it checks to see if a similar/matching issue has already been assigned to the development staff. If it has, it lets the user know that it's being looked into, but aside from logging the issue, no one is notified. If there wasn't already a log of the issue, the routine examines the exception and attempts to assign it to whichever developer is likely to have the most domain-knowledge relating to it. In addition to the overall exception info, a screenshot is saved with the developer notification, as a way of simplifying the troubleshooting process a bit. Once an issue has been resolved by the developer and the exception closed out, the screenshot is removed from the system and any subsequent occurrences of the issue will generate a new notification. This has drastically reduced the amount of time bugs remain in the code released to end-users. I use this information to identify coding changes that need to take place to prevent similar bugs from cropping up in the future. * Improved development coding standards and practices. Starting with a small subset of rules in FxCop, I began integrating the enforcement of design rules into our development projects. I actively worked to educate the rest of the team (and, often, myself) on the benefits and issues of certain violations that kept cropping up, ways to correct the issues, and decided on what scenarios were valid exceptions to the rule. After upgrading our SQL Server 2008 instances, I worked with the team to review existing routines, in order to leverage new capabilities, data-types, etc. in SQL Server 2010. Education * St. Petersburg College 1999 - 2003 A.A.S. - Oracle Database Development References * Available upon request