My Philosophy

My name is Keith Vance and I've been building web applications for more than 15 years. I've worked on small projects for little mom and pop shops to building a survey application for all of Verizon's employees and the CEO.

And while my skills in PHP, HTML, CSS, Javascript and Perl are well honed, that's not my greatest asset as a technologist. The value I bring to a company, and a project, is my ability to solve any problem with the right technology. If it makes the most sense for the project to do everything on the server-side, that's what I'll do. If it makes sense to leverage client-side technology, such as Javascript and jQuery, that's what I'll do. What most projects call for is a healthy mix of technologies.

I approach every project from the perspective of how to solve the problem, not how can I take my existing skillset to cobble together a solution. If the best solution is to use Google's GWT, then I'll download it and learn it. Basically what I'm saying that I put my ego aside and I do whatever is best for the project to be successful. I enjoy working outside of my comfort zone, in terms of technology.

In terms of software development methods, I prefer Agile. But the best software development methods are those that the team adheres to. Often people will talk about how they're an Agile shop, or waterfall, but when it comes down to it, they aren't any of those things. While it's not necessary to adhere to all of tenets of a particular development methodology, it's wise to have some process in place that every agrees to follow.

My Work

Naplesrentals.com

This is the first web application I ever built. In 1997, I rolled out the first horrible version of NaplesRentals.com. And over the years I have done three major overhauls of the website. I've recently finished a fairly significant overhaul of the site on the backend and the front. While it is not perfect, the site is going in the right direction.

My guiding principle when designing NaplesRentals.com is to stay out of the user's way. The reason people go to this website is to find a rental property in Naples. So my goal is to give them what they want as quickly as I can with as little hassle for the user as possible.

I have to balance that desire with other goals, such as keeping spammers away and gathering enough useful information from the user so that property owners can effectively respond to inquiries.

As the site currently sits today, it's looking a little dated. There's a bunch of table-based layout in there and it's not responsive. The new version I've been working on for the last few months is all HTML5, sassy CSS and it's responsive. The screenshot I'm posting here is of the new version. While I'm not a designer per se, I think I've come up with a clean and simple design that should carry the website into the future.

Along with the forward-facing NaplesRentals.com website, there's also a fairly sophisticated user interface for property owners. They can track leads, upload photos and manage their listings. There's also a robust administrative interface to manage all of the content on the site, user communication and reporting.

Meat Handlers and Slaughterhouse licensing - State of Vermont

A common task at Vermont Information Consortium in Montpelier, Vermont is building licensing services for state government agencies. In this case, the state's Agency of Agriculture wanted a web application for meat handlers and slaughterhouses to renew their state licenses online.

For this application, I used Drupal as an application platform. I wrote a custom Drupal module that renders the necessary forms using the Drupal Form API. The module also handles all email communication the renewal process requires, as well as, as payment processing. Using Drupal as an application framework allowed for very clean separation of business logic and the application's user interface.

My guiding principle in designing this application was simplicity, mobile first and responsive design. I wanted the user to have to do very little work to renew their license. The bulk of the application is one relatively large form, about 30 fields, but it's presented in a way that's not daunting for the user.

Almost all of the data is prepopulated and the user only has to enter what's absolutely necessary. The user should be able to renew their license in less than 5 minutes on a mobile device or computer.

Online Child Support Payments

This is another application I built for the state of Vermont to allow non-custodial parents to submit child support payments online.

This is a project that I had to take over from another programmer who passed away before the project was completed. I was able to pick up the ball and run with it - taking the project to the finish line with great success.

Because I didn't begin this project, there were things I would have done differently on the frontend and the backend, but at then end of the project, it came out well and it's working with very few minor issues after launch.

Had I had my way, I would have used a Symfony framework, rather than custom PHP, and I would have greatly simplified the user interface. Simplicity for the user is always my goal. Too often, web applications are too cumbersome and confusing for the user. While I was able to drive the user interface to a better place than it started, more work can certainly be done to improve it, but isn't that the case with all applications?