We continuously refine our skillsWe take pride in the work we do and strive to be among the best in our industry. There is an ongoing discussion of whether software development is an art or a science, and whether we are engineers or tradesmen. In our case, we consider ourselves craftsmen – a team of people that have passion for continuously improving our skills and that are intrinsically rewarded by the quality of the work we do.
In order to keep advancing our skills we have the following ongoing programs:
- Study groups to learn new technologies or prepare for certification exams
- Internal hackathons to adopt new technologies
- Internal seminars to share knowledge with each other
- Internal demo day, where we showcase our work and learn how our teammates have approached certain technical challenges
- Mentorship program to help each other develop a professional development path
We develop well-engineered applications
Good engineering requires experience and deep technical knowledge to design applications that are reliable and can scale with your business. Because of this, we design applications to start with a small footprint, but that are ready to grow seamlessly in tune with your business and user base.
Additionally, applications are designed with fail-over and contingency response in mind, to minimize issues and be able to get back to business as usual when problems arise.
Finally, we know by experience that well-engineered applications are easier to maintain, reducing the cost and effort of supporting and extending the application over its lifetime.
Learn more about our Architecture and Design approach.
We apply integrated software engineering practicesWe approach software development with a full-lifecycle, DevOps perspective that supports continuous delivery. We believe that release, operation, and maintenance of software are as much the responsibility of the software development team as building the features in the first place. Because of this, we include production stability, monitoring, and maintenance considerations from the start.
Our DevOps approach includes the following practices:
- Dynamic management of product backlog based on active participation of business stakeholders
- Design decisions that consider the full product roadmap, not just short-term objectives
- Peer reviews during coding process
- Integrated configuration management
- Continuous Integration
- Automated Testing
- Automated Deployment
- Application Monitoring
- Contingency Management