Easy to Use
Software can always be as complex as you want. What makes your application unique is a combination of good understanding of your business and how you expose the complexity to your users. We go the extra mile crafting the user experience and making sure we deliver something that people not only are willing to use but want to use.
As with most engineered products, software needs to be built with the right tools and with a long term view in mind, since day one. When we tackle new projects we make sure the solution developed can adapt to change without major design changes from its original concept.
Performance is a feature and it affects the way you work. Fast response times are becoming increasingly essential for the success of any online product. For each project we deliver we spend extra time making sure both the front-end and backend are optimized for best performance. Our aim is to deliver fast websites, not average ones.
Our goal is to write code that performs well and is easy to maintain. We do code review on a regular basis, adopt proper coding style (PEP-8 for Python code) as well as code and workflow documentation. We are perfectionists, although we also believe that done is sometimes better than perfect.
Email is the life blood of many web apps. Sending emails from a web app is easy, making sure emails are successfully delivered, not quite so easy. We are experts in fine tuning servers and DNS settings in order to ensure maximum deliverability. We have also plenty of experience integrating tools like Mandrill, for comprehensive email delivery analysis and stats on the number of clicks and opens.
We are experts in building responsive websites. Since the very first version of your web app's front-end, we will ensure it will adapt properly to different screens of mobile devices and tablets.
Writting software to test software is an old software engineering practice that stands for high quality software. This is an area undervalued by most companies. We adopt a test driven approach for most of our projects, as well as using tools like Jenkins to continously monitor the software stack and detect possible issues before they hit production.
Using technologies such as Nginx, Varnish, Redis and gunicorn, your website gets faster, scalable and with plenty of room to grow at a very competitive cost.
Security is an integral part of our process for both deployment and maintenance of any of our projects. From day one we start by setting up servers with the latest security patches, optimizing SSH settings, web server settings and Firewall. Then we go the extra mile making sure the web apps are secure against CSRF attacks, SQL injection attacks and encrypting user passwords in our database, among other practices.
For all our projects we keep both application data, including media files, and source code backed up daily on multiple secure locations. Some projects may have live backups or hourly backups as well.
We like to be proactive as much as possible. That being said, things will always go wrong one day, and it's important to be the first to know when they go wrong. We use tools like Nagios and Pingdom to monitor our servers every minute as well as tracking our response times and other stats.