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 the last few years, I've gotten really interested in more client-side technologies. With HTML5, sass and jQuery, a programmer can create some really dynamic, responsive applications. In my opinion, the front-end is where all of the exciting technological advancements are happening. That's where I'd like to live as a programmer.

And 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

NaplesRentals.com Screenshot 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'm currently working on the most recent version.

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.

Technology used for NaplesRentals.com includes: MySQL, object-oriented PHP, Javascript, jQuery and CSS3.

Meat Handlers and Slaughterhouse licensing - State of Vermont

Meat Handlers ScreenshotA 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.

Technology user for this application includes MySQL, Drupal, PHP, Javascript, jQuery and sassy CSS3.

So that's me in a nutshell. You can download my resume here.