Architecture

 
Imagine you’ve created a new service that’s rapidly gaining traction. Users and the press love you. You’ve been featured on TechCrunch. The graph of the number of users is forming a nice hockey stick shape. But while your 1.0 release represents a solid offering, it’s proving a bit difficult to keep up and running. The ops team hasn’t slept in days. You’ve hired a designer to make a beautiful capacity overloaded page. Moving to a solid foundation is now a business critical concern.

The bad news is that designing robust, extensible, and scalable web applications and systems software is tricky. I mean, really, really tricky. What’s going to happen when your service starts getting thousands of requests per second or is collecting tens of gigabytes of data per day -- or hour? The only way to make sure is to build a solid foundation.

The good news is that we’ve done it before and can assist with your project.

         Implementation

 
As the architecture is defined, it’s time to implement the vision. Our teams consists of hard-core experts in web development from the front-end all the way to the systems-level. We’re also very pragmatic and choose the right tool for the job. We keep on top of all the new (and old) technologies, frameworks, and design patterns to keep things scaling.

We’re fans of JVM-based languages (including Java, Scala, Groovy, etc.), Ruby on Rails, and, if we’re feeling generous, even C!

We have experience in the full life-cycle of development, from requirements gathering to prototyping to development to testing to maintenance. We can offer pure consulting services, or if you want, we can roll up our sleeves and implement your application in its entirety front-end to back-end (and the bits in between).

         Metrics Design

 
Lord Kelvin once stated:

       If you can not measure it, you can not improve it.

It’s impossible to create a scalable system in the first shot. (Sorry.) It’s an iterative affair and performance and scalability bottlenecks require proactive monitoring. How do you know if the system will scale? Are systems in place for monitoring and analyzing performance and scalability metrics? Do the various systems have documented SLAs? Have real-world tests been run on staging and production? What’s the 99th percentile response times from your data store for different work loads? If you don’t have this information, you can’t be sure your application is scaling.