Technical Expertise

Illustration of IDE

We follow best practices at every layer of the web development process. By doing things the right way, with the right tools, we deliver applications that perform well and grow well, saving you money.

We work primarily with open source technologies, so you can count on the long-term viability of your application, and on the availability of developers who can work on your site.

It should go without saying, but we use source control systems to mange your application code, ensuring easy rollbacks and error recovery and seamless collaboration among multiple developers.

Back end

We develop on the LAMP (Linux, Apache, MySQL, PHP) platform, a free, open source, software stack that powers most of the world’s websites.

We base our web application development on the Codeigniter framework, in conjunction with the Zend Framework classes. We follow the MVC pattern and DRY principals, and write clean Object Oriented code with good documentation. Our web applications are based on REST architecture and stick to the HTTP verbs (and no idempotent methods used for transactions).

MVC stands for Model View Controller, which is an architectural standard defining the way in which different layers of an application interact with one another. Under the MVC structure, applications are separated into 3 basic layers; a model layer for interacting with the database and other data elements, a controller layer where most of the business logic specific to your application will go, and a view layer where all the templates dictating your site's look and feel will live.

We've been developing under MVC principles for years (even before they were used in web frameworks). We chose CodeIgniter as our underlying framework because it's the fastest, has the best community support, and the most flexibility to integrate our own methodologies.

A site properly modeled on MVC principles will be well-organized and allow updates to be made quickly even months down the road without needing to re-familiarize ourselves with the code. It also helps to greatly reduce the ramp-up time for initial development. The separation of the layers of an application allow multiple developers to work on the same 'site feature' simultaneously.

Today's professional standards demand this kind of approach.

There's no way to predict the kind of traffic a site will get so we develop all our applications with the assumption that it could become very popular and receive a huge number of visitors. Our applications are built with expandability in mind. As traffic increases so too do the demands on the hardware so an N-Tier architecture allowing the application to run on multiple servers is essential. We have extensive experience performance tuning, setting up caching and database optimization to maximize application response-times.

Front End

Just like MVC for the back-end, professional front-end development involves a layered architecture.

You'll benefit in the long-run from quality front-end work, and so will your users. Our front-end development is meticulous - we deliver lean, semantic XHTML valid interfaces formatted with well structured and optimized CSS, tested across browsers and platforms. Interactivity and AJAX components are developed following the principals of progressive enhancement. Our AJAX methodology is clean and unobtrusive, keeping business logic out of client-side code. We use the jQuery library for most projects - its small, fast and well supported. Our interfaces will always validate to W3C accessibility standards, but more than just meeting checkpoints, we create layouts and interfaces with accessibility in mind from design to development.

Performance concerns aren't just limited to the back-end. There are a multitude of considerations we make that ensure that pages load quickly on the front-end as well. Compression of CSS and javascript as well as carefully optimized images are the first steps we take to create faster loading pages. In addition subdomain media delivery, third party services and utility computing/storage can also be used where appropriate. We'll find the right techniques to produce a fast and responsive user interface for your application.