Overview

We are highly competent at building enterprise-grade applications.

Productivity, for us, starts even at the infrastructure, which we design under clean version-control, and we provision under consistent automation. This approach we call "stack-first" is served by our use of Infrastructure as Code (IaC).

Code quality protection keeps our software developers doing actual work --- building the applications --- rather than being overwhelmed by bugs. Test-Driven Development (TDD) and Continuous Integration further ensure and safeguard the quality of our software codes. TDD gives us the added benefit of "intrinsic code documentation".

On the workflow of software development, we are totally Agile and Scrum. We mastered the implementation of the Agile culture, requisite for doing Scrum right. Time-boxing our work efforts gives us regular visibility into work progress. Our "stack-first" approach gives us early detection and handling of technical complexities --- front-loading of complexities in a project's timeline.

Agile and Scrum

Employing Issue Tracking Systems (ITS) that integrates well with version control systems (VCS), we track all work done by all software developers. This also helps us in talent development, as we encourage staff where there are strengths and offer training where there are weaknesses.

We use Git for VCS, so that we no longer have to buy highly available computer clusters for SVN. Yes, we were doing Agile more 15 years ago, when all we had were centralized VCS systems like SVN.

We are highly proficient at technical collaboration techniques, using Pull Requests (PR), peer reviews, work chunking, etc.

Rapid Software Development

Besides being Agile, we have also worked precision into our billions of lines of software codes --- via code quality protection.

In short, it means we are free to spend more time on creating softwares than on fixing bugs.

Test-Driven Development (TDD) protects our code quality. We boldly create new features in our softwares without having to worry about new bugs showing up. Traditionally, every new addition of codes to a software can cause new bugs. Even fixing 1 bug can break 10 other areas in the software leading to 10 new bugs. We don't habitually create bugs; we build more than we break.

We further ensure and safeguard our code quality via proper technical collaboration techniques such as peer reviews and work chunking.

DevOps

For Infrastructure Automation. We achieve immense productivity gains with Infrastructure as Code (IaC) and perfectly reproducible IT infrastructure. We are intimately familiar with infrastructure automation, having practiced it since the era of traditional shell scripts to modern technologies like Puppet/Chef. With IaC, our computers scramble to reinstall broken machines, so we don't have to.

Our strictly version-controlled IT infrastructure forms the bedrock for our software development process.

For Software Development. Continuous deployment and continuous integration allows our software developers to efficiently integrate their work into the software under development. Manual human testing efforts are kept to a minimum, which frees up our software developers to get work done.

Enterprise Grade Software

We are code readers able to leverage the latest and greatest from the open-source community. We have also done many private projects for customers wanting to build on and enhance various open-source tools.

We speak a large variety of programming languages. From mainstays like Java to newer refinements like Scala, we build rock-solid systems while leveraging rapid prototypes to inform our innovation.

We are also great tinkerers, and are able to quickly expand on any open-source projects, to cobble together these projects, and to integrate these tools into larger systems. Obviously, that means we also speak Bash, Python, PHP, Perl, Golang, you get the picture. We put technologies together.

High Availability Systems

We have extensive experience in building highly available systems. From caching with Memcached/Redis to clustering with Zookeeper (ensembles), MongoDB (replicas) and Hadoop, we are competent in building softwares that can serve a large number of users at once.

Big Data

Big Data is characterized by data velocity, data variety and data volume; traditional data-intensive applications mainly handle only data volume. For high data velocity, we employ horizontal scaling, such as that provided by sharding in MongoDB. We also do highly parallel computation/processing with Hadoop clusters. For data variety, we use schema-less datastores like MongoDB and Hadoop.

Quick Prototyping

Using schema-less datastores and modern programming constructs (Scala, Python, anything REPL), we build prototypes quickly, and test market sentiments immediately. Test-Driven Development (TDD) lets us effectively mitigate much of the risks with loose-typed programming constructs.

User-centric Applications

We have been programming small devices for a long time now, from the old Point-of-Sales machines to modern Smart Phones. We build to the required user experience, achieving fidelity to design using a wide repertoire of techniques from native iOS/Android C#/Java to hybrid/transpiled languages to good old responsive CSS/JS.

Get in touch with the experts in
Cyber security.

Contact Us