Agile and Productive
Building Enterprise-grade Applications
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.