Architecture
- Research & Analysis
- System Architecture
- Application Architecture
- Web Services
- API Definition
- Protocol Creation
- Data Modeling
Too often, architecture and design come as afterthoughts, hindering progress or compromising an application performance. In other cases, too much time spent on
Big Design Up Front
leads to unnecessary complexity and delays feedback that naturally comes from implementation.
We take a pragmatic approach to this. We'll identify the critical areas of the application where it's worth investing time upfront and others where the design will emerge only after several development iterations have been completed.
Development
- Planning
- Design
- Coding
- Automated Tests
- Documentation
We create quality code with a focus on simplicity and ease of maintenance. As such, we practice extensively
TDD
and perform frequent
code refactoring.
You'll have the confidence that your application can easily be expanded to meet your business needs.
Deployment
- Network Topology
- Infrastructure Setup
- Automation
- Monitoring
- Scaling
When you're ready to publicly launch your service, a lot of consideration should be given to where it will be deployed, how it will be managed and scaled. There is a plethora of choices and it can be daunting to select the right infrastructure.
We have experience with many ways to host applications and can lay out the optimal strategy for hosting, deployment and monitoring of your application. We've done complete hardware build-up in datacenters, worked with virtual private server hosts such as
Slicehost
and
Engine Yard
and cloud computing services such as
Heroku
and
Amazon AWS.
Once your application is live and load increases, it will need to scale to meet the demand. We'll instrument your application to identify bottlenecks. Depending on the nature of the performance problem, we'll refactor code, add caching layers, optimize database, tune the various components or scale the infrastructure in the most cost effective ways.