Building scalable web applications requires a very high coding standard, in order to ensure that your application can handle your high-growth rate. All of our projects are created according to the following standards that have been refined over years of working with startups:
- Object-Oriented Programming: Programmers can write code in two ways: procedural style, and object-oriented style. The former is easier to learn, but the latter is much more powerful. Since we’re building scalable web applications that can grow really fast, we exclusively write our code in OOP style. Here is a real-world example to help you understand the difference:
- Let’s say you owned a clothing shop, and you had lots of clothes. A natural way of organizing clothes would be to put sweaters together, then jeans together, then suits together… This would be very good for a small shop, but it wouldn’t be good for a big shop.
- If you had a bigger shop, you would organize your stuff into different sections: Men, Women and Kids… Then in each section you would have Winter and Summer clothing. Under summer clothing you would have shirts, swimming suits…. This would make your shop more organized and easier to maintain.
If you were programming, the first example would be a procedural approach, and the second one would be an object oriented approach.
- Version Control: This is your website’s time machine. Using a version control system allows us to take back your website back to any point during the development process in a couple of clicks. This allows us to easily do the following:
- Maintain different versions of your project
- Find and fix website bugs really fast
- Protects against lost code
- For bigger projects, this allows multiple developers to collaborate easily on your project without overwriting each others changes
- Allows us to keep track of every change and who made it. This helps us monitor every code written, and ensure that it lives up to our standards.
- Development, Staging and Live Setups: Every one of our projects has the following components:
- A Development Server: This is where our developers create new features requested by the client
- A Staging Server: After features are tested and created, they are pushed to the staging server for the client to test and approve.
- A Live Server: After features have been approved, they are pushed to the live server for the whole world to see.
- Fully commented code: Having the highest quality of code without proper commenting is like having designed a great building, and then taking the map and tearing it out. You know that you’ve got something great, but you don’t know how to work with it.
- No wheel reinventing: It’s frustrating to see lots of great programmers rebuilding systems that have already been built by others, just because it’s easier to do so. We’re huge fans of the open source movement and reusable code. We never bill for creating generic functionality out there. Most of our projects are 80% reusable, 20% custom-coded.
While what I have stated is the obvious, you might be surprised at how most programmers fail to apply the above. Next time you’re hiring someone, ask them about how they approach each of the above points, you’ll be surprised by the results.